diff options
Diffstat (limited to 'core/java/android/app/ActivityManager.java')
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index f905ec86aab7..3fedda36de2d 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -31,6 +31,7 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; +import android.annotation.UserIdInt; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; @@ -4048,7 +4049,8 @@ public class ActivityManager { * @hide */ @SystemApi - @RequiresPermission(android.Manifest.permission.MANAGE_USERS) + @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, + android.Manifest.permission.CREATE_USERS}) public boolean switchUser(@NonNull UserHandle user) { if (user == null) { throw new IllegalArgumentException("UserHandle cannot be null."); @@ -4144,6 +4146,25 @@ public class ActivityManager { } } + /** + * Stops the given {@code userId}. + * + * @hide + */ + @TestApi + @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) + public boolean stopUser(@UserIdInt int userId, boolean force) { + if (userId == UserHandle.USER_SYSTEM) { + return false; + } + try { + return USER_OP_SUCCESS == getService().stopUser( + userId, force, /* callback= */ null); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** {@hide} */ public static final int FLAG_OR_STOPPED = 1 << 0; /** {@hide} */ @@ -4811,6 +4832,21 @@ public class ActivityManager { } /** + * Blocks until all broadcast queues become idle. + * + * @hide + */ + @TestApi + @RequiresPermission(android.Manifest.permission.DUMP) + public void waitForBroadcastIdle() { + try { + getService().waitForBroadcastIdle(); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + } + + /** * A subset of immutable pending intent information suitable for caching on the client side. * * @hide |
