summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorSan Mehat <san@google.com>2010-02-16 18:07:31 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-16 18:07:31 -0800
commit2db939bde9a9a1d52d8849e6ff88f6a81504d361 (patch)
treea463803b43d13617486c1a3493b07be5e60d9913 /services
parent8ff97b58692ecc889e013a03eefc0a1f64cc7295 (diff)
parentc1b4ce93be60aa09eda5653edc2f6a8ce864526d (diff)
downloadframeworks_base-2db939bde9a9a1d52d8849e6ff88f6a81504d361.zip
frameworks_base-2db939bde9a9a1d52d8849e6ff88f6a81504d361.tar.gz
frameworks_base-2db939bde9a9a1d52d8849e6ff88f6a81504d361.tar.bz2
Merge "MountService: Add API call for getting a list of pids currently using the specified mountpoint"
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/MountService.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/services/java/com/android/server/MountService.java b/services/java/com/android/server/MountService.java
index e764bbb..4e2ffa4 100644
--- a/services/java/com/android/server/MountService.java
+++ b/services/java/com/android/server/MountService.java
@@ -80,6 +80,7 @@ class MountService extends IMountService.Stub
*/
public static final int VolumeListResult = 110;
public static final int AsecListResult = 111;
+ public static final int StorageUsersListResult = 112;
/*
* 200 series - Requestion action has been successfully completed.
@@ -795,6 +796,31 @@ class MountService extends IMountService.Stub
return doFormatVolume(path);
}
+ public int []getStorageUsers(String path) {
+ validatePermission(android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
+ waitForReady();
+ try {
+ String[] r = mConnector.doListCommand(
+ String.format("storage users %s", path),
+ VoldResponseCode.StorageUsersListResult);
+ // FMT: <pid> <process name>
+ int[] data = new int[r.length];
+ for (int i = 0; i < r.length; i++) {
+ String []tok = r[i].split(" ");
+ try {
+ data[i] = Integer.parseInt(tok[0]);
+ } catch (NumberFormatException nfe) {
+ Log.e(TAG, String.format("Error parsing pid %s", tok[0]));
+ return new int[0];
+ }
+ }
+ return data;
+ } catch (NativeDaemonConnectorException e) {
+ Log.e(TAG, "Failed to retrieve storage users list", e);
+ return new int[0];
+ }
+ }
+
private void warnOnNotMounted() {
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
Log.w(TAG, "getSecureContainerList() called when storage not mounted");