From: Leo Hsu Date: Wed, 30 Jan 2019 07:40:56 +0000 (+0800) Subject: Add UserManager APIs to SystemApi. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ab28fff9f9513f65d93ff220b0c7fc9f4b2f1c47;p=android-x86%2Fframeworks-base.git Add UserManager APIs to SystemApi. Bug: 124940146 Test: make Change-Id: I1cac9a6106b3da099e08f10f2c08d90e9f515e42 --- diff --git a/api/system-current.txt b/api/system-current.txt index 20cbbfd54166..e4b201430e50 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5537,6 +5537,7 @@ package android.os { method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.os.PersistableBundle getSeedAccountOptions(); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public String getSeedAccountType(); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public long[] getSerialNumbersOfUsers(boolean); + method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public android.graphics.Bitmap getUserIcon(); method @Deprecated @android.os.UserManager.UserRestrictionSource @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public int getUserRestrictionSource(String, android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public java.util.List getUserRestrictionSources(String, android.os.UserHandle); method public boolean hasRestrictedProfiles(); @@ -5547,6 +5548,8 @@ package android.os { method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isPrimaryUser(); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean isRestrictedProfile(); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public boolean removeUser(android.os.UserHandle); + method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setUserIcon(android.graphics.Bitmap); + method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setUserName(String); field public static final String ACTION_USER_RESTRICTIONS_CHANGED = "android.os.action.USER_RESTRICTIONS_CHANGED"; field @Deprecated public static final String DISALLOW_OEM_UNLOCK = "no_oem_unlock"; field public static final String DISALLOW_RUN_IN_BACKGROUND = "no_run_in_background"; diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index e2b5730e10f4..067375590c99 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -2697,6 +2697,19 @@ public class UserManager { } /** + * Updates the calling user's name. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. + * + * @param name the new name for the user + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.MANAGE_USERS) + public void setUserName(String name) { + setUserName(getUserHandle(), name); + } + + /** * Sets the user's photo. * @param userHandle the user for whom to change the photo. * @param icon the bitmap to set as the photo. @@ -2711,6 +2724,19 @@ public class UserManager { } /** + * Sets the calling user's photo. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. + * + * @param icon the bitmap to set as the photo. + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.MANAGE_USERS) + public void setUserIcon(Bitmap icon) { + setUserIcon(getUserHandle(), icon); + } + + /** * Returns a file descriptor for the user's photo. PNG data can be read from this file. * @param userHandle the user whose photo we want to read. * @return a {@link Bitmap} of the user's photo, or null if there's no photo. @@ -2737,6 +2763,20 @@ public class UserManager { } /** + * Returns a Bitmap for the calling user's photo. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. + * + * @return a {@link Bitmap} of the user's photo, or null if there's no photo. + * @see com.android.internal.util.UserIcons#getDefaultUserIcon for a default. + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.MANAGE_USERS) + public Bitmap getUserIcon() { + return getUserIcon(getUserHandle()); + } + + /** * Returns the maximum number of users that can be created on this device. A return value * of 1 means that it is a single user device. * @hide diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index d0f192d597c6..3744f68afbfe 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1324,6 +1324,7 @@ public class UserManagerService extends IUserManager.Stub { @Override public ParcelFileDescriptor getUserIcon(int targetUserId) { + checkManageUsersPermission("get user icon"); String iconPath; synchronized (mPackagesLock) { UserInfo targetUserInfo = getUserInfoNoChecks(targetUserId);