Merge "Allow instant apps to send broadcasts to themselves" into pi-dev
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 9b16459..2458234 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -21035,9 +21035,15 @@
}
private List<ResolveInfo> collectReceiverComponents(Intent intent, String resolvedType,
- int callingUid, int[] users) {
+ int callingUid, boolean callerInstantApp, int[] users) {
// TODO: come back and remove this assumption to triage all broadcasts
int pmFlags = STOCK_PM_FLAGS | MATCH_DEBUG_TRIAGED_MISSING;
+ // Instant apps should be able to send broadcasts to themselves, so we would
+ // match instant receivers and later the broadcast queue would enforce that
+ // the broadcast cannot be sent to a receiver outside the instant UID.
+ if (callerInstantApp) {
+ pmFlags |= PackageManager.MATCH_INSTANT;
+ }
List<ResolveInfo> receivers = null;
try {
@@ -21666,7 +21672,8 @@
// Need to resolve the intent to interested receivers...
if ((intent.getFlags()&Intent.FLAG_RECEIVER_REGISTERED_ONLY)
== 0) {
- receivers = collectReceiverComponents(intent, resolvedType, callingUid, users);
+ receivers = collectReceiverComponents(intent, resolvedType, callingUid,
+ callerInstantApp, users);
}
if (intent.getComponent() == null) {
if (userId == UserHandle.USER_ALL && callingUid == SHELL_UID) {