1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.app.admin; 18 19 import android.annotation.NonNull; 20 import android.annotation.TestApi; 21 import android.os.UserManager; 22 23 import java.util.Objects; 24 25 /** 26 * Class containing identifiers for policy APIs in {@link DevicePolicyManager}, for example they 27 * will be passed in {@link PolicyUpdateReceiver#onPolicySetResult} and 28 * {@link PolicyUpdateReceiver#onPolicyChanged} to communicate updates of a certain policy back 29 * to the admin. 30 */ 31 public final class DevicePolicyIdentifiers { 32 DevicePolicyIdentifiers()33 private DevicePolicyIdentifiers() {} 34 35 /** 36 * String identifier for {@link DevicePolicyManager#setAutoTimeZoneEnabled}. 37 */ 38 public static final String AUTO_TIMEZONE_POLICY = "autoTimezone"; 39 40 /** 41 * String identifier for {@link DevicePolicyManager#setPermissionGrantState}. 42 */ 43 public static final String PERMISSION_GRANT_POLICY = "permissionGrant"; 44 45 /** 46 * String identifier for {@link DevicePolicyManager#setLockTaskPackages}. 47 */ 48 public static final String LOCK_TASK_POLICY = "lockTask"; 49 50 /** 51 * String identifier for {@link DevicePolicyManager#setUserControlDisabledPackages}. 52 */ 53 public static final String USER_CONTROL_DISABLED_PACKAGES_POLICY = 54 "userControlDisabledPackages"; 55 56 /** 57 * String identifier for {@link DevicePolicyManager#addPersistentPreferredActivity}. 58 */ 59 public static final String PERSISTENT_PREFERRED_ACTIVITY_POLICY = 60 "persistentPreferredActivity"; 61 62 /** 63 * String identifier for {@link DevicePolicyManager#setUninstallBlocked}. 64 */ 65 public static final String PACKAGE_UNINSTALL_BLOCKED_POLICY = "packageUninstallBlocked"; 66 67 /** 68 * String identifier for {@link DevicePolicyManager#setApplicationRestrictions}. 69 */ 70 public static final String APPLICATION_RESTRICTIONS_POLICY = "applicationRestrictions"; 71 72 /** 73 * String identifier for {@link DevicePolicyManager#setResetPasswordToken}. 74 */ 75 public static final String RESET_PASSWORD_TOKEN_POLICY = "resetPasswordToken"; 76 77 /** 78 * String identifier for {@link DevicePolicyManager#setAccountManagementDisabled}. 79 */ 80 public static final String ACCOUNT_MANAGEMENT_DISABLED_POLICY = "accountManagementDisabled"; 81 82 /** 83 * String identifier for {@link DevicePolicyManager#setApplicationHidden}. 84 */ 85 public static final String APPLICATION_HIDDEN_POLICY = "applicationHidden"; 86 87 /** 88 * String identifier for {@link DevicePolicyManager#setCameraDisabled}. 89 */ 90 public static final String CAMERA_DISABLED_POLICY = "cameraDisabled"; 91 92 /** 93 * String identifier for {@link DevicePolicyManager#setStatusBarDisabled}. 94 */ 95 public static final String STATUS_BAR_DISABLED_POLICY = "statusBarDisabled"; 96 97 /** 98 * String identifier for {@link DevicePolicyManager#setPackagesSuspended}. 99 */ 100 public static final String PACKAGES_SUSPENDED_POLICY = "packagesSuspended"; 101 102 /** 103 * String identifier for {@link DevicePolicyManager#setKeyguardDisabledFeatures}. 104 */ 105 public static final String KEYGUARD_DISABLED_FEATURES_POLICY = "keyguardDisabledFeatures"; 106 107 /** 108 * String identifier for {@link DevicePolicyManager#setAutoTimeEnabled}. 109 */ 110 public static final String AUTO_TIME_POLICY = "autoTime"; 111 112 /** 113 * String identifier for {@link DevicePolicyManager#setBackupServiceEnabled}. 114 */ 115 public static final String BACKUP_SERVICE_POLICY = "backupService"; 116 117 /** 118 * String identifier for {@link DevicePolicyManager#setPermittedInputMethods}. 119 * 120 * @hide 121 */ 122 @TestApi 123 public static final String PERMITTED_INPUT_METHODS_POLICY = "permittedInputMethods"; 124 125 /** 126 * String identifier for {@link DevicePolicyManager#setPersonalAppsSuspended}. 127 * 128 * @hide 129 */ 130 @TestApi 131 public static final String PERSONAL_APPS_SUSPENDED_POLICY = "personalAppsSuspended"; 132 133 /** 134 * String identifier for {@link DevicePolicyManager#setScreenCaptureDisabled}. 135 * 136 * @hide 137 */ 138 @TestApi 139 public static final String SCREEN_CAPTURE_DISABLED_POLICY = "screenCaptureDisabled"; 140 141 /** 142 * String identifier for {@link DevicePolicyManager#setTrustAgentConfiguration}. 143 * 144 * @hide 145 */ 146 public static final String TRUST_AGENT_CONFIGURATION_POLICY = "trustAgentConfiguration"; 147 148 /** 149 * String identifier for {@link DevicePolicyManager#addCrossProfileIntentFilter}. 150 * 151 * @hide 152 */ 153 public static final String CROSS_PROFILE_INTENT_FILTER_POLICY = "crossProfileIntentFilter"; 154 155 /** 156 * String identifier for {@link DevicePolicyManager#addCrossProfileWidgetProvider}. 157 * 158 * @hide 159 */ 160 public static final String CROSS_PROFILE_WIDGET_PROVIDER_POLICY = "crossProfileWidgetProvider"; 161 162 /** 163 * @hide 164 */ 165 public static final String USER_RESTRICTION_PREFIX = "userRestriction_"; 166 167 /** 168 * Returns a string identifier for the provided user restrictions, see 169 * {@link DevicePolicyManager#addUserRestriction} and {@link UserManager} for the list of 170 * available restrictions. 171 */ 172 @NonNull getIdentifierForUserRestriction( @serManager.UserRestrictionKey @onNull String restriction)173 public static String getIdentifierForUserRestriction( 174 @UserManager.UserRestrictionKey @NonNull String restriction) { 175 Objects.requireNonNull(restriction); 176 return USER_RESTRICTION_PREFIX + restriction; 177 } 178 } 179