diff options
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 8 | ||||
| -rw-r--r-- | core/java/android/os/UserHandle.java | 7 | ||||
| -rw-r--r-- | core/java/android/os/UserManager.java | 14 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java | 3 |
4 files changed, 29 insertions, 3 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index bc54055d7530..3e03893f5f64 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -18,12 +18,14 @@ package android.app; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Point; import android.os.BatteryStats; import android.os.IBinder; import android.os.ParcelFileDescriptor; + import com.android.internal.app.ProcessStats; import com.android.internal.os.TransferPipe; import com.android.internal.util.FastPrintWriter; @@ -2464,7 +2466,11 @@ public class ActivityManager { } } - /** @hide */ + /** + * Gets the userId of the current foreground user. Requires system permissions. + * @hide + */ + @SystemApi public static int getCurrentUser() { UserInfo ui; try { diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java index 5ce9d5c98acb..0ff5f6a26092 100644 --- a/core/java/android/os/UserHandle.java +++ b/core/java/android/os/UserHandle.java @@ -234,6 +234,7 @@ public final class UserHandle implements Parcelable { * @return user id of the current process * @hide */ + @SystemApi public static final int myUserId() { return getUserId(Process.myUid()); } @@ -253,7 +254,11 @@ public final class UserHandle implements Parcelable { mHandle = h; } - /** @hide */ + /** + * Returns the userId stored in this UserHandle. + * @hide + */ + @SystemApi public int getIdentifier() { return mHandle; } diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index f7936675b748..59220e1d0a37 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -15,6 +15,7 @@ */ package android.os; +import android.annotation.SystemApi; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.content.Context; @@ -424,6 +425,19 @@ public class UserManager { } /** + * Checks if the calling app is running in a managed profile. + * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. + * + * @return whether the caller is in a managed profile. + * @hide + */ + @SystemApi + public boolean isManagedProfile() { + UserInfo user = getUserInfo(UserHandle.myUserId()); + return user != null ? user.isManagedProfile() : false; + } + + /** * Return whether the given user is actively running. This means that * the user is in the "started" state, not "stopped" -- it is currently * allowed to run code through scheduled alarms, receiving broadcasts, diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java index 6e1373204c47..a0b8c94fa658 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java @@ -125,7 +125,8 @@ public class UserManagerTest extends AndroidTestCase { UserInfo.FLAG_MANAGED_PROFILE, UserHandle.USER_OWNER); assertNotNull(userInfo1); assertNull(userInfo2); - + // Verify that current user is not a managed profile + assertFalse(mUserManager.isManagedProfile()); // Cleanup removeUser(userInfo1.id); } |