diff options
| author | 2016-06-20 11:22:40 -0700 | |
|---|---|---|
| committer | 2016-06-20 11:22:40 -0700 | |
| commit | ea05cd57f5b2b26650276a7ff03053e7cb78c538 (patch) | |
| tree | 58b6249baf03ca8ae5be2b7f31c307ae5ba957df | |
| parent | c2d75c898b09d87a5e7c39a0b7f387872a815490 (diff) | |
Fix issue #29438842: Enter the "am broadcast -a...
...'android.hardware.action.NEW_PICTURE'" to terminal, but does not have a response.
Change-Id: I264f386810237a7abc767f68363afeccda557b9c
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 13 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/BroadcastQueue.java | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index e9841129c4c3..3a8ef0851ef1 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17917,6 +17917,19 @@ public final class ActivityManagerService extends ActivityManagerNative // Apps should use JobScehduler to monitor for media provider changes. Slog.w(TAG, action + " no longer allowed; dropping from " + UserHandle.formatUid(callingUid)); + if (resultTo != null) { + final BroadcastQueue queue = broadcastQueueForIntent(intent); + try { + queue.performReceiveLocked(callerApp, resultTo, intent, + Activity.RESULT_CANCELED, null, null, + false, false, userId); + } catch (RemoteException e) { + Slog.w(TAG, "Failure [" + + queue.mQueueName + "] sending broadcast result of " + + intent, e); + + } + } // Lie; we don't want to crash the app. return ActivityManager.BROADCAST_SUCCESS; } diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java index 88645c1e8afd..a279290a34be 100644 --- a/services/core/java/com/android/server/am/BroadcastQueue.java +++ b/services/core/java/com/android/server/am/BroadcastQueue.java @@ -456,7 +456,7 @@ public final class BroadcastQueue { } } - private void performReceiveLocked(ProcessRecord app, IIntentReceiver receiver, + void performReceiveLocked(ProcessRecord app, IIntentReceiver receiver, Intent intent, int resultCode, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser) throws RemoteException { // Send the intent to the receiver asynchronously using one-way binder calls. |