From 3bbceddb94d627495c0022d6e3f92a5cb16aebea Mon Sep 17 00:00:00 2001 From: Zoltan Szatmary-Ban Date: Thu, 26 Nov 2015 13:45:51 +0000 Subject: Make base user restrictions queriable for system apps Needed by e.g. Settings > Location Bug:22541939 Change-Id: I6cdd5f1c32cde143232eb53f531bbf3a737d8a9a --- core/java/android/os/IUserManager.aidl | 1 + core/java/android/os/UserManager.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) (limited to 'core/java/android') diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl index c71d6cc00e54..1b71f0b9457f 100644 --- a/core/java/android/os/IUserManager.aidl +++ b/core/java/android/os/IUserManager.aidl @@ -54,6 +54,7 @@ interface IUserManager { int getUserSerialNumber(int userHandle); int getUserHandle(int userSerialNumber); Bundle getUserRestrictions(int userHandle); + boolean hasBaseUserRestriction(String restrictionKey, int userHandle); boolean hasUserRestriction(in String restrictionKey, int userHandle); void setUserRestriction(String key, boolean value, int userId); void setApplicationRestrictions(in String packageName, in Bundle restrictions, diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index f26693c853fb..7259a4f3cb99 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -779,6 +779,24 @@ public class UserManager { } } + /** + * @hide + * Returns whether the given user has been disallowed from performing certain actions + * or setting certain settings through UserManager. This method disregards restrictions + * set by device policy. + * @param restrictionKey the string key representing the restriction + * @param userHandle the UserHandle of the user for whom to retrieve the restrictions. + */ + public boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) { + try { + return mService.hasBaseUserRestriction(restrictionKey, userHandle.getIdentifier()); + } catch (RemoteException re) { + Log.w(TAG, "Could not get base user restrictions for user " + + userHandle.getIdentifier(), re); + return false; + } + } + /** * This will no longer work. Device owners and profile owners should use * {@link DevicePolicyManager#addUserRestriction(ComponentName, String)} instead. -- cgit v1.2.3