@Override public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) { return mBase.queryBroadcastReceivers(intent, flags); }
public static List<ResolveInfo> resolveBroadcast(Context context, Intent intent) { PackageManager packageManager = context.getPackageManager(); List<ResolveInfo> receivers = packageManager.queryBroadcastReceivers(intent, 0); return receivers != null ? receivers : Collections.<ResolveInfo>emptyList(); }
/** @hide */ @Deprecated public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags, int userId) { return mBase.queryBroadcastReceivers(intent, flags, userId); }
private boolean isBroadcastEnabled(@NonNull Context context, @NonNull Class<? extends BroadcastReceiver> clazz) { // on some rooted devices user can disable receivers try { Intent intent = new Intent(context, clazz); List<ResolveInfo> resolveInfos = context.getPackageManager().queryBroadcastReceivers(intent, 0); return resolveInfos != null && !resolveInfos.isEmpty(); } catch (Exception e) { return false; } }
private static void sendImplicitBroadcast(Context ctxt, Intent i) { PackageManager pm=ctxt.getPackageManager(); List<ResolveInfo> matches=pm.queryBroadcastReceivers(i, 0); for (ResolveInfo resolveInfo : matches) { Intent explicit=new Intent(i); ComponentName cn= new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name); explicit.setComponent(cn); ctxt.sendBroadcast(explicit); } } }
resolveInfos = context.getPackageManager().queryBroadcastReceivers(intent, 0); } catch (Exception e) {
tests.add(new Consumer<Intent>() { @Override public void accept(final Intent intent) { condom.getPackageManager().queryBroadcastReceivers(intent, 0); }});
@Test public void queryBroadcastReceivers_EmptyResult() throws Exception { Intent i = new Intent(Intent.ACTION_MAIN, null); i.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> broadCastReceivers = packageManager.queryBroadcastReceivers(i, 0); assertThat(broadCastReceivers).isEmpty(); }
@Test public void testQueryBroadcastReceiverFailsForMissingPackageName() { Intent intent = new Intent("org.robolectric.ACTION_ONE_MORE_PACKAGE"); List<ResolveInfo> receiverInfos = packageManager.queryBroadcastReceivers(intent, PackageManager.GET_RESOLVED_FILTER); assertThat(receiverInfos).isEmpty(); }
@Test public void testQueryBroadcastReceiver_matchAllWithoutIntentFilter() { Intent intent = new Intent(); intent.setPackage(ApplicationProvider.getApplicationContext().getPackageName()); List<ResolveInfo> receiverInfos = packageManager.queryBroadcastReceivers(intent, PackageManager.GET_INTENT_FILTERS); assertThat(receiverInfos).hasSize(7); for (ResolveInfo receiverInfo : receiverInfos) { assertThat(receiverInfo.activityInfo.name) .isNotEqualTo("com.bar.ReceiverWithoutIntentFilter"); } }
@Test public void queryBroadcastReceivers_MatchWithExplicitIntent() throws Exception { Intent i = new Intent(); i.setClassName( ApplicationProvider.getApplicationContext(), "org.robolectric.fakes.ConfigTestReceiver"); List<ResolveInfo> receivers = packageManager.queryBroadcastReceivers(i, 0); assertThat(receivers).isNotNull(); assertThat(receivers).hasSize(1); assertThat(receivers.get(0).resolvePackageName).isEqualTo("org.robolectric"); assertThat(receivers.get(0).activityInfo.name) .isEqualTo("org.robolectric.fakes.ConfigTestReceiver"); }
@Test public void queryBroadcastReceivers_Match() throws Exception { Intent i = new Intent(Intent.ACTION_MAIN, null); ResolveInfo info = new ResolveInfo(); info.nonLocalizedLabel = TEST_PACKAGE_LABEL; shadowPackageManager.addResolveInfoForIntent(i, info); List<ResolveInfo> broadCastReceivers = packageManager.queryBroadcastReceivers(i, 0); assertThat(broadCastReceivers).hasSize(1); assertThat(broadCastReceivers.get(0).nonLocalizedLabel.toString()) .isEqualTo(TEST_PACKAGE_LABEL); }
@Test @Config(minSdk = LOLLIPOP) public void queryBroadcastReceivers_appHidden_dontIncludeUninstalled() { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); packageManager.setApplicationHiddenSettingAsUser( packageName, /* hidden= */ true, /* user= */ null); Intent i = new Intent(); i.setClassName( ApplicationProvider.getApplicationContext(), "org.robolectric.fakes.ConfigTestReceiver"); assertThat(packageManager.queryBroadcastReceivers(i, /* flags= */ 0)).isEmpty(); }
@Test public void testQueryBroadcastReceiverSucceeds() { Intent intent = new Intent("org.robolectric.ACTION_RECEIVER_PERMISSION_PACKAGE"); intent.setPackage(ApplicationProvider.getApplicationContext().getPackageName()); List<ResolveInfo> receiverInfos = packageManager.queryBroadcastReceivers(intent, PackageManager.GET_RESOLVED_FILTER); assertThat(receiverInfos).isNotEmpty(); assertThat(receiverInfos.get(0).activityInfo.name) .isEqualTo("org.robolectric.ConfigTestReceiverPermissionsAndActions"); assertThat(receiverInfos.get(0).activityInfo.permission) .isEqualTo("org.robolectric.CUSTOM_PERM"); assertThat(receiverInfos.get(0).filter.getAction(0)) .isEqualTo("org.robolectric.ACTION_RECEIVER_PERMISSION_PACKAGE"); }
@Test public void verifyCreateSuccessful() { PackageManager packageManager = mock(PackageManager.class); when(packageManager.queryIntentServices(any(Intent.class), anyInt())).thenReturn(Collections.singletonList(new ResolveInfo())); when(packageManager.queryBroadcastReceivers(any(Intent.class), anyInt())).thenReturn(Collections.singletonList(new ResolveInfo())); Context context = mockContext(); when(context.getPackageManager()).thenReturn(packageManager); JobManager.create(context); }
/** * @return A mocked context which returns a spy of {@link RuntimeEnvironment#application} in * {@link Context#getApplicationContext()}. */ public static Context createMockContext() { // otherwise the JobScheduler isn't supported we check if the service is enabled // Robolectric doesn't parse services from the manifest, see https://github.com/robolectric/robolectric/issues/416 PackageManager packageManager = mock(PackageManager.class); when(packageManager.queryBroadcastReceivers(any(Intent.class), anyInt())).thenReturn(Collections.singletonList(new ResolveInfo())); ResolveInfo resolveInfo = new ResolveInfo(); resolveInfo.serviceInfo = new ServiceInfo(); resolveInfo.serviceInfo.permission = "android.permission.BIND_JOB_SERVICE"; when(packageManager.queryIntentServices(any(Intent.class), anyInt())).thenReturn(Collections.singletonList(resolveInfo)); Context context = spy(RuntimeEnvironment.application); when(context.getPackageManager()).thenReturn(packageManager); when(context.getApplicationContext()).thenReturn(context); Context mockContext = mock(MockContext.class); when(mockContext.getApplicationContext()).thenReturn(context); return mockContext; } }
@Test @Config(minSdk = LOLLIPOP) public void queryBroadcastReceivers_appHidden_includeUninstalled() { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); packageManager.setApplicationHiddenSettingAsUser( packageName, /* hidden= */ true, /* user= */ null); Intent i = new Intent(); i.setClassName( ApplicationProvider.getApplicationContext(), "org.robolectric.fakes.ConfigTestReceiver"); List<ResolveInfo> activities = packageManager.queryBroadcastReceivers(i, MATCH_UNINSTALLED_PACKAGES); assertThat(activities).hasSize(1); assertThat(activities.get(0).resolvePackageName).isEqualTo(packageName); assertThat(activities.get(0).activityInfo.name) .isEqualTo("org.robolectric.fakes.ConfigTestReceiver"); }
public static List<AutoStartInfo> fetchAutoApps(Context mContext) { PackageManager pm = mContext.getPackageManager(); Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED); List<ResolveInfo> resolveInfoList = pm.queryBroadcastReceivers(intent, PackageManager.GET_DISABLED_COMPONENTS); List<AutoStartInfo> appList = new ArrayList<AutoStartInfo>(); String appName = null;
runInSeparateProcess(new TestService.Procedure() { @Override public void run(final Context context) { installCondomProcess(context, new CondomOptions()); // Must be installed before the first call to Context.getPackageManager(). final Intent service_intent = new Intent("android.view.InputMethod").addFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES/* For consistency */); final ResolveInfo service = context.getPackageManager().resolveService(service_intent, 0); Assume.assumeNotNull(service); final List<ResolveInfo> services = context.getPackageManager().queryIntentServices(service_intent, 0); assertNotNull(services); assertFalse(services.isEmpty()); final List<ResolveInfo> receivers = context.getPackageManager().queryBroadcastReceivers(new Intent(Intent.ACTION_BOOT_COMPLETED), 0); assertNotNull(receivers); assertFalse(receivers.isEmpty()); installCondomProcess(context, new CondomOptions().setOutboundJudge(sBlockAllJudge)); assertNull(context.getPackageManager().resolveService(service_intent, 0)); List<ResolveInfo> result = context.getPackageManager().queryIntentServices(service_intent, 0); assertTrue(result.isEmpty()); service_intent.setPackage(service.serviceInfo.packageName); assertNull(context.getPackageManager().resolveService(service_intent, 0)); result = context.getPackageManager().queryIntentServices(service_intent, 0); assertTrue(result.isEmpty()); service_intent.setPackage(null); }}); }
assertOutboundJudgeCalled(2); assertEquals(1, pm.queryBroadcastReceivers(intent(), 0).size()); context.assertBaseCalled(); assertOutboundJudgeCalled(2); assertEquals(2, dry_pm.queryBroadcastReceivers(intent(), 0).size()); context.assertBaseCalled(); assertOutboundJudgeCalled(2);