summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--api/system-current.txt1
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java12
-rw-r--r--core/res/AndroidManifest.xml1
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java8
5 files changed, 22 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt
index 7c5115f..c90dbbd 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -5696,6 +5696,7 @@ package android.app.admin {
method public void uninstallCaCert(android.content.ComponentName, byte[]);
method public void wipeData(int);
field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
+ field public static final java.lang.String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
field public static final java.lang.String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
field public static final java.lang.String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";
diff --git a/api/system-current.txt b/api/system-current.txt
index a08a011..a5f4863 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -5828,6 +5828,7 @@ package android.app.admin {
method public void uninstallCaCert(android.content.ComponentName, byte[]);
method public void wipeData(int);
field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
+ field public static final java.lang.String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
field public static final java.lang.String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
field public static final java.lang.String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 33cbc9d..b2b1727 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -690,7 +690,7 @@ public class DevicePolicyManager {
= "android.app.extra.PROFILE_OWNER_NAME";
/**
- * Activity action: send when any policy admin changes a policy.
+ * Broadcast action: send when any policy admin changes a policy.
* This is generally used to find out when a new policy is in effect.
*
* @hide
@@ -699,6 +699,16 @@ public class DevicePolicyManager {
= "android.app.action.DEVICE_POLICY_MANAGER_STATE_CHANGED";
/**
+ * Broadcast action: sent when the device owner is set or changed.
+ *
+ * This broadcast is sent only to the primary user.
+ * @see #ACTION_PROVISION_MANAGED_DEVICE
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_DEVICE_OWNER_CHANGED
+ = "android.app.action.DEVICE_OWNER_CHANGED";
+
+ /**
* The ComponentName of the administrator component.
*
* @see #ACTION_ADD_DEVICE_ADMIN
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 3e22e09..1f49929 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -319,6 +319,7 @@
<protected-broadcast android:name="android.internal.policy.action.BURN_IN_PROTECTION" />
<protected-broadcast android:name="android.app.action.SYSTEM_UPDATE_POLICY_CHANGED" />
+ <protected-broadcast android:name="android.app.action.DEVICE_OWNER_CHANGED" />
<!-- ====================================================================== -->
<!-- RUNTIME PERMISSIONS -->
<!-- ====================================================================== -->
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 5d05f32..d9afa00 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -4140,6 +4140,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
}
mDeviceOwner.writeOwnerFile();
updateDeviceOwnerLocked();
+ Intent intent = new Intent(DevicePolicyManager.ACTION_DEVICE_OWNER_CHANGED);
+
+ ident = Binder.clearCallingIdentity();
+ try {
+ mContext.sendBroadcastAsUser(intent, UserHandle.OWNER);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
return true;
}
}