diff options
| author | Saumya Pathak <saumyap@google.com> | 2021-02-15 14:10:38 +0000 |
|---|---|---|
| committer | Saumya Pathak <saumyap@google.com> | 2021-03-03 10:46:01 +0000 |
| commit | 288500af870d87fc802bb42da3a9b7b77cd1d7ce (patch) | |
| tree | 815491125bfe52acb9cd0aaf34e3a1fe1279e054 /core/java/android | |
| parent | 5d3166d40316b7a2864f37a5098f3e9de7ed1021 (diff) | |
Adding API to get PendingIntent to launch manageSpaceActivity
Bug: 167966131
Test: StorageTestApp and atest StorageManagerTest#testLaunchManageSpaceActivityIntent
Change-Id: Id3d23fcca992819238cd24fc441c98719d5e7709
Merged-In: Id3d23fcca992819238cd24fc441c98719d5e7709
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/os/storage/IStorageManager.aidl | 3 | ||||
| -rw-r--r-- | core/java/android/os/storage/StorageManager.java | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/core/java/android/os/storage/IStorageManager.aidl b/core/java/android/os/storage/IStorageManager.aidl index 0041699df9ef..98b4e0b4f402 100644 --- a/core/java/android/os/storage/IStorageManager.aidl +++ b/core/java/android/os/storage/IStorageManager.aidl @@ -28,6 +28,8 @@ import android.os.storage.StorageVolume; import android.os.storage.VolumeInfo; import android.os.storage.VolumeRecord; import com.android.internal.os.AppFuseMount; +import android.app.PendingIntent; + /** * WARNING! Update IMountService.h and IMountService.cpp if you change this @@ -198,4 +200,5 @@ interface IStorageManager { void disableAppDataIsolation(in String pkgName, int pid, int userId) = 90; void notifyAppIoBlocked(in String volumeUuid, int uid, int tid, int reason) = 91; void notifyAppIoResumed(in String volumeUuid, int uid, int tid, int reason) = 92; + PendingIntent getManageSpaceActivityIntent(in String packageName, int requestCode) = 93; } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index 7c8874cc1ea7..71a849963818 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -49,6 +49,7 @@ import android.app.Activity; import android.app.ActivityThread; import android.app.AppGlobals; import android.app.AppOpsManager; +import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; import android.content.ContentResolver; import android.content.Context; @@ -701,6 +702,33 @@ public class StorageManager { } } + /** + * Returns a {@link PendingIntent} that can be used by Apps with + * {@link android.Manifest.permission#MANAGE_EXTERNAL_STORAGE} permission + * to launch the manageSpaceActivity for any App that implements it, irrespective of its + * exported status. + * <p> + * Caller has the responsibility of supplying a valid packageName which has + * manageSpaceActivity implemented. + * + * @param packageName package name for the App for which manageSpaceActivity is to be launched + * @param requestCode for launching the activity + * @return PendingIntent to launch the manageSpaceActivity if successful, null if the + * packageName doesn't have a manageSpaceActivity. + * @throws IllegalArgumentException an invalid packageName is supplied. + */ + @RequiresPermission(android.Manifest.permission.MANAGE_EXTERNAL_STORAGE) + @Nullable + public PendingIntent getManageSpaceActivityIntent( + @NonNull String packageName, int requestCode) { + try { + return mStorageManager.getManageSpaceActivityIntent(packageName, + requestCode); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + private ObbInfo getObbInfo(String canonicalPath) { try { final ObbInfo obbInfo = ObbScanner.getObbInfo(canonicalPath); |
