我想要的是在我的应用程序中打开PDF文件时隐藏WebBrowser。我想只显示PDF阅读器应用程序,如果没有则显示警告信息。
现在我可以创建AppChooser对话框,但我不知道如何隐藏某些应用程序。
非常感谢!
答案 0 :(得分:8)
在启动选择器之前,您必须查询可用的应用程序。您需要了解有关要排除的应用的信息。例如,包名称
Intent pdfIntent = ...;
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(pdfIntent, 0);
List<Intent> targetPDFIntents = new ArrayList<Intent>();
for (ResolveInfo currentInfo : activities) {
String packageName = currentInfo.activityInfo.packageName;
if (!"pageToExclude".equals(packageName)) {
Intent targetPdfIntent = new Intent(android.content.Intent.ACTION_VIEW, exportData);
targetPdfIntent.setPackage(packageName);
targetPDFIntents.add(targetPdfIntent);
}
}
Intent chooserIntent = Intent.createChooser(targetPDFIntents.remove(0), "title");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetPDFIntents.toArray(new Parcelable[] {}));
startActivity(chooserIntent);
通过它,您可以使用包的显式活动列表启动选择器。并且所有这些都可以处理在第一行中创建的IntentType pdfIntent。
答案 1 :(得分:0)
我认为您必须尝试使用explicit intent打开PDF阅读器(如Abode one),捕获异常然后显示警报消息。