summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-01-27 19:23:59 -0800
committerDianne Hackborn <hackbod@google.com>2010-01-28 13:15:57 -0800
commit254cb446faa7cb13699d8150eb4cc4f44cb61a2d (patch)
tree1647a7558348a67989c0892b4e5b0350ba4392c5 /core/java/android/app
parent2fd75f35158b8347251d18e8ec48585d6e020777 (diff)
downloadframeworks_base-254cb446faa7cb13699d8150eb4cc4f44cb61a2d.zip
frameworks_base-254cb446faa7cb13699d8150eb4cc4f44cb61a2d.tar.gz
frameworks_base-254cb446faa7cb13699d8150eb4cc4f44cb61a2d.tar.bz2
More device admin.
- Clean up device policy manager APIs. - Implement lockNow(). For now this just turns the screen off to lock the device.
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/DeviceAdmin.java13
-rw-r--r--core/java/android/app/DeviceAdminInfo.java2
-rw-r--r--core/java/android/app/DevicePolicyManager.java68
-rw-r--r--core/java/android/app/IDevicePolicyManager.aidl10
4 files changed, 65 insertions, 28 deletions
diff --git a/core/java/android/app/DeviceAdmin.java b/core/java/android/app/DeviceAdmin.java
index 88fdab2..b9a84b7 100644
--- a/core/java/android/app/DeviceAdmin.java
+++ b/core/java/android/app/DeviceAdmin.java
@@ -99,11 +99,10 @@ public class DeviceAdmin extends BroadcastReceiver {
/**
* Action sent to a device administrator when the user has changed the
* password of their device. You can at this point check the characteristics
- * of the new password with {@link DevicePolicyManager#getPasswordMode()
- * DevicePolicyManager.getActivePasswordMode()} and
- * {@link DevicePolicyManager#getMinimumPasswordLength()
- * DevicePolicyManager.getMinimumPasswordLength()}. You will generally
- * handle this in {@link DeviceAdmin#onPasswordChanged(Context, Intent)}.
+ * of the new password with {@link DevicePolicyManager#isActivePasswordSufficient()
+ * DevicePolicyManager.isActivePasswordSufficient()}.
+ * You will generally
+ * handle this in {@link DeviceAdmin#onPasswordChanged}.
*
* <p>The calling device admin must have requested
* {@link DeviceAdminInfo#USES_POLICY_LIMIT_PASSWORD} to receive
@@ -117,9 +116,9 @@ public class DeviceAdmin extends BroadcastReceiver {
* Action sent to a device administrator when the user has failed at
* attempted to enter the password. You can at this point check the
* number of failed password attempts there have been with
- * {@link DevicePolicyManager#getCurrentFailedPasswordAttempts()
+ * {@link DevicePolicyManager#getCurrentFailedPasswordAttempts
* DevicePolicyManager.getCurrentFailedPasswordAttempts()}. You will generally
- * handle this in {@link DeviceAdmin#onPasswordFailed(Context, Intent)}.
+ * handle this in {@link DeviceAdmin#onPasswordFailed}.
*
* <p>The calling device admin must have requested
* {@link DeviceAdminInfo#USES_POLICY_WATCH_LOGIN} to receive
diff --git a/core/java/android/app/DeviceAdminInfo.java b/core/java/android/app/DeviceAdminInfo.java
index e50db89..50b342b 100644
--- a/core/java/android/app/DeviceAdminInfo.java
+++ b/core/java/android/app/DeviceAdminInfo.java
@@ -51,7 +51,7 @@ public final class DeviceAdminInfo implements Parcelable {
/**
* A type of policy that this device admin can use: limit the passwords
* that the user can select, via {@link DevicePolicyManager#setPasswordMode}
- * and {@link DevicePolicyManager#setMinimumPasswordLength}.
+ * and {@link DevicePolicyManager#setPasswordMinimumLength}.
*
* <p>To control this policy, the device admin must have a "limit-password"
* tag in the "uses-policies" section of its meta-data.
diff --git a/core/java/android/app/DevicePolicyManager.java b/core/java/android/app/DevicePolicyManager.java
index 135851f..779db3a 100644
--- a/core/java/android/app/DevicePolicyManager.java
+++ b/core/java/android/app/DevicePolicyManager.java
@@ -89,7 +89,7 @@ public class DevicePolicyManager {
/**
* Activity action: have the user enter a new password. This activity
* should be launched after using {@link #setPasswordMode(ComponentName, int)}
- * or {@link #setMinimumPasswordLength(ComponentName, int)} to have the
+ * or {@link #setPasswordMinimumLength(ComponentName, int)} to have the
* user enter a new password that meets the current requirements. You can
* use {@link #isActivePasswordSufficient()} to determine whether you need
* to have the user select a new password in order to meet the current
@@ -210,13 +210,15 @@ public class DevicePolicyManager {
}
/**
- * Retrieve the current password mode that is in effect due to all
- * device admins.
+ * Retrieve the current minimum password mode for all admins
+ * or a particular one.
+ * @param admin The name of the admin component to check, or null to aggregate
+ * all admins.
*/
- public int getPasswordMode() {
+ public int getPasswordMode(ComponentName admin) {
if (mService != null) {
try {
- return mService.getPasswordMode();
+ return mService.getPasswordMode(admin);
} catch (RemoteException e) {
Log.w(TAG, "Failed talking with device policy service", e);
}
@@ -244,10 +246,10 @@ public class DevicePolicyManager {
* @param length The new desired minimum password length. A value of 0
* means there is no restriction.
*/
- public void setMinimumPasswordLength(ComponentName admin, int length) {
+ public void setPasswordMinimumLength(ComponentName admin, int length) {
if (mService != null) {
try {
- mService.setMinimumPasswordLength(admin, length);
+ mService.setPasswordMinimumLength(admin, length);
} catch (RemoteException e) {
Log.w(TAG, "Failed talking with device policy service", e);
}
@@ -255,13 +257,15 @@ public class DevicePolicyManager {
}
/**
- * Retrieve the current minimum password length that is in effect due to all
- * device admins.
+ * Retrieve the current minimum password length for all admins
+ * or a particular one.
+ * @param admin The name of the admin component to check, or null to aggregate
+ * all admins.
*/
- public int getMinimumPasswordLength() {
+ public int getPasswordMinimumLength(ComponentName admin) {
if (mService != null) {
try {
- return mService.getMinimumPasswordLength();
+ return mService.getPasswordMinimumLength(admin);
} catch (RemoteException e) {
Log.w(TAG, "Failed talking with device policy service", e);
}
@@ -270,6 +274,17 @@ public class DevicePolicyManager {
}
/**
+ * Return the maximum password length that the device supports for a
+ * particular password mode.
+ * @param mode The mode being interrogated.
+ * @return Returns the maximum length that the user can enter.
+ */
+ public int getPasswordMaximumLength(int mode) {
+ // Kind-of arbitrary.
+ return 16;
+ }
+
+ /**
* Determine whether the current password the user has set is sufficient
* to meet the policy requirements (mode, minimum length) that have been
* requested.
@@ -335,11 +350,30 @@ public class DevicePolicyManager {
}
/**
+ * Retrieve the current maximum number of login attempts that are allowed
+ * before the device wipes itself, for all admins
+ * or a particular one.
+ * @param admin The name of the admin component to check, or null to aggregate
+ * all admins.
+ */
+ public int getMaximumFailedPasswordsForWipe(ComponentName admin) {
+ if (mService != null) {
+ try {
+ return mService.getMaximumFailedPasswordsForWipe(admin);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Failed talking with device policy service", e);
+ }
+ }
+ return 0;
+ }
+
+ /**
* Force a new password on the user. This takes effect immediately. The
* given password must meet the current password minimum length constraint
* or it will be rejected. The given password will be accepted regardless
* of the current password mode, automatically adjusting the password mode
- * higher if needed. (The string you give here is acceptable for any mode;
+ * higher if needed to meet the requirements of all active administrators.
+ * (The string you give here is acceptable for any mode;
* if it contains only digits, that is still an acceptable alphanumeric
* password.)
*
@@ -386,13 +420,15 @@ public class DevicePolicyManager {
}
/**
- * Retrieve the current maximum time to lock that is in effect due to all
- * device admins. Returns 0 if no maximum is set.
+ * Retrieve the current maximum time to unlock for all admins
+ * or a particular one.
+ * @param admin The name of the admin component to check, or null to aggregate
+ * all admins.
*/
- public long getMaximumTimeToLock() {
+ public long getMaximumTimeToLock(ComponentName admin) {
if (mService != null) {
try {
- return mService.getMaximumTimeToLock();
+ return mService.getMaximumTimeToLock(admin);
} catch (RemoteException e) {
Log.w(TAG, "Failed talking with device policy service", e);
}
diff --git a/core/java/android/app/IDevicePolicyManager.aidl b/core/java/android/app/IDevicePolicyManager.aidl
index a5508cd..8d804f9 100644
--- a/core/java/android/app/IDevicePolicyManager.aidl
+++ b/core/java/android/app/IDevicePolicyManager.aidl
@@ -26,19 +26,21 @@ import android.os.RemoteCallback;
*/
interface IDevicePolicyManager {
void setPasswordMode(in ComponentName who, int mode);
- int getPasswordMode();
+ int getPasswordMode(in ComponentName who);
- void setMinimumPasswordLength(in ComponentName who, int length);
- int getMinimumPasswordLength();
+ void setPasswordMinimumLength(in ComponentName who, int length);
+ int getPasswordMinimumLength(in ComponentName who);
boolean isActivePasswordSufficient();
int getCurrentFailedPasswordAttempts();
+
void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num);
+ int getMaximumFailedPasswordsForWipe(in ComponentName admin);
boolean resetPassword(String password);
void setMaximumTimeToLock(in ComponentName who, long timeMs);
- long getMaximumTimeToLock();
+ long getMaximumTimeToLock(in ComponentName who);
void lockNow();