From 33f9cb8cf01e0a6288eb5b9ce724c56aa4e1e382 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 4 Oct 2012 17:15:10 -0700 Subject: [PATCH] Fix issue #7290206: Need API to get/look up user serial number Change-Id: I1713215e7c205b1b66c36488f89e3fbf4572cb97 --- api/17.txt | 2 ++ api/current.txt | 2 ++ core/java/android/os/UserManager.java | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/api/17.txt b/api/17.txt index e86de90ab46da..00e84db9c7205 100644 --- a/api/17.txt +++ b/api/17.txt @@ -16615,6 +16615,8 @@ package android.os { } public class UserManager { + method public long getSerialNumberForUser(android.os.UserHandle); + method public android.os.UserHandle getUserForSerialNumber(long); method public java.lang.String getUserName(); method public boolean isUserAGoat(); } diff --git a/api/current.txt b/api/current.txt index e86de90ab46da..00e84db9c7205 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16615,6 +16615,8 @@ package android.os { } public class UserManager { + method public long getSerialNumberForUser(android.os.UserHandle); + method public android.os.UserHandle getUserForSerialNumber(long); method public java.lang.String getUserName(); method public boolean isUserAGoat(); } diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 96c96d76a4236..83a0c7800c2f9 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -97,6 +97,32 @@ public class UserManager { } } + /** + * Return the serial number for a user. This is a device-unique + * number assigned to that user; if the user is deleted and new users + * created, the new users will not be given the same serial number. + * @param user The user whose serial number is to be retrieved. + * @return The serial number of the given user. + * @see #getUserForSerialNumber(long) + */ + public long getSerialNumberForUser(UserHandle user) { + return getUserSerialNumber(user.getIdentifier()); + } + + /** + * Return the user associated with a serial number previously + * returned by {@link #getSerialNumberForUser(UserHandle)}. + * @param serialNumber The serial number of the user that is being + * retrieved. + * @return Return the user associated with the serial number, or null + * if there is not one. + * @see #getSerialNumberForUser(UserHandle) + */ + public UserHandle getUserForSerialNumber(long serialNumber) { + int ident = getUserHandle((int)serialNumber); + return ident >= 0 ? new UserHandle(ident) : null; + } + /** * Creates a user with the specified name and options. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission.