diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/os/storage/IStorageManager.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/os/storage/StorageManager.java | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/os/storage/IStorageManager.aidl b/core/java/android/os/storage/IStorageManager.aidl index 98b4e0b4f402..81c38f84849e 100644 --- a/core/java/android/os/storage/IStorageManager.aidl +++ b/core/java/android/os/storage/IStorageManager.aidl @@ -201,4 +201,5 @@ interface IStorageManager { 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; + boolean isAppIoBlocked(in String volumeUuid, int uid, int tid, int reason) = 94; } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index c967deb5e810..cae20ed90aa1 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -2803,6 +2803,30 @@ public class StorageManager { } } + /** + * Check if {@code uid} with {@code tid} is blocked on IO for {@code reason}. + * + * This requires {@link ExternalStorageService} the + * {@link android.Manifest.permission#WRITE_MEDIA_STORAGE} permission. + * + * @param volumeUuid the UUID of the storage volume to check IO blocked status + * @param uid the UID of the app to check IO blocked status + * @param tid the tid of the app to check IO blocked status + * @param reason the reason to check IO blocked status for + * + * @hide + */ + @TestApi + public boolean isAppIoBlocked(@NonNull UUID volumeUuid, int uid, int tid, + @AppIoBlockedReason int reason) { + Objects.requireNonNull(volumeUuid); + try { + return mStorageManager.isAppIoBlocked(convert(volumeUuid), uid, tid, reason); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + private final Object mFuseAppLoopLock = new Object(); @GuardedBy("mFuseAppLoopLock") |
