summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/storage/IStorageManager.aidl1
-rw-r--r--core/java/android/os/storage/StorageManager.java24
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")