diff options
author | San Mehat <san@google.com> | 2010-02-16 18:07:31 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-16 18:07:31 -0800 |
commit | 2db939bde9a9a1d52d8849e6ff88f6a81504d361 (patch) | |
tree | a463803b43d13617486c1a3493b07be5e60d9913 /services | |
parent | 8ff97b58692ecc889e013a03eefc0a1f64cc7295 (diff) | |
parent | c1b4ce93be60aa09eda5653edc2f6a8ce864526d (diff) | |
download | frameworks_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.java | 26 |
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"); |