Skip to content

Instantly share code, notes, and snippets.

@GBouerat
Last active August 29, 2015 14:01
Show Gist options
  • Save GBouerat/13dbb5b1a8170d0c8cad to your computer and use it in GitHub Desktop.
Save GBouerat/13dbb5b1a8170d0c8cad to your computer and use it in GitHub Desktop.
Filtering Intent chooser
Uri uri = Uri.parse("http://WTF")
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
List<ResolveInfo> resolveInfos = getActivity().getPackageManager().queryIntentActivities(intent, 0);
if (!resolveInfos.isEmpty()) {
ArrayList<Intent> intents = new ArrayList<Intent>(resolveInfos.size() - 1);
for (ResolveInfo resolveInfo : resolveInfos) {
String packageName = resolveInfo.activityInfo.packageName;
if (TextUtils.equals(packageName, BuildConfig.PACKAGE_NAME)) {
continue;
}
Intent target = new Intent(Intent.ACTION_VIEW, uri);
target.setPackage(packageName);
intents.add(target);
}
Intent chooserIntent = Intent.createChooser(intents.remove(0), "Fucking title");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents.toArray(new Parcelable[intents.size()]));
startActivity(chooserIntent);
}