public void startApp(VPackage p) { PackageSetting setting = (PackageSetting) p.mExtras; for (VPackage.ActivityComponent receiver : p.receivers) { ActivityInfo info = receiver.info; List<BroadcastReceiver> receivers = mReceivers.get(p.packageName); if (receivers == null) { receivers = new ArrayList<>(); mReceivers.put(p.packageName, receivers); } String componentAction = String.format("_VA_%s_%s", info.packageName, info.name); IntentFilter componentFilter = new IntentFilter(componentAction); BroadcastReceiver r = new StaticBroadcastReceiver(setting.appId, info, componentFilter); mContext.registerReceiver(r, componentFilter, null, mScheduler); receivers.add(r); for (VPackage.ActivityIntentInfo ci : receiver.intents) { IntentFilter cloneFilter = new IntentFilter(ci.filter); SpecialComponentList.protectIntentFilter(cloneFilter); r = new StaticBroadcastReceiver(setting.appId, info, cloneFilter); mContext.registerReceiver(r, cloneFilter, null, mScheduler); receivers.add(r); } } }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }
public void startApp(VPackage p) { PackageSetting setting = (PackageSetting) p.mExtras; for (VPackage.ActivityComponent receiver : p.receivers) { ActivityInfo info = receiver.info; List<BroadcastReceiver> receivers = mReceivers.get(p.packageName); if (receivers == null) { receivers = new ArrayList<>(); mReceivers.put(p.packageName, receivers); } String componentAction = String.format("_VA_%s_%s", info.packageName, info.name); IntentFilter componentFilter = new IntentFilter(componentAction); BroadcastReceiver r = new StaticBroadcastReceiver(setting.appId, info, componentFilter); mContext.registerReceiver(r, componentFilter, null, mScheduler); receivers.add(r); for (VPackage.ActivityIntentInfo ci : receiver.intents) { IntentFilter cloneFilter = new IntentFilter(ci.filter); SpecialComponentList.protectIntentFilter(cloneFilter); r = new StaticBroadcastReceiver(setting.appId, info, cloneFilter); mContext.registerReceiver(r, cloneFilter, null, mScheduler); receivers.add(r); } } }
public void startApp(VPackage p) { PackageSetting setting = (PackageSetting) p.mExtras; for (VPackage.ActivityComponent receiver : p.receivers) { ActivityInfo info = receiver.info; List<BroadcastReceiver> receivers = mReceivers.get(p.packageName); if (receivers == null) { receivers = new ArrayList<>(); mReceivers.put(p.packageName, receivers); } String componentAction = String.format("_VA_%s_%s", info.packageName, info.name); IntentFilter componentFilter = new IntentFilter(componentAction); BroadcastReceiver r = new StaticBroadcastReceiver(setting.appId, info, componentFilter); mContext.registerReceiver(r, componentFilter, null, mScheduler); receivers.add(r); for (VPackage.ActivityIntentInfo ci : receiver.intents) { IntentFilter cloneFilter = new IntentFilter(ci.filter); SpecialComponentList.protectIntentFilter(cloneFilter); r = new StaticBroadcastReceiver(setting.appId, info, cloneFilter); mContext.registerReceiver(r, cloneFilter, null, mScheduler); receivers.add(r); } } }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }
@Override public void onReceive(Context context, Intent intent) { if (mApp.isBooting()) { return; } if ((intent.getFlags() & FLAG_RECEIVER_REGISTERED_ONLY) != 0 || isInitialStickyBroadcast()) { return; } String privilegePkg = intent.getStringExtra("_VA_|_privilege_pkg_"); if (privilegePkg != null && !info.packageName.equals(privilegePkg)) { return; } PendingResult result = goAsync(); if (!mAMS.handleStaticBroadcast(appId, info, intent, new PendingResultData(result))) { result.finish(); } } }