OSDN Git Service

Add a flag for creating an ephemeral user with
authorLenka Trochtova <ltrochtova@google.com>
Tue, 26 Jan 2016 14:11:09 +0000 (15:11 +0100)
committerLenka Trochtova <ltrochtova@google.com>
Wed, 27 Jan 2016 09:45:24 +0000 (10:45 +0100)
DevicePolicyManager#createAndManageUser.

BUG: 24883058

Change-Id: I225ee6f1f6692663349040676e7a6c742b3ede79

core/java/android/app/admin/DevicePolicyManager.java
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java

index 879d663..2ea215e 100644 (file)
@@ -4187,6 +4187,13 @@ public class DevicePolicyManager {
     public static final int SKIP_SETUP_WIZARD = 0x0001;
 
     /**
+     * Flag used by {@link #createAndManageUser} to specify that the user should be created
+     * ephemeral.
+     * @hide
+     */
+    public static final int MAKE_USER_EPHEMERAL = 0x0002;
+
+    /**
      * Called by a device owner to create a user with the specified name and a given component of
      * the calling package as profile owner. The UserHandle returned by this method should not be
      * persisted as user handles are recycled as users are removed and created. If you need to
index 04820a1..cf84b2f 100644 (file)
@@ -6507,7 +6507,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
 
             final long id = mInjector.binderClearCallingIdentity();
             try {
-                UserInfo userInfo = mUserManager.createUser(name, 0 /* flags */);
+                int userInfoFlags = 0;
+                if ((flags & DevicePolicyManager.MAKE_USER_EPHEMERAL) != 0) {
+                    userInfoFlags |= UserInfo.FLAG_EPHEMERAL;
+                }
+                UserInfo userInfo = mUserManager.createUser(name, userInfoFlags);
                 if (userInfo != null) {
                     user = userInfo.getUserHandle();
                 }