/** @deprecated see note on {@link #addResolveInfoForIntent(Intent, ResolveInfo)}. */ @Deprecated public void addResolveInfoForIntent(Intent intent, List<ResolveInfo> info) { setResolveInfosForIntent(intent, info); }
@Test public void resolveActivity_preferred() { ComponentName preferredName = new ComponentName("preferred", "LauncherActivity"); ComponentName otherName = new ComponentName("other", "LauncherActivity"); Intent homeIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME); shadowPackageManager.setResolveInfosForIntent( homeIntent, ImmutableList.of( ShadowResolveInfo.newResolveInfo( "label1", otherName.getPackageName(), otherName.getClassName()), ShadowResolveInfo.newResolveInfo( "label2", preferredName.getPackageName(), preferredName.getClassName()))); ResolveInfo resolveInfo = packageManager.resolveActivity(homeIntent, 0); assertThat(resolveInfo.activityInfo.packageName).isEqualTo(otherName.getPackageName()); // Setup an intentfilter and add to packagemanager IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN); filter.addCategory(Intent.CATEGORY_HOME); packageManager.addPreferredActivity(filter, 0, null, preferredName); resolveInfo = packageManager.resolveActivity(homeIntent, 0); assertThat(resolveInfo.activityInfo.packageName).isEqualTo(preferredName.getPackageName()); }
@Test @Config(minSdk = LOLLIPOP) public void setPersistentPreferrecActivity_exists() { ComponentName randomActivity = new ComponentName("random.package", "Activity"); shadowOf(devicePolicyManager).setDeviceOwner(testComponent); ResolveInfo resolveInfo = new ResolveInfo(); resolveInfo.activityInfo = new ActivityInfo(); resolveInfo.activityInfo.name = randomActivity.getClassName(); resolveInfo.activityInfo.applicationInfo = new ApplicationInfo(); resolveInfo.activityInfo.applicationInfo.packageName = randomActivity.getPackageName(); ResolveInfo resolveInfo2 = new ResolveInfo(); resolveInfo2.activityInfo = new ActivityInfo(resolveInfo.activityInfo); resolveInfo.activityInfo.name = "OtherActivity"; shadowOf(packageManager).setResolveInfosForIntent( new Intent(Intent.ACTION_MAIN), Arrays.asList(resolveInfo, resolveInfo2)); shadowOf(packageManager).setShouldShowActivityChooser(true); ResolveInfo resolvedActivity = packageManager.resolveActivity(new Intent(Intent.ACTION_MAIN), 0); assertThat(resolvedActivity.activityInfo.packageName) .isNotEqualTo(randomActivity.getPackageName()); devicePolicyManager.addPersistentPreferredActivity( testComponent, new IntentFilter(Intent.ACTION_MAIN), randomActivity); resolvedActivity = packageManager.resolveActivity(new Intent(Intent.ACTION_MAIN), 0); assertThat(resolvedActivity.activityInfo.packageName) .isEqualTo(randomActivity.getPackageName()); assertThat(resolvedActivity.activityInfo.name).isEqualTo(randomActivity.getClassName()); }
/** * @deprecated please use {@link #setResolveInfosForIntent} or {@link * #addResolveInfoForIntent(Intent, ResolveInfo)} instead. */ @Deprecated public void addResolveInfoForIntent(Intent intent, List<ResolveInfo> info) { setResolveInfosForIntent(intent, info); }