diff options
author | Jessica Hummel <jhummel@google.com> | 2014-03-10 09:29:24 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-03-10 09:29:25 +0000 |
commit | df897d08cebb013795ae679eef842a38b5153252 (patch) | |
tree | 5ad75cbed1126d2b15d97318308c3a723f3ec1ca /core/java | |
parent | 30c86ad4754e228ecc0ff07ecb3d76ea37a619e0 (diff) | |
parent | 8cdb6fcd9b6a53978cb2b2ad9ab668ae19392266 (diff) | |
download | frameworks_base-df897d08cebb013795ae679eef842a38b5153252.zip frameworks_base-df897d08cebb013795ae679eef842a38b5153252.tar.gz frameworks_base-df897d08cebb013795ae679eef842a38b5153252.tar.bz2 |
Merge "Extend DeviceAdminReceiver to receive provisioning complete broadcast."
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/app/admin/DeviceAdminReceiver.java | 75 |
1 files changed, 53 insertions, 22 deletions
diff --git a/core/java/android/app/admin/DeviceAdminReceiver.java b/core/java/android/app/admin/DeviceAdminReceiver.java index 30b65de..00e7da4 100644 --- a/core/java/android/app/admin/DeviceAdminReceiver.java +++ b/core/java/android/app/admin/DeviceAdminReceiver.java @@ -29,25 +29,25 @@ import android.os.Bundle; * Base class for implementing a device administration component. This * class provides a convenience for interpreting the raw intent actions * that are sent by the system. - * + * * <p>The callback methods, like the base * {@link BroadcastReceiver#onReceive(Context, Intent) BroadcastReceiver.onReceive()} * method, happen on the main thread of the process. Thus long running * operations must be done on another thread. Note that because a receiver * is done once returning from its receive function, such long-running operations * should probably be done in a {@link Service}. - * + * * <p>When publishing your DeviceAdmin subclass as a receiver, it must * handle {@link #ACTION_DEVICE_ADMIN_ENABLED} and require the * {@link android.Manifest.permission#BIND_DEVICE_ADMIN} permission. A typical * manifest entry would look like:</p> - * + * * {@sample development/samples/ApiDemos/AndroidManifest.xml device_admin_declaration} - * + * * <p>The meta-data referenced here provides addition information specific * to the device administrator, as parsed by the {@link DeviceAdminInfo} class. * A typical file would be:</p> - * + * * {@sample development/samples/ApiDemos/res/xml/device_admin_sample.xml meta_data} * * <div class="special reference"> @@ -86,7 +86,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_DEVICE_ADMIN_DISABLE_REQUESTED = "android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED"; - + /** * A CharSequence that can be shown to the user informing them of the * impact of disabling your admin. @@ -94,7 +94,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { * @see #ACTION_DEVICE_ADMIN_DISABLE_REQUESTED */ public static final String EXTRA_DISABLE_WARNING = "android.app.extra.DISABLE_WARNING"; - + /** * Action sent to a device administrator when the user has disabled * it. Upon return, the application no longer has access to the @@ -107,7 +107,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_DEVICE_ADMIN_DISABLED = "android.app.action.DEVICE_ADMIN_DISABLED"; - + /** * Action sent to a device administrator when the user has changed the * password of their device. You can at this point check the characteristics @@ -115,7 +115,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { * DevicePolicyManager.isActivePasswordSufficient()}. * You will generally * handle this in {@link DeviceAdminReceiver#onPasswordChanged}. - * + * * <p>The calling device admin must have requested * {@link DeviceAdminInfo#USES_POLICY_LIMIT_PASSWORD} to receive * this broadcast. @@ -123,7 +123,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_PASSWORD_CHANGED = "android.app.action.ACTION_PASSWORD_CHANGED"; - + /** * Action sent to a device administrator when the user has failed at * attempted to enter the password. You can at this point check the @@ -131,7 +131,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { * {@link DevicePolicyManager#getCurrentFailedPasswordAttempts * DevicePolicyManager.getCurrentFailedPasswordAttempts()}. You will generally * handle this in {@link DeviceAdminReceiver#onPasswordFailed}. - * + * * <p>The calling device admin must have requested * {@link DeviceAdminInfo#USES_POLICY_WATCH_LOGIN} to receive * this broadcast. @@ -139,11 +139,11 @@ public class DeviceAdminReceiver extends BroadcastReceiver { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_PASSWORD_FAILED = "android.app.action.ACTION_PASSWORD_FAILED"; - + /** * Action sent to a device administrator when the user has successfully * entered their password, after failing one or more times. - * + * * <p>The calling device admin must have requested * {@link DeviceAdminInfo#USES_POLICY_WATCH_LOGIN} to receive * this broadcast. @@ -164,16 +164,24 @@ public class DeviceAdminReceiver extends BroadcastReceiver { public static final String ACTION_PASSWORD_EXPIRING = "android.app.action.ACTION_PASSWORD_EXPIRING"; + + /** + * Action broadcasted when provisioning of a managed profile has completed. + */ + @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_PROFILE_PROVISIONING_COMPLETE + = "android.managedprovisioning.ACTION_PROVISIONING_COMPLETE"; + /** * Name under which a DevicePolicy component publishes information * about itself. This meta-data must reference an XML resource containing * a device-admin tag. XXX TO DO: describe syntax. */ public static final String DEVICE_ADMIN_META_DATA = "android.app.device_admin"; - + private DevicePolicyManager mManager; private ComponentName mWho; - + /** * Retrieve the DevicePolicyManager interface for this administrator to work * with the system. @@ -186,7 +194,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { Context.DEVICE_POLICY_SERVICE); return mManager; } - + /** * Retrieve the ComponentName describing who this device administrator is, for * use in {@link DevicePolicyManager} APIs that require the administrator to @@ -199,7 +207,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { mWho = new ComponentName(context, getClass()); return mWho; } - + /** * Called after the administrator is first enabled, as a result of * receiving {@link #ACTION_DEVICE_ADMIN_ENABLED}. At this point you @@ -209,7 +217,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { */ public void onEnabled(Context context, Intent intent) { } - + /** * Called when the user has asked to disable the administrator, as a result of * receiving {@link #ACTION_DEVICE_ADMIN_DISABLE_REQUESTED}, giving you @@ -224,7 +232,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { public CharSequence onDisableRequested(Context context, Intent intent) { return null; } - + /** * Called prior to the administrator being disabled, as a result of * receiving {@link #ACTION_DEVICE_ADMIN_DISABLED}. Upon return, you @@ -235,7 +243,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { */ public void onDisabled(Context context, Intent intent) { } - + /** * Called after the user has changed their password, as a result of * receiving {@link #ACTION_PASSWORD_CHANGED}. At this point you @@ -247,7 +255,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { */ public void onPasswordChanged(Context context, Intent intent) { } - + /** * Called after the user has failed at entering their current password, as a result of * receiving {@link #ACTION_PASSWORD_FAILED}. At this point you @@ -258,7 +266,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { */ public void onPasswordFailed(Context context, Intent intent) { } - + /** * Called after the user has succeeded at entering their current password, * as a result of receiving {@link #ACTION_PASSWORD_SUCCEEDED}. This will @@ -292,6 +300,26 @@ public class DeviceAdminReceiver extends BroadcastReceiver { } /** + * Called on the new profile when managed profile provisioning has completed. + * Managed profile provisioning is the process of setting up the device so that it has a + * separate profile which is managed by the mobile device management(mdm) application that + * triggered the provisioning. + * + * <p>As part of provisioning a new profile is created, the mdm is moved to the new profile and + * set as the owner of the profile so that it has full control over it. + * This intent is only received by the mdm package that is set as profile owner during + * provisioning. + * + * <p>Provisioning can be triggered via an intent with the action + * android.managedprovisioning.ACTION_PROVISION_MANAGED_PROFILE. + * + * @param context The running context as per {@link #onReceive}. + * @param intent The received intent as per {@link #onReceive}. + */ + public void onProfileProvisioningComplete(Context context, Intent intent) { + } + + /** * Intercept standard device administrator broadcasts. Implementations * should not override this method; it is better to implement the * convenience callbacks for each action. @@ -299,6 +327,7 @@ public class DeviceAdminReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); + if (ACTION_PASSWORD_CHANGED.equals(action)) { onPasswordChanged(context, intent); } else if (ACTION_PASSWORD_FAILED.equals(action)) { @@ -317,6 +346,8 @@ public class DeviceAdminReceiver extends BroadcastReceiver { onDisabled(context, intent); } else if (ACTION_PASSWORD_EXPIRING.equals(action)) { onPasswordExpiring(context, intent); + } else if (ACTION_PROFILE_PROVISIONING_COMPLETE.equals(action)) { + onProfileProvisioningComplete(context, intent); } } } |