Skip to content

Commit 0079900

Browse files
author
Nicolas Prevot
committed
Send a public broadcast when the device owner is set.
Make it a protected broadcast. BUG: 22623518 Change-Id: Ia36e8f0b80a6301d7d8e0461476842c78762b5e8
1 parent a7bdace commit 0079900

5 files changed

Lines changed: 22 additions & 1 deletion

File tree

api/current.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5696,6 +5696,7 @@ package android.app.admin {
56965696
method public void uninstallCaCert(android.content.ComponentName, byte[]);
56975697
method public void wipeData(int);
56985698
field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
5699+
field public static final java.lang.String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
56995700
field public static final java.lang.String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
57005701
field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
57015702
field public static final java.lang.String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";

api/system-current.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5828,6 +5828,7 @@ package android.app.admin {
58285828
method public void uninstallCaCert(android.content.ComponentName, byte[]);
58295829
method public void wipeData(int);
58305830
field public static final java.lang.String ACTION_ADD_DEVICE_ADMIN = "android.app.action.ADD_DEVICE_ADMIN";
5831+
field public static final java.lang.String ACTION_DEVICE_OWNER_CHANGED = "android.app.action.DEVICE_OWNER_CHANGED";
58315832
field public static final java.lang.String ACTION_MANAGED_PROFILE_PROVISIONED = "android.app.action.MANAGED_PROFILE_PROVISIONED";
58325833
field public static final java.lang.String ACTION_PROVISION_MANAGED_DEVICE = "android.app.action.PROVISION_MANAGED_DEVICE";
58335834
field public static final java.lang.String ACTION_PROVISION_MANAGED_PROFILE = "android.app.action.PROVISION_MANAGED_PROFILE";

core/java/android/app/admin/DevicePolicyManager.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,14 +690,24 @@ public static DevicePolicyManager create(Context context, Handler handler) {
690690
= "android.app.extra.PROFILE_OWNER_NAME";
691691

692692
/**
693-
* Activity action: send when any policy admin changes a policy.
693+
* Broadcast action: send when any policy admin changes a policy.
694694
* This is generally used to find out when a new policy is in effect.
695695
*
696696
* @hide
697697
*/
698698
public static final String ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED
699699
= "android.app.action.DEVICE_POLICY_MANAGER_STATE_CHANGED";
700700

701+
/**
702+
* Broadcast action: sent when the device owner is set or changed.
703+
*
704+
* This broadcast is sent only to the primary user.
705+
* @see #ACTION_PROVISION_MANAGED_DEVICE
706+
*/
707+
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
708+
public static final String ACTION_DEVICE_OWNER_CHANGED
709+
= "android.app.action.DEVICE_OWNER_CHANGED";
710+
701711
/**
702712
* The ComponentName of the administrator component.
703713
*

core/res/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@
319319

320320
<protected-broadcast android:name="android.internal.policy.action.BURN_IN_PROTECTION" />
321321
<protected-broadcast android:name="android.app.action.SYSTEM_UPDATE_POLICY_CHANGED" />
322+
<protected-broadcast android:name="android.app.action.DEVICE_OWNER_CHANGED" />
322323
<!-- ====================================================================== -->
323324
<!-- RUNTIME PERMISSIONS -->
324325
<!-- ====================================================================== -->

services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4140,6 +4140,14 @@ public boolean setDeviceOwner(String packageName, String ownerName) {
41404140
}
41414141
mDeviceOwner.writeOwnerFile();
41424142
updateDeviceOwnerLocked();
4143+
Intent intent = new Intent(DevicePolicyManager.ACTION_DEVICE_OWNER_CHANGED);
4144+
4145+
ident = Binder.clearCallingIdentity();
4146+
try {
4147+
mContext.sendBroadcastAsUser(intent, UserHandle.OWNER);
4148+
} finally {
4149+
Binder.restoreCallingIdentity(ident);
4150+
}
41434151
return true;
41444152
}
41454153
}

0 commit comments

Comments
 (0)