diff options
3 files changed, 11 insertions, 3 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 42b8a5d5340c..267ecd455626 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -667,7 +667,6 @@ package android.app.admin { method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedAccessibilityServices(int); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List<java.lang.String> getPermittedInputMethodsForCurrentUser(); method @Nullable public android.content.ComponentName getProfileOwner() throws java.lang.IllegalArgumentException; - method @Nullable @RequiresPermission(value=android.Manifest.permission.INTERACT_ACROSS_USERS, conditional=true) public android.content.ComponentName getProfileOwnerAsUser(@NonNull android.os.UserHandle); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getProfileOwnerNameAsUser(int) throws java.lang.IllegalArgumentException; method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserProvisioningState(); method public boolean isDeviceManaged(); diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 9a4e2151dd3b..100edf306d09 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -6339,7 +6339,6 @@ public class DevicePolicyManager { */ @RequiresPermission(value = android.Manifest.permission.INTERACT_ACROSS_USERS, conditional = true) - @SystemApi public @Nullable ComponentName getProfileOwnerAsUser(@NonNull UserHandle user) { if (mService != null) { try { diff --git a/packages/SettingsLib/RestrictedLockUtils/src/com/android/settingslib/RestrictedLockUtils.java b/packages/SettingsLib/RestrictedLockUtils/src/com/android/settingslib/RestrictedLockUtils.java index 8529e3ef8420..87b5b57c7d9e 100644 --- a/packages/SettingsLib/RestrictedLockUtils/src/com/android/settingslib/RestrictedLockUtils.java +++ b/packages/SettingsLib/RestrictedLockUtils/src/com/android/settingslib/RestrictedLockUtils.java @@ -20,6 +20,7 @@ import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; @@ -47,7 +48,16 @@ public class RestrictedLockUtils { if (dpm == null) { return null; } - ComponentName adminComponent = dpm.getProfileOwnerAsUser(user); + + Context userContext; + try { + userContext = context.createPackageContextAsUser(context.getPackageName(), 0, user); + } catch (PackageManager.NameNotFoundException e) { + throw new IllegalStateException(e); + } + + ComponentName adminComponent = userContext.getSystemService( + DevicePolicyManager.class).getProfileOwner(); if (adminComponent != null) { return new EnforcedAdmin(adminComponent, enforcedRestriction, user); } |