Android APIs
public class

DevicePolicyManager

extends Object
java.lang.Object
   ↳ android.app.admin.DevicePolicyManager

Class Overview

Public interface for managing policies enforced on a device. Most clients of this class must have published a DeviceAdminReceiver that the user has currently enabled.

Developer Guides

For more information about managing policies for device adminstration, read the Device Administration developer guide.

Summary

Constants
String ACTION_ADD_DEVICE_ADMIN Activity action: ask the user to add a new device administrator to the system.
String ACTION_PROVISION_MANAGED_PROFILE Activity action: Starts the provisioning flow which sets up a managed profile.
String ACTION_SET_NEW_PASSWORD Activity action: have the user enter a new password.
String ACTION_START_ENCRYPTION Activity action: begin the process of encrypting data on the device.
int ENCRYPTION_STATUS_ACTIVATING Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is not currently active, but is currently being activated.
int ENCRYPTION_STATUS_ACTIVE Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is active.
int ENCRYPTION_STATUS_INACTIVE Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is supported, but is not currently active.
int ENCRYPTION_STATUS_UNSUPPORTED Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is not supported.
String EXTRA_ADD_EXPLANATION An optional CharSequence providing additional explanation for why the admin is being added.
String EXTRA_DEVICE_ADMIN The ComponentName of the administrator component.
String EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME A String extra holding the default name of the profile that is created during managed profile provisioning.
String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME A String extra holding the name of the package of the mobile device management application that starts the managed provisioning flow.
int KEYGUARD_DISABLE_FEATURES_ALL Disable all current and future keyguard customizations.
int KEYGUARD_DISABLE_FEATURES_NONE Widgets are enabled in keyguard
int KEYGUARD_DISABLE_SECURE_CAMERA Disable the camera on secure keyguard screens (e.g.
int KEYGUARD_DISABLE_SECURE_NOTIFICATIONS Disable showing all notifications on secure keyguard screens (e.g.
int KEYGUARD_DISABLE_TRUST_AGENTS Ignore trust agent state on secure keyguard screens (e.g.
int KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS Only allow redacted notifications on secure keyguard screens (e.g.
int KEYGUARD_DISABLE_WIDGETS_ALL Disable all keyguard widgets.
int PASSWORD_QUALITY_ALPHABETIC Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least alphabetic (or other symbol) characters.
int PASSWORD_QUALITY_ALPHANUMERIC Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least both> numeric and alphabetic (or other symbol) characters.
int PASSWORD_QUALITY_BIOMETRIC_WEAK Constant for setPasswordQuality(ComponentName, int): the policy allows for low-security biometric recognition technology.
int PASSWORD_QUALITY_COMPLEX Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least a letter, a numerical digit and a special symbol, by default.
int PASSWORD_QUALITY_NUMERIC Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least numeric characters.
int PASSWORD_QUALITY_SOMETHING Constant for setPasswordQuality(ComponentName, int): the policy requires some kind of password, but doesn't care what it is.
int PASSWORD_QUALITY_UNSPECIFIED Constant for setPasswordQuality(ComponentName, int): the policy has no requirements for the password.
int RESET_PASSWORD_REQUIRE_ENTRY Flag for resetPassword(String, int): don't allow other admins to change the password again until the user has entered it.
int WIPE_EXTERNAL_STORAGE Flag for wipeData(int): also erase the device's external storage.
Fields
public static int FLAG_TO_MANAGED_PROFILE Flag for addForwardingIntentFilter(ComponentName, IntentFilter, int): the intents will be forwarded to the managed profile.
public static int FLAG_TO_PRIMARY_USER Flag for addForwardingIntentFilter(ComponentName, IntentFilter, int): the intents will forwarded to the primary user.
Public Methods
void addForwardingIntentFilter(ComponentName admin, IntentFilter filter, int flags)
Called by a profile owner to forward intents sent from the managed profile to the owner, or from the owner to the managed profile.
void addPersistentPreferredActivity(ComponentName admin, IntentFilter filter, ComponentName activity)
Called by a profile owner or device owner to add a default intent handler activity for intents that match a certain intent filter.
void addUserRestriction(ComponentName admin, String key)
Called by a profile or device owner to set a user restriction specified by the key.
void clearForwardingIntentFilters(ComponentName admin)
Called by a profile owner to remove the forwarding intent filters from the current user and from the owner.
void clearPackagePersistentPreferredActivities(ComponentName admin, String packageName)
Called by a profile owner or device owner to remove all persistent intent handler preferences associated with the given package that were set by addPersistentPreferredActivity(ComponentName, IntentFilter, ComponentName).
void clearUserRestriction(ComponentName admin, String key)
Called by a profile or device owner to clear a user restriction specified by the key.
UserHandle createUser(ComponentName admin, String name)
Called by a device owner to create a user with the specified name.
void enableSystemApp(ComponentName admin, String packageName)
Called by profile or device owner to re-enable a system app that was disabled by default when the managed profile was created.
int enableSystemApp(ComponentName admin, Intent intent)
Called by profile or device owner to re-enable system apps by intent that were disabled by default when the managed profile was created.
String[] getAccountTypesWithManagementDisabled()
Gets the array of accounts for which account management is disabled by the profile owner.
List<ComponentName> getActiveAdmins()
Return a list of all currently active device administrator's component names.
Bundle getApplicationRestrictions(ComponentName admin, String packageName)
Called by a profile or device owner to get the application restrictions for a given target application running in the managed profile.
boolean getCameraDisabled(ComponentName admin)
Determine whether or not the device's cameras have been disabled either by the current admin, if specified, or all admins.
int getCurrentFailedPasswordAttempts()
Retrieve the number of times the user has failed at entering a password since that last successful password entry.
int getKeyguardDisabledFeatures(ComponentName admin)
Determine whether or not features have been disabled in keyguard either by the current admin, if specified, or all admins.
int getMaximumFailedPasswordsForWipe(ComponentName admin)
Retrieve the current maximum number of login attempts that are allowed before the device wipes itself, for all admins of this user and its profiles or a particular one.
long getMaximumTimeToLock(ComponentName admin)
Retrieve the current maximum time to unlock for all admins of this user and its profiles or a particular one.
long getPasswordExpiration(ComponentName admin)
Get the current password expiration time for the given admin or an aggregate of all admins of this user and its profiles if admin is null.
long getPasswordExpirationTimeout(ComponentName admin)
Get the password expiration timeout for the given admin.
int getPasswordHistoryLength(ComponentName admin)
Retrieve the current password history length for all admins of this user and its profiles or a particular one.
int getPasswordMaximumLength(int quality)
Return the maximum password length that the device supports for a particular password quality.
int getPasswordMinimumLength(ComponentName admin)
Retrieve the current minimum password length for all admins of this user and its profiles or a particular one.
int getPasswordMinimumLetters(ComponentName admin)
Retrieve the current number of letters required in the password for all admins or a particular one.
int getPasswordMinimumLowerCase(ComponentName admin)
Retrieve the current number of lower case letters required in the password for all admins of this user and its profiles or a particular one.
int getPasswordMinimumNonLetter(ComponentName admin)
Retrieve the current number of non-letter characters required in the password for all admins of this user and its profiles or a particular one.
int getPasswordMinimumNumeric(ComponentName admin)
Retrieve the current number of numerical digits required in the password for all admins of this user and its profiles or a particular one.
int getPasswordMinimumSymbols(ComponentName admin)
Retrieve the current number of symbols required in the password for all admins or a particular one.
int getPasswordMinimumUpperCase(ComponentName admin)
Retrieve the current number of upper case letters required in the password for all admins of this user and its profiles or a particular one.
int getPasswordQuality(ComponentName admin)
Retrieve the current minimum password quality for all admins of this user and its profiles or a particular one.
boolean getStorageEncryption(ComponentName admin)
Called by an application that is administering the device to determine the requested setting for secure storage.
int getStorageEncryptionStatus()
Called by an application that is administering the device to determine the current encryption status of the device.
boolean hasGrantedPolicy(ComponentName admin, int usesPolicy)
Returns true if an administrator has been granted a particular device policy.
boolean isActivePasswordSufficient()
Determine whether the current password the user has set is sufficient to meet the policy requirements (quality, minimum length) that have been requested by the admins of this user and its profiles.
boolean isAdminActive(ComponentName who)
Return true if the given administrator component is currently active (enabled) in the system.
boolean isApplicationBlocked(ComponentName admin, String packageName)
Called by device or profile owner to determine if a package is blocked.
boolean isDeviceOwnerApp(String packageName)
Used to determine if a particular package has been registered as a Device Owner app.
boolean isLockTaskPermitted(ComponentName component)
This function lets the caller know whether the given component is allowed to start the lock task mode.
boolean isProfileOwnerApp(String packageName)
Used to determine if a particular package is registered as the Profile Owner for the current user.
void lockNow()
Make the device lock immediately, as if the lock screen timeout has expired at the point of this call.
void removeActiveAdmin(ComponentName who)
Remove a current administration component.
boolean removeUser(ComponentName admin, UserHandle userHandle)
Called by a device owner to remove a user and all associated data.
boolean resetPassword(String password, int flags)
Force a new device unlock password (the password needed to access the entire device, not for individual accounts) on the user.
void setAccountManagementDisabled(ComponentName admin, String accountType, boolean disabled)
Called by a profile owner to disable account management for a specific type of account.
boolean setApplicationBlocked(ComponentName admin, String packageName, boolean blocked)
Called by device or profile owner to block or unblock packages.
void setApplicationRestrictions(ComponentName admin, String packageName, Bundle settings)
Called by a profile or device owner to set the application restrictions for a given target application running in the managed profile.
int setApplicationsBlocked(ComponentName admin, Intent intent, boolean blocked)
Called by profile or device owner to block or unblock currently installed packages.
void setCameraDisabled(ComponentName admin, boolean disabled)
Called by an application that is administering the device to disable all cameras on the device.
void setGlobalSetting(ComponentName admin, String setting, String value)
Called by device owners to update Settings.Global settings.
void setKeyguardDisabledFeatures(ComponentName admin, int which)
Called by an application that is administering the device to disable keyguard customizations, such as widgets.
void setLockTaskComponents(ComponentName[] components)
Sets which components may enter lock task mode.
void setMaximumFailedPasswordsForWipe(ComponentName admin, int num)
Setting this to a value greater than zero enables a built-in policy that will perform a device wipe after too many incorrect device-unlock passwords have been entered.
void setMaximumTimeToLock(ComponentName admin, long timeMs)
Called by an application that is administering the device to set the maximum time for user activity until the device will lock.
void setPasswordExpirationTimeout(ComponentName admin, long timeout)
Called by a device admin to set the password expiration timeout.
void setPasswordHistoryLength(ComponentName admin, int length)
Called by an application that is administering the device to set the length of the password history.
void setPasswordMinimumLength(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum allowed password length.
void setPasswordMinimumLetters(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of letters required in the password.
void setPasswordMinimumLowerCase(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of lower case letters required in the password.
void setPasswordMinimumNonLetter(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of non-letter characters (numerical digits or symbols) required in the password.
void setPasswordMinimumNumeric(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of numerical digits required in the password.
void setPasswordMinimumSymbols(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of symbols required in the password.
void setPasswordMinimumUpperCase(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of upper case letters required in the password.
void setPasswordQuality(ComponentName admin, int quality)
Called by an application that is administering the device to set the password restrictions it is imposing.
void setProfileEnabled(ComponentName admin)
Sets the enabled state of the profile.
void setSecureSetting(ComponentName admin, String setting, String value)
Called by profile or device owners to update Settings.Secure settings.
int setStorageEncryption(ComponentName admin, boolean encrypt)
Called by an application that is administering the device to request that the storage system be encrypted.
void wipeData(int flags)
Ask the user date be wiped.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String ACTION_ADD_DEVICE_ADMIN

Added in API level 8

Activity action: ask the user to add a new device administrator to the system. The desired policy is the ComponentName of the policy in the EXTRA_DEVICE_ADMIN extra field. This will invoke a UI to bring the user through adding the device administrator to the system (or allowing them to reject it).

You can optionally include the EXTRA_ADD_EXPLANATION field to provide the user with additional explanation (in addition to your component's description) about what is being added.

If your administrator is already active, this will ordinarily return immediately (without user intervention). However, if your administrator has been updated and is requesting additional uses-policy flags, the user will be presented with the new list. New policies will not be available to the updated administrator until the user has accepted the new list.

Constant Value: "android.app.action.ADD_DEVICE_ADMIN"

public static final String ACTION_PROVISION_MANAGED_PROFILE

Activity action: Starts the provisioning flow which sets up a managed profile.

A managed profile allows data separation for example for the usage of a device as a personal and corporate device. The user which provisioning is started from and the managed profile share a launcher.

This intent will typically be sent by a mobile device management application (mdm). Provisioning adds a managed profile and sets the mdm as the profile owner who has full control over the profile

This intent must contain the extras EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME and EXTRA_DEVICE_ADMIN.

When managed provisioning has completed, an intent of the type ACTION_PROFILE_PROVISIONING_COMPLETE is broadcasted to the managed profile. The intent is sent to the DeviceAdminReceiver specified in the EXTRA_DEVICE_ADMIN exclusively. If provisioning fails, the managedProfile is removed so the device returns to its previous state.

Input: Nothing.

Output: Nothing

Constant Value: "android.app.action.ACTION_PROVISION_MANAGED_PROFILE"

public static final String ACTION_SET_NEW_PASSWORD

Added in API level 8

Activity action: have the user enter a new password. This activity should be launched after using setPasswordQuality(ComponentName, int), or setPasswordMinimumLength(ComponentName, int) to have the user enter a new password that meets the current requirements. You can use isActivePasswordSufficient() to determine whether you need to have the user select a new password in order to meet the current constraints. Upon being resumed from this activity, you can check the new password characteristics to see if they are sufficient.

Constant Value: "android.app.action.SET_NEW_PASSWORD"

public static final String ACTION_START_ENCRYPTION

Added in API level 11

Activity action: begin the process of encrypting data on the device. This activity should be launched after using setStorageEncryption(ComponentName, boolean) to request encryption be activated. After resuming from this activity, use getStorageEncryption(ComponentName) to check encryption status. However, on some devices this activity may never return, as it may trigger a reboot and in some cases a complete data wipe of the device.

Constant Value: "android.app.action.START_ENCRYPTION"

public static final int ENCRYPTION_STATUS_ACTIVATING

Added in API level 11

Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is not currently active, but is currently being activated. This is only reported by devices that support encryption of data and only when the storage is currently undergoing a process of becoming encrypted. A device that must reboot and/or wipe data to become encrypted will never return this value.

Constant Value: 2 (0x00000002)

public static final int ENCRYPTION_STATUS_ACTIVE

Added in API level 11

Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is active.

Constant Value: 3 (0x00000003)

public static final int ENCRYPTION_STATUS_INACTIVE

Added in API level 11

Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is supported, but is not currently active.

Constant Value: 1 (0x00000001)

public static final int ENCRYPTION_STATUS_UNSUPPORTED

Added in API level 11

Result code for setStorageEncryption(ComponentName, boolean) and getStorageEncryptionStatus(): indicating that encryption is not supported.

Constant Value: 0 (0x00000000)

public static final String EXTRA_ADD_EXPLANATION

Added in API level 8

An optional CharSequence providing additional explanation for why the admin is being added.

Constant Value: "android.app.extra.ADD_EXPLANATION"

public static final String EXTRA_DEVICE_ADMIN

Added in API level 8

The ComponentName of the administrator component.

Constant Value: "android.app.extra.DEVICE_ADMIN"

public static final String EXTRA_PROVISIONING_DEFAULT_MANAGED_PROFILE_NAME

A String extra holding the default name of the profile that is created during managed profile provisioning.

Use with ACTION_PROVISION_MANAGED_PROFILE

Constant Value: "android.app.extra.defaultManagedProfileName"

public static final String EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME

A String extra holding the name of the package of the mobile device management application that starts the managed provisioning flow. This package will be set as the profile owner.

Use with ACTION_PROVISION_MANAGED_PROFILE.

Constant Value: "android.app.extra.deviceAdminPackageName"

public static final int KEYGUARD_DISABLE_FEATURES_ALL

Added in API level 17

Disable all current and future keyguard customizations.

Constant Value: 2147483647 (0x7fffffff)

public static final int KEYGUARD_DISABLE_FEATURES_NONE

Added in API level 17

Widgets are enabled in keyguard

Constant Value: 0 (0x00000000)

public static final int KEYGUARD_DISABLE_SECURE_CAMERA

Added in API level 17

Disable the camera on secure keyguard screens (e.g. PIN/Pattern/Password)

Constant Value: 2 (0x00000002)

public static final int KEYGUARD_DISABLE_SECURE_NOTIFICATIONS

Disable showing all notifications on secure keyguard screens (e.g. PIN/Pattern/Password)

Constant Value: 4 (0x00000004)

public static final int KEYGUARD_DISABLE_TRUST_AGENTS

Ignore trust agent state on secure keyguard screens (e.g. PIN/Pattern/Password).

Constant Value: 16 (0x00000010)

public static final int KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS

Only allow redacted notifications on secure keyguard screens (e.g. PIN/Pattern/Password)

Constant Value: 8 (0x00000008)

public static final int KEYGUARD_DISABLE_WIDGETS_ALL

Added in API level 17

Disable all keyguard widgets. Has no effect.

Constant Value: 1 (0x00000001)

public static final int PASSWORD_QUALITY_ALPHABETIC

Added in API level 8

Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least alphabetic (or other symbol) characters. Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 262144 (0x00040000)

public static final int PASSWORD_QUALITY_ALPHANUMERIC

Added in API level 8

Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least both> numeric and alphabetic (or other symbol) characters. Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 327680 (0x00050000)

public static final int PASSWORD_QUALITY_BIOMETRIC_WEAK

Added in API level 14

Constant for setPasswordQuality(ComponentName, int): the policy allows for low-security biometric recognition technology. This implies technologies that can recognize the identity of an individual to about a 3 digit PIN (false detection is less than 1 in 1,000). Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 32768 (0x00008000)

public static final int PASSWORD_QUALITY_COMPLEX

Added in API level 11

Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least a letter, a numerical digit and a special symbol, by default. With this password quality, passwords can be restricted to contain various sets of characters, like at least an uppercase letter, etc. These are specified using various methods, like setPasswordMinimumLowerCase(ComponentName, int). Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 393216 (0x00060000)

public static final int PASSWORD_QUALITY_NUMERIC

Added in API level 8

Constant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least numeric characters. Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 131072 (0x00020000)

public static final int PASSWORD_QUALITY_SOMETHING

Added in API level 8

Constant for setPasswordQuality(ComponentName, int): the policy requires some kind of password, but doesn't care what it is. Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 65536 (0x00010000)

public static final int PASSWORD_QUALITY_UNSPECIFIED

Added in API level 8

Constant for setPasswordQuality(ComponentName, int): the policy has no requirements for the password. Note that quality constants are ordered so that higher values are more restrictive.

Constant Value: 0 (0x00000000)

public static final int RESET_PASSWORD_REQUIRE_ENTRY

Added in API level 8

Flag for resetPassword(String, int): don't allow other admins to change the password again until the user has entered it.

Constant Value: 1 (0x00000001)

public static final int WIPE_EXTERNAL_STORAGE

Added in API level 9

Flag for wipeData(int): also erase the device's external storage.

Constant Value: 1 (0x00000001)

Fields

public static int FLAG_TO_MANAGED_PROFILE

Flag for addForwardingIntentFilter(ComponentName, IntentFilter, int): the intents will be forwarded to the managed profile.

public static int FLAG_TO_PRIMARY_USER

Flag for addForwardingIntentFilter(ComponentName, IntentFilter, int): the intents will forwarded to the primary user.

Public Methods

public void addForwardingIntentFilter (ComponentName admin, IntentFilter filter, int flags)

Called by a profile owner to forward intents sent from the managed profile to the owner, or from the owner to the managed profile. If an intent matches this intent filter, then activities belonging to the other user can respond to this intent.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
filter if an intent matches this IntentFilter, then it can be forwarded.

public void addPersistentPreferredActivity (ComponentName admin, IntentFilter filter, ComponentName activity)

Called by a profile owner or device owner to add a default intent handler activity for intents that match a certain intent filter. This activity will remain the default intent handler even if the set of potential event handlers for the intent filter changes and if the intent preferences are reset.

The default disambiguation mechanism takes over if the activity is not installed (anymore). When the activity is (re)installed, it is automatically reset as default intent handler for the filter.

The calling device admin must be a profile owner or device owner. If it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
filter The IntentFilter for which a default handler is added.
activity The Activity that is added as default intent handler.

public void addUserRestriction (ComponentName admin, String key)

Called by a profile or device owner to set a user restriction specified by the key.

The calling device admin must be a profile or device owner; if it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
key The key of the restriction. See the constants in UserManager for the list of keys.

public void clearForwardingIntentFilters (ComponentName admin)

Called by a profile owner to remove the forwarding intent filters from the current user and from the owner.

Parameters
admin Which DeviceAdminReceiver this request is associated with.

public void clearPackagePersistentPreferredActivities (ComponentName admin, String packageName)

Called by a profile owner or device owner to remove all persistent intent handler preferences associated with the given package that were set by addPersistentPreferredActivity(ComponentName, IntentFilter, ComponentName).

The calling device admin must be a profile owner. If it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The name of the package for which preferences are removed.

public void clearUserRestriction (ComponentName admin, String key)

Called by a profile or device owner to clear a user restriction specified by the key.

The calling device admin must be a profile or device owner; if it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
key The key of the restriction. See the constants in UserManager for the list of keys.

public UserHandle createUser (ComponentName admin, String name)

Called by a device owner to create a user with the specified name. The UserHandle returned by this method should not be persisted as user handles are recycled as users are removed and created. If you need to persist an identifier for this user, use getSerialNumberForUser(UserHandle).

Parameters
admin Which DeviceAdminReceiver this request is associated with.
name the user's name
Returns
  • the UserHandle object for the created user, or null if the user could not be created.
See Also

public void enableSystemApp (ComponentName admin, String packageName)

Called by profile or device owner to re-enable a system app that was disabled by default when the managed profile was created. This should only be called from a profile or device owner running within a managed profile.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The package to be re-enabled in the current profile.

public int enableSystemApp (ComponentName admin, Intent intent)

Called by profile or device owner to re-enable system apps by intent that were disabled by default when the managed profile was created. This should only be called from a profile or device owner running within a managed profile.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
intent An intent matching the app(s) to be installed. All apps that resolve for this intent will be re-enabled in the current profile.
Returns
  • int The number of activities that matched the intent and were installed.

public String[] getAccountTypesWithManagementDisabled ()

Gets the array of accounts for which account management is disabled by the profile owner.

Account management can be disabled/enabled by calling setAccountManagementDisabled(ComponentName, String, boolean).

Returns
  • a list of account types for which account management has been disabled.

public List<ComponentName> getActiveAdmins ()

Added in API level 8

Return a list of all currently active device administrator's component names. Note that if there are no administrators than null may be returned.

public Bundle getApplicationRestrictions (ComponentName admin, String packageName)

Called by a profile or device owner to get the application restrictions for a given target application running in the managed profile.

The calling device admin must be a profile or device owner; if it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The name of the package to fetch restricted settings of.
Returns

public boolean getCameraDisabled (ComponentName admin)

Added in API level 14

Determine whether or not the device's cameras have been disabled either by the current admin, if specified, or all admins.

Parameters
admin The name of the admin component to check, or null to check if any admins have disabled the camera

public int getCurrentFailedPasswordAttempts ()

Added in API level 8

Retrieve the number of times the user has failed at entering a password since that last successful password entry.

The calling device admin must have requested USES_POLICY_WATCH_LOGIN to be able to call this method; if it has not, a security exception will be thrown.

public int getKeyguardDisabledFeatures (ComponentName admin)

Added in API level 17

Determine whether or not features have been disabled in keyguard either by the current admin, if specified, or all admins.

Parameters
admin The name of the admin component to check, or null to check if any admins have disabled features in keyguard.
Returns

public int getMaximumFailedPasswordsForWipe (ComponentName admin)

Added in API level 8

Retrieve the current maximum number of login attempts that are allowed before the device wipes itself, for all admins of this user and its profiles or a particular one.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.

public long getMaximumTimeToLock (ComponentName admin)

Added in API level 8

Retrieve the current maximum time to unlock for all admins of this user and its profiles or a particular one.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.

public long getPasswordExpiration (ComponentName admin)

Added in API level 11

Get the current password expiration time for the given admin or an aggregate of all admins of this user and its profiles if admin is null. If the password is expired, this will return the time since the password expired as a negative number. If admin is null, then a composite of all expiration timeouts is returned - which will be the minimum of all timeouts.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The password expiration time, in ms.

public long getPasswordExpirationTimeout (ComponentName admin)

Added in API level 11

Get the password expiration timeout for the given admin. The expiration timeout is the recurring expiration timeout provided in the call to setPasswordExpirationTimeout(ComponentName, long) for the given admin or the aggregate of all policy administrators if admin is null.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The timeout for the given admin or the minimum of all timeouts

public int getPasswordHistoryLength (ComponentName admin)

Added in API level 11

Retrieve the current password history length for all admins of this user and its profiles or a particular one.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The length of the password history

public int getPasswordMaximumLength (int quality)

Added in API level 8

Return the maximum password length that the device supports for a particular password quality.

Parameters
quality The quality being interrogated.
Returns
  • Returns the maximum length that the user can enter.

public int getPasswordMinimumLength (ComponentName admin)

Added in API level 8

Retrieve the current minimum password length for all admins of this user and its profiles or a particular one.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.

public int getPasswordMinimumLetters (ComponentName admin)

Added in API level 11

Retrieve the current number of letters required in the password for all admins or a particular one. This is the same value as set by {#link setPasswordMinimumLetters(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of letters required in the password.

public int getPasswordMinimumLowerCase (ComponentName admin)

Added in API level 11

Retrieve the current number of lower case letters required in the password for all admins of this user and its profiles or a particular one. This is the same value as set by {#link setPasswordMinimumLowerCase(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of lower case letters required in the password.

public int getPasswordMinimumNonLetter (ComponentName admin)

Added in API level 11

Retrieve the current number of non-letter characters required in the password for all admins of this user and its profiles or a particular one. This is the same value as set by {#link setPasswordMinimumNonLetter(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of letters required in the password.

public int getPasswordMinimumNumeric (ComponentName admin)

Added in API level 11

Retrieve the current number of numerical digits required in the password for all admins of this user and its profiles or a particular one. This is the same value as set by {#link setPasswordMinimumNumeric(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of numerical digits required in the password.

public int getPasswordMinimumSymbols (ComponentName admin)

Added in API level 11

Retrieve the current number of symbols required in the password for all admins or a particular one. This is the same value as set by {#link setPasswordMinimumSymbols(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of symbols required in the password.

public int getPasswordMinimumUpperCase (ComponentName admin)

Added in API level 11

Retrieve the current number of upper case letters required in the password for all admins of this user and its profiles or a particular one. This is the same value as set by {#link setPasswordMinimumUpperCase(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.
Returns
  • The minimum number of upper case letters required in the password.

public int getPasswordQuality (ComponentName admin)

Added in API level 8

Retrieve the current minimum password quality for all admins of this user and its profiles or a particular one.

Parameters
admin The name of the admin component to check, or null to aggregate all admins.

public boolean getStorageEncryption (ComponentName admin)

Added in API level 11

Called by an application that is administering the device to determine the requested setting for secure storage.

Parameters
admin Which DeviceAdminReceiver this request is associated with. If null, this will return the requested encryption setting as an aggregate of all active administrators.
Returns
  • true if the admin(s) are requesting encryption, false if not.

public int getStorageEncryptionStatus ()

Added in API level 11

Called by an application that is administering the device to determine the current encryption status of the device. Depending on the returned status code, the caller may proceed in different ways. If the result is ENCRYPTION_STATUS_UNSUPPORTED, the storage system does not support encryption. If the result is ENCRYPTION_STATUS_INACTIVE, use ACTION_START_ENCRYPTION to begin the process of encrypting or decrypting the storage. If the result is ENCRYPTION_STATUS_ACTIVATING or ENCRYPTION_STATUS_ACTIVE, no further action is required.

Returns

public boolean hasGrantedPolicy (ComponentName admin, int usesPolicy)

Added in API level 11

Returns true if an administrator has been granted a particular device policy. This can be used to check if the administrator was activated under an earlier set of policies, but requires additional policies after an upgrade.

Parameters
admin Which DeviceAdminReceiver this request is associated with. Must be an active administrator, or an exception will be thrown.
usesPolicy Which uses-policy to check, as defined in DeviceAdminInfo.

public boolean isActivePasswordSufficient ()

Added in API level 8

Determine whether the current password the user has set is sufficient to meet the policy requirements (quality, minimum length) that have been requested by the admins of this user and its profiles.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Returns
  • Returns true if the password meets the current requirements, else false.

public boolean isAdminActive (ComponentName who)

Added in API level 8

Return true if the given administrator component is currently active (enabled) in the system.

public boolean isApplicationBlocked (ComponentName admin, String packageName)

Called by device or profile owner to determine if a package is blocked.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The name of the package to retrieve the blocked status of.
Returns
  • boolean true if the package is blocked, false otherwise.

public boolean isDeviceOwnerApp (String packageName)

Added in API level 18

Used to determine if a particular package has been registered as a Device Owner app. A device owner app is a special device admin that cannot be deactivated by the user, once activated as a device admin. It also cannot be uninstalled. To check if a particular package is currently registered as the device owner app, pass in the package name from getPackageName() to this method.

This is useful for device admin apps that want to check if they are also registered as the device owner app. The exact mechanism by which a device admin app is registered as a device owner app is defined by the setup process.

Parameters
packageName the package name of the app, to compare with the registered device owner app, if any.
Returns
  • whether or not the package is registered as the device owner app.

public boolean isLockTaskPermitted (ComponentName component)

This function lets the caller know whether the given component is allowed to start the lock task mode.

Parameters
component The component to check

public boolean isProfileOwnerApp (String packageName)

Used to determine if a particular package is registered as the Profile Owner for the current user. A profile owner is a special device admin that has additional privileges within the managed profile.

Parameters
packageName The package name of the app to compare with the registered profile owner.
Returns
  • Whether or not the package is registered as the profile owner.

public void lockNow ()

Added in API level 8

Make the device lock immediately, as if the lock screen timeout has expired at the point of this call.

The calling device admin must have requested USES_POLICY_FORCE_LOCK to be able to call this method; if it has not, a security exception will be thrown.

public void removeActiveAdmin (ComponentName who)

Added in API level 8

Remove a current administration component. This can only be called by the application that owns the administration component; if you try to remove someone else's component, a security exception will be thrown.

public boolean removeUser (ComponentName admin, UserHandle userHandle)

Called by a device owner to remove a user and all associated data. The primary user can not be removed.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
userHandle the user to remove.
Returns
  • true if the user was removed, false otherwise.

public boolean resetPassword (String password, int flags)

Added in API level 8

Force a new device unlock password (the password needed to access the entire device, not for individual accounts) on the user. This takes effect immediately. The given password must be sufficient for the current password quality and length constraints as returned by getPasswordQuality(ComponentName) and getPasswordMinimumLength(ComponentName); if it does not meet these constraints, then it will be rejected and false returned. Note that the password may be a stronger quality (containing alphanumeric characters when the requested quality is only numeric), in which case the currently active quality will be increased to match.

The calling device admin must have requested USES_POLICY_RESET_PASSWORD to be able to call this method; if it has not, a security exception will be thrown. Can not be called from a managed profile.

Parameters
password The new password for the user.
flags May be 0 or RESET_PASSWORD_REQUIRE_ENTRY.
Returns
  • Returns true if the password was applied, or false if it is not acceptable for the current constraints.

public void setAccountManagementDisabled (ComponentName admin, String accountType, boolean disabled)

Called by a profile owner to disable account management for a specific type of account.

The calling device admin must be a profile owner. If it is not, a security exception will be thrown.

When account management is disabled for an account type, adding or removing an account of that type will not be possible.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
accountType For which account management is disabled or enabled.
disabled The boolean indicating that account management will be disabled (true) or enabled (false).

public boolean setApplicationBlocked (ComponentName admin, String packageName, boolean blocked)

Called by device or profile owner to block or unblock packages. When a package is blocked it is unavailable for use, but the data and actual package file remain.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The name of the package to block or unblock.
blocked true if the package should be blocked, false if it should be unblocked.
Returns
  • boolean Whether the blocked setting of the package was successfully updated.

public void setApplicationRestrictions (ComponentName admin, String packageName, Bundle settings)

Called by a profile or device owner to set the application restrictions for a given target application running in the managed profile.

The provided Bundle consists of key-value pairs, where the types of values may be Boolean, String, or String[]. The recommended format for key strings is "com.example.packagename/example-setting" to avoid naming conflicts with library components such as WebView.

The application restrictions are only made visible to the target application and the profile or device owner.

The calling device admin must be a profile or device owner; if it is not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
packageName The name of the package to update restricted settings for.
settings A Bundle to be parsed by the receiving application, conveying a new set of active restrictions.

public int setApplicationsBlocked (ComponentName admin, Intent intent, boolean blocked)

Called by profile or device owner to block or unblock currently installed packages. This should only be called by a profile or device owner running within a managed profile.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
intent An intent matching the app(s) to be updated. All apps that resolve for this intent will be updated in the current profile.
blocked true if the packages should be blocked, false if they should be unblocked.
Returns
  • int The number of activities that matched the intent and were updated.

public void setCameraDisabled (ComponentName admin, boolean disabled)

Added in API level 14

Called by an application that is administering the device to disable all cameras on the device. After setting this, no applications will be able to access any cameras on the device.

The calling device admin must have requested USES_POLICY_DISABLE_CAMERA to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
disabled Whether or not the camera should be disabled.

public void setGlobalSetting (ComponentName admin, String setting, String value)

Called by device owners to update Settings.Global settings. Validation that the value of the setting is in the correct form for the setting type should be performed by the caller.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
setting The name of the setting to update.
value The value to update the setting to.

public void setKeyguardDisabledFeatures (ComponentName admin, int which)

Added in API level 17

Called by an application that is administering the device to disable keyguard customizations, such as widgets. After setting this, keyguard features will be disabled according to the provided feature list.

The calling device admin must have requested USES_POLICY_DISABLE_KEYGUARD_FEATURES to be able to call this method; if it has not, a security exception will be thrown.

public void setLockTaskComponents (ComponentName[] components)

Sets which components may enter lock task mode. This function can only be called by the device owner or the profile owner.

Parameters
components The list of components allowed to enter lock task mode

public void setMaximumFailedPasswordsForWipe (ComponentName admin, int num)

Added in API level 8

Setting this to a value greater than zero enables a built-in policy that will perform a device wipe after too many incorrect device-unlock passwords have been entered. This built-in policy combines watching for failed passwords and wiping the device, and requires that you request both USES_POLICY_WATCH_LOGIN and USES_POLICY_WIPE_DATA}.

To implement any other policy (e.g. wiping data for a particular application only, erasing or revoking credentials, or reporting the failure to a server), you should implement onPasswordFailed(Context, android.content.Intent) instead. Do not use this API, because if the maximum count is reached, the device will be wiped immediately, and your callback will not be invoked.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
num The number of failed password attempts at which point the device will wipe its data.

public void setMaximumTimeToLock (ComponentName admin, long timeMs)

Added in API level 8

Called by an application that is administering the device to set the maximum time for user activity until the device will lock. This limits the length that the user can set. It takes effect immediately.

The calling device admin must have requested USES_POLICY_FORCE_LOCK to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
timeMs The new desired maximum time to lock in milliseconds. A value of 0 means there is no restriction.

public void setPasswordExpirationTimeout (ComponentName admin, long timeout)

Added in API level 11

Called by a device admin to set the password expiration timeout. Calling this method will restart the countdown for password expiration for the given admin, as will changing the device password (for all admins).

The provided timeout is the time delta in ms and will be added to the current time. For example, to have the password expire 5 days from now, timeout would be 5 * 86400 * 1000 = 432000000 ms for timeout.

To disable password expiration, a value of 0 may be used for timeout.

The calling device admin must have requested USES_POLICY_EXPIRE_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Note that setting the password will automatically reset the expiration time for all active admins. Active admins do not need to explicitly call this method in that case.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
timeout The limit (in ms) that a password can remain in effect. A value of 0 means there is no restriction (unlimited).

public void setPasswordHistoryLength (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the length of the password history. After setting this, the user will not be able to enter a new password that is the same as any password in the history. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested either PASSWORD_QUALITY_NUMERIC, PASSWORD_QUALITY_ALPHABETIC, or PASSWORD_QUALITY_ALPHANUMERIC with setPasswordQuality(ComponentName, int).

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired length of password history. A value of 0 means there is no restriction.

public void setPasswordMinimumLength (ComponentName admin, int length)

Added in API level 8

Called by an application that is administering the device to set the minimum allowed password length. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested either PASSWORD_QUALITY_NUMERIC, PASSWORD_QUALITY_ALPHABETIC PASSWORD_QUALITY_ALPHANUMERIC, or PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int).

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum password length. A value of 0 means there is no restriction.

public void setPasswordMinimumLetters (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 1.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of letters required in the password. A value of 0 means there is no restriction.

public void setPasswordMinimumLowerCase (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of lower case letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 0.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of lower case letters required in the password. A value of 0 means there is no restriction.

public void setPasswordMinimumNonLetter (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of non-letter characters (numerical digits or symbols) required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 0.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of letters required in the password. A value of 0 means there is no restriction.

public void setPasswordMinimumNumeric (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of numerical digits required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 1.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of numerical digits required in the password. A value of 0 means there is no restriction.

public void setPasswordMinimumSymbols (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of symbols required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 1.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of symbols required in the password. A value of 0 means there is no restriction.

public void setPasswordMinimumUpperCase (ComponentName admin, int length)

Added in API level 11

Called by an application that is administering the device to set the minimum number of upper case letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested PASSWORD_QUALITY_COMPLEX with setPasswordQuality(ComponentName, int). The default value is 0.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
length The new desired minimum number of upper case letters required in the password. A value of 0 means there is no restriction.

public void setPasswordQuality (ComponentName admin, int quality)

Added in API level 8

Called by an application that is administering the device to set the password restrictions it is imposing. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use ACTION_SET_NEW_PASSWORD after setting this value.

Quality constants are ordered so that higher values are more restrictive; thus the highest requested quality constant (between the policy set here, the user's preference, and any other considerations) is the one that is in effect.

The calling device admin must have requested USES_POLICY_LIMIT_PASSWORD to be able to call this method; if it has not, a security exception will be thrown.

public void setProfileEnabled (ComponentName admin)

Sets the enabled state of the profile. A profile should be enabled only once it is ready to be used. Only the profile owner can call this.

Parameters
admin Which DeviceAdminReceiver this request is associated with.

public void setSecureSetting (ComponentName admin, String setting, String value)

Called by profile or device owners to update Settings.Secure settings. Validation that the value of the setting is in the correct form for the setting type should be performed by the caller.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
setting The name of the setting to update.
value The value to update the setting to.

public int setStorageEncryption (ComponentName admin, boolean encrypt)

Added in API level 11

Called by an application that is administering the device to request that the storage system be encrypted.

When multiple device administrators attempt to control device encryption, the most secure, supported setting will always be used. If any device administrator requests device encryption, it will be enabled; Conversely, if a device administrator attempts to disable device encryption while another device administrator has enabled it, the call to disable will fail (most commonly returning ENCRYPTION_STATUS_ACTIVE).

This policy controls encryption of the secure (application data) storage area. Data written to other storage areas may or may not be encrypted, and this policy does not require or control the encryption of any other storage areas. There is one exception: If isExternalStorageEmulated() is true, then the directory returned by getExternalStorageDirectory() must be written to disk within the encrypted storage area.

Important Note: On some devices, it is possible to encrypt storage without requiring the user to create a device PIN or Password. In this case, the storage is encrypted, but the encryption key may not be fully secured. For maximum security, the administrator should also require (and check for) a pattern, PIN, or password.

Parameters
admin Which DeviceAdminReceiver this request is associated with.
encrypt true to request encryption, false to release any previous request
Returns

public void wipeData (int flags)

Added in API level 8

Ask the user date be wiped. This will cause the device to reboot, erasing all user data while next booting up. External storage such as SD cards will be also erased if the flag WIPE_EXTERNAL_STORAGE is set.

The calling device admin must have requested USES_POLICY_WIPE_DATA to be able to call this method; if it has not, a security exception will be thrown.

Parameters
flags Bit mask of additional options: currently 0 and WIPE_EXTERNAL_STORAGE are supported.