Tuesday, July 12, 2011

Lock the Android phone with a password


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.

Summary

Constants
StringACTION_ADD_DEVICE_ADMINActivity action: ask the user to add a new device administrator to the system.
StringACTION_SET_NEW_PASSWORDActivity action: have the user enter a new password.
StringACTION_START_ENCRYPTIONActivity action: begin the process of encrypting data on the device.
intENCRYPTION_STATUS_ACTIVATINGResult code for setStorageEncryption(ComponentName, boolean) andgetStorageEncryptionStatus(): indicating that encryption is not currently active, but is currently being activated.
intENCRYPTION_STATUS_ACTIVEResult code for setStorageEncryption(ComponentName, boolean) andgetStorageEncryptionStatus(): indicating that encryption is active.
intENCRYPTION_STATUS_INACTIVEResult code for setStorageEncryption(ComponentName, boolean) andgetStorageEncryptionStatus(): indicating that encryption is supported, but is not currently active.
intENCRYPTION_STATUS_UNSUPPORTEDResult code for setStorageEncryption(ComponentName, boolean) andgetStorageEncryptionStatus(): indicating that encryption is not supported.
StringEXTRA_ADD_EXPLANATIONAn optional CharSequence providing additional explanation for why the admin is being added.
StringEXTRA_DEVICE_ADMINThe ComponentName of the administrator component.
intPASSWORD_QUALITY_ALPHABETICConstant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least alphabetic (or other symbol) characters.
intPASSWORD_QUALITY_ALPHANUMERICConstant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least both> numeric and alphabetic (or other symbol) characters.
intPASSWORD_QUALITY_COMPLEXConstant 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.
intPASSWORD_QUALITY_NUMERICConstant for setPasswordQuality(ComponentName, int): the user must have entered a password containing at least numeric characters.
intPASSWORD_QUALITY_SOMETHINGConstant for setPasswordQuality(ComponentName, int): the policy requires some kind of password, but doesn't care what it is.
intPASSWORD_QUALITY_UNSPECIFIEDConstant for setPasswordQuality(ComponentName, int): the policy has no requirements for the password.
intRESET_PASSWORD_REQUIRE_ENTRYFlag for resetPassword(String, int): don't allow other admins to change the password again until the user has entered it.
intWIPE_EXTERNAL_STORAGEFlag for wipeData(int): also erase the device's external storage.
Public Methods
List<ComponentName>getActiveAdmins()
Return a list of all currently active device administrator's component names.
intgetCurrentFailedPasswordAttempts()
Retrieve the number of times the user has failed at entering a password since that last successful password entry.
intgetMaximumFailedPasswordsForWipe(ComponentName admin)
Retrieve the current maximum number of login attempts that are allowed before the device wipes itself, for all admins or a particular one.
longgetMaximumTimeToLock(ComponentName admin)
Retrieve the current maximum time to unlock for all admins or a particular one.
longgetPasswordExpiration(ComponentName admin)
Get the current password expiration time for the given admin or an aggregate of all admins if admin is null.
longgetPasswordExpirationTimeout(ComponentName admin)
Get the password expiration timeout for the given admin.
intgetPasswordHistoryLength(ComponentName admin)
Retrieve the current password history length for all admins or a particular one.
intgetPasswordMaximumLength(int quality)
Return the maximum password length that the device supports for a particular password quality.
intgetPasswordMinimumLength(ComponentName admin)
Retrieve the current minimum password length for all admins or a particular one.
intgetPasswordMinimumLetters(ComponentName admin)
Retrieve the current number of letters required in the password for all admins or a particular one.
intgetPasswordMinimumLowerCase(ComponentName admin)
Retrieve the current number of lower case letters required in the password for all admins or a particular one.
intgetPasswordMinimumNonLetter(ComponentName admin)
Retrieve the current number of non-letter characters required in the password for all admins or a particular one.
intgetPasswordMinimumNumeric(ComponentName admin)
Retrieve the current number of numerical digits required in the password for all admins or a particular one.
intgetPasswordMinimumSymbols(ComponentName admin)
Retrieve the current number of symbols required in the password for all admins or a particular one.
intgetPasswordMinimumUpperCase(ComponentName admin)
Retrieve the current number of upper case letters required in the password for all admins or a particular one.
intgetPasswordQuality(ComponentName admin)
Retrieve the current minimum password quality for all admins or a particular one.
booleangetStorageEncryption(ComponentName admin)
Called by an application that is administering the device to determine the requested setting for secure storage.
intgetStorageEncryptionStatus()
Called by an application that is administering the device to determine the current encryption status of the device.
booleanhasGrantedPolicy(ComponentName admin, int usesPolicy)
Returns true if an administrator has been granted a particular device policy.
booleanisActivePasswordSufficient()
Determine whether the current password the user has set is sufficient to meet the policy requirements (quality, minimum length) that have been requested.
booleanisAdminActive(ComponentName who)
Return true if the given administrator component is currently active (enabled) in the system.
voidlockNow()
Make the device lock immediately, as if the lock screen timeout has expired at the point of this call.
voidremoveActiveAdmin(ComponentName who)
Remove a current administration component.
booleanresetPassword(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.
voidsetMaximumFailedPasswordsForWipe(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.
voidsetMaximumTimeToLock(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.
voidsetPasswordExpirationTimeout(ComponentName admin, long timeout)
Called by a device admin to set the password expiration timeout.
voidsetPasswordHistoryLength(ComponentName admin, int length)
Called by an application that is administering the device to set the length of the password history.
voidsetPasswordMinimumLength(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum allowed password length.
voidsetPasswordMinimumLetters(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of letters required in the password.
voidsetPasswordMinimumLowerCase(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.
voidsetPasswordMinimumNonLetter(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.
voidsetPasswordMinimumNumeric(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.
voidsetPasswordMinimumSymbols(ComponentName admin, int length)
Called by an application that is administering the device to set the minimum number of symbols required in the password.
voidsetPasswordMinimumUpperCase(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.
voidsetPasswordQuality(ComponentName admin, int quality)
Called by an application that is administering the device to set the password restrictions it is imposing.
intsetStorageEncryption(ComponentName admin, boolean encrypt)
Called by an application that is administering the device to request that the storage system be encrypted.
voidwipeData(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

Since: 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_ADMINextra 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_SET_NEW_PASSWORD

Since: API Level 8
Activity action: have the user enter a new password. This activity should be launched after using setPasswordQuality(ComponentName, int), orsetPasswordMinimumLength(ComponentName, int) to have the user enter a new password that meets the current requirements. You can useisActivePasswordSufficient() 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

Since: 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

Since: 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

Since: 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

Since: 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

Since: 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

Since: 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

Since: API Level 8
The ComponentName of the administrator component.
Constant Value: "android.app.extra.DEVICE_ADMIN"

public static final int PASSWORD_QUALITY_ALPHABETIC

Since: 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

Since: 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_COMPLEX

Since: 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

Since: 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

Since: 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

Since: 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

Since: 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

Since: API Level 9
Flag for wipeData(int): also erase the device's external storage.
Constant Value: 1 (0x00000001)

Public Methods

public List<ComponentNamegetActiveAdmins ()

Since: 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 int getCurrentFailedPasswordAttempts ()

Since: 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 getMaximumFailedPasswordsForWipe (ComponentName admin)

Since: API Level 8
Retrieve the current maximum number of login attempts that are allowed before the device wipes itself, for all admins or a particular one.
Parameters
adminThe name of the admin component to check, or null to aggregate all admins.

public long getMaximumTimeToLock (ComponentName admin)

Since: API Level 8
Retrieve the current maximum time to unlock for all admins or a particular one.
Parameters
adminThe name of the admin component to check, or null to aggregate all admins.

public long getPasswordExpiration (ComponentName admin)

Since: API Level 11
Get the current password expiration time for the given admin or an aggregate of all admins 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
adminThe 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)

Since: API Level 11
Get the password expiration timeout for the given admin. The expiration timeout is the recurring expiration timeout provided in the call tosetPasswordExpirationTimeout(ComponentName, long) for the given admin or the aggregate of all policy administrators if admin is null.
Parameters
adminThe 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)

Since: API Level 11
Retrieve the current password history length for all admins or a particular one.
Parameters
adminThe 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)

Since: API Level 8
Return the maximum password length that the device supports for a particular password quality.
Parameters
qualityThe quality being interrogated.
Returns
  • Returns the maximum length that the user can enter.

public int getPasswordMinimumLength (ComponentName admin)

Since: API Level 8
Retrieve the current minimum password length for all admins or a particular one.
Parameters
adminThe name of the admin component to check, or null to aggregate all admins.

public int getPasswordMinimumLetters (ComponentName admin)

Since: 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 {#linksetPasswordMinimumLetters(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: API Level 11
Retrieve the current number of lower case letters required in the password for all admins or a particular one. This is the same value as set by {#linksetPasswordMinimumLowerCase(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: API Level 11
Retrieve the current number of non-letter characters required in the password for all admins or a particular one. This is the same value as set by {#linksetPasswordMinimumNonLetter(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: API Level 11
Retrieve the current number of numerical digits required in the password for all admins or a particular one. This is the same value as set by {#linksetPasswordMinimumNumeric(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: 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 {#linksetPasswordMinimumSymbols(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: API Level 11
Retrieve the current number of upper case letters required in the password for all admins or a particular one. This is the same value as set by {#linksetPasswordMinimumUpperCase(ComponentName, int) and only applies when the password quality is PASSWORD_QUALITY_COMPLEX.
Parameters
adminThe 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)

Since: API Level 8
Retrieve the current minimum password quality for all admins or a particular one.
Parameters
adminThe name of the admin component to check, or null to aggregate all admins.

public boolean getStorageEncryption (ComponentName admin)

Since: API Level 11
Called by an application that is administering the device to determine the requested setting for secure storage.
Parameters
adminWhich 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 ()

Since: 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 isENCRYPTION_STATUS_INACTIVE, use ACTION_START_ENCRYPTION to begin the process of encrypting or decrypting the storage. If the result isENCRYPTION_STATUS_ACTIVATING or ENCRYPTION_STATUS_ACTIVE, no further action is required.
Returns

public boolean hasGrantedPolicy (ComponentName admin, int usesPolicy)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with. Must be an active administrator, or an exception will be thrown.
usesPolicyWhich uses-policy to check, as defined in DeviceAdminInfo.

public boolean isActivePasswordSufficient ()

Since: 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.
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)

Since: API Level 8
Return true if the given administrator component is currently active (enabled) in the system.

public void lockNow ()

Since: 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)

Since: 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 resetPassword (String password, int flags)

Since: 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) andgetPasswordMinimumLength(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.
Parameters
passwordThe new password for the user.
flagsMay 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 setMaximumFailedPasswordsForWipe (ComponentName admin, int num)

Since: 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 andUSES_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 implementonPasswordFailed(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
adminWhich DeviceAdminReceiver this request is associated with.
numThe number of failed password attempts at which point the device will wipe its data.

public void setMaximumTimeToLock (ComponentName admin, long timeMs)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
timeMsThe new desired maximum time to lock in milliseconds. A value of 0 means there is no restriction.

public void setPasswordExpirationTimeout (ComponentName admin, long timeout)

Since: 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.
Parameters
adminWhich DeviceAdminReceiver this request is associated with.
timeoutThe 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)

Since: 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_NUMERICPASSWORD_QUALITY_ALPHABETIC, or PASSWORD_QUALITY_ALPHANUMERIC withsetPasswordQuality(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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe new desired length of password history. A value of 0 means there is no restriction.

public void setPasswordMinimumLength (ComponentName admin, int length)

Since: 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_NUMERICPASSWORD_QUALITY_ALPHABETIC PASSWORD_QUALITY_ALPHANUMERIC, orPASSWORD_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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe new desired minimum password length. A value of 0 means there is no restriction.

public void setPasswordMinimumLetters (ComponentName admin, int length)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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
adminWhich DeviceAdminReceiver this request is associated with.
lengthThe 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)

Since: 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 int setStorageEncryption (ComponentName admin, boolean encrypt)

Since: 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 bygetExternalStorageDirectory() 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
adminWhich DeviceAdminReceiver this request is associated with.
encrypttrue to request encryption, false to release any previous request
Returns

public void wipeData (int flags)

Since: 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 not be erased.
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
flagsBit mask of additional options: currently must be 0.

No comments:

Post a Comment