@@ -559,6 +559,7 @@ public void onServiceDisconnected(ComponentName name) {
559559 private static final int H_FSTRIM = 4 ;
560560 private static final int H_VOLUME_MOUNT = 5 ;
561561 private static final int H_VOLUME_BROADCAST = 6 ;
562+ private static final int H_INTERNAL_BROADCAST = 7 ;
562563
563564 class MountServiceHandler extends Handler {
564565 public MountServiceHandler (Looper looper ) {
@@ -655,6 +656,13 @@ public void handleMessage(Message msg) {
655656 }
656657 break ;
657658 }
659+ case H_INTERNAL_BROADCAST : {
660+ // Internal broadcasts aimed at system components, not for
661+ // third-party apps.
662+ final Intent intent = (Intent ) msg .obj ;
663+ mContext .sendBroadcastAsUser (intent , UserHandle .ALL ,
664+ android .Manifest .permission .WRITE_MEDIA_STORAGE );
665+ }
658666 }
659667 }
660668 }
@@ -1126,8 +1134,7 @@ private void onDiskScannedLocked(DiskInfo disk) {
11261134 intent .addFlags (Intent .FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT );
11271135 intent .putExtra (DiskInfo .EXTRA_DISK_ID , disk .id );
11281136 intent .putExtra (DiskInfo .EXTRA_VOLUME_COUNT , volumeCount );
1129- mContext .sendBroadcastAsUser (intent , UserHandle .ALL ,
1130- android .Manifest .permission .WRITE_MEDIA_STORAGE );
1137+ mHandler .obtainMessage (H_INTERNAL_BROADCAST , intent ).sendToTarget ();
11311138
11321139 final CountDownLatch latch = mDiskScanLatches .remove (disk .id );
11331140 if (latch != null ) {
@@ -1239,8 +1246,7 @@ private void onVolumeStateChangedLocked(VolumeInfo vol, int oldState, int newSta
12391246 intent .putExtra (VolumeInfo .EXTRA_VOLUME_STATE , newState );
12401247 intent .putExtra (VolumeRecord .EXTRA_FS_UUID , vol .fsUuid );
12411248 intent .addFlags (Intent .FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT );
1242- mContext .sendBroadcastAsUser (intent , UserHandle .ALL ,
1243- android .Manifest .permission .WRITE_MEDIA_STORAGE );
1249+ mHandler .obtainMessage (H_INTERNAL_BROADCAST , intent ).sendToTarget ();
12441250 }
12451251
12461252 final String oldStateEnv = VolumeInfo .getEnvironmentForState (oldState );
0 commit comments