From bf2dd44a6f86d13efd55d1e690822fba11187bf8 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Wed, 3 Mar 2010 06:16:52 -0500 Subject: [PATCH] MountService: Send ACTION_MEDIA_UNSHARED Intent a volume is no longer shared via UMS. Change-Id: I21c887ae76eccabcc5d8449aa0a38e98758e8958 Signed-off-by: Mike Lockwood --- core/java/android/content/Intent.java | 10 +++++++++- services/java/com/android/server/MountService.java | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 90e8c14ae90b9..179b80780a114 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1632,11 +1632,19 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast Action: External media is unmounted because it is being shared via USB mass storage. - * The path to the mount point for the removed media is contained in the Intent.mData field. + * The path to the mount point for the shared media is contained in the Intent.mData field. */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_MEDIA_SHARED = "android.intent.action.MEDIA_SHARED"; + /** + * Broadcast Action: External media is no longer being shared via USB mass storage. + * The path to the mount point for the previously shared media is contained in the Intent.mData field. + * + * @hide + */ + public static final String ACTION_MEDIA_UNSHARED = "android.intent.action.MEDIA_UNSHARED"; + /** * Broadcast Action: External media was removed from SD card slot, but mount point was not unmounted. * The path to the mount point for the removed media is contained in the Intent.mData field. diff --git a/services/java/com/android/server/MountService.java b/services/java/com/android/server/MountService.java index 41f38501bd3f0..3849023fb0c0e 100644 --- a/services/java/com/android/server/MountService.java +++ b/services/java/com/android/server/MountService.java @@ -523,6 +523,11 @@ class MountService extends IMountService.Stub Intent in = null; + if (oldState == VolumeState.Shared && newState != oldState) { + mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_UNSHARED, + Uri.parse("file://" + path))); + } + if (newState == VolumeState.Init) { } else if (newState == VolumeState.NoMedia) { // NoMedia is handled via Disk Remove events