diff --git a/core/api/test-current.txt b/core/api/test-current.txt index ddbccfa8f4041..e9cbf41c22b4f 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -195,6 +195,7 @@ package android.app { method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void stopSystemLockTaskMode(); method public static boolean supportsMultiWindow(android.content.Context); method public static boolean supportsSplitScreenMultiWindow(android.content.Context); + method @RequiresPermission("android.permission.UPDATE_LOCK_TASK_PACKAGES") public void updateLockTaskPackages(@NonNull android.content.Context, @NonNull String[]); field public static final int DEFAULT_MINIMAL_SPLIT_SCREEN_DISPLAY_SIZE_DP = 440; // 0x1b8 field public static final int INVALID_STACK_ID = -1; // 0xffffffff } diff --git a/core/java/android/app/ActivityTaskManager.java b/core/java/android/app/ActivityTaskManager.java index f17d5b7c0190d..7cfca979ed0f7 100644 --- a/core/java/android/app/ActivityTaskManager.java +++ b/core/java/android/app/ActivityTaskManager.java @@ -496,6 +496,16 @@ public class ActivityTaskManager { } } + /** Update the list of packages allowed in lock task mode. */ + @RequiresPermission(android.Manifest.permission.UPDATE_LOCK_TASK_PACKAGES) + public void updateLockTaskPackages(@NonNull Context context, @NonNull String[] packages) { + try { + getService().updateLockTaskPackages(context.getUserId(), packages); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * Information you can retrieve about a root task in the system. * @hide diff --git a/core/java/android/app/IActivityTaskManager.aidl b/core/java/android/app/IActivityTaskManager.aidl index 6576a1a5d3c2a..7c357a62d5b74 100644 --- a/core/java/android/app/IActivityTaskManager.aidl +++ b/core/java/android/app/IActivityTaskManager.aidl @@ -173,6 +173,7 @@ interface IActivityTaskManager { Rect getTaskBounds(int taskId); void cancelRecentsAnimation(boolean restoreHomeRootTaskPosition); + @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.UPDATE_LOCK_TASK_PACKAGES)") void updateLockTaskPackages(int userId, in String[] packages); boolean isInLockTaskMode(); int getLockTaskModeState(); diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index b31e36c417ab7..35bb558b18820 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -704,6 +704,9 @@ + + +