5

我想要的是在我的应用程序中打开 PDF 文件时隐藏 WebBrowser。我只想显示 PDF 阅读器应用程序,如果没有,则显示警报消息。

现在我可以创建 AppChooser 对话框,但我不知道如何隐藏某些应用程序。

非常感谢!

4

2 回答 2

10

在启动选择器之前,您必须查询可用的应用程序。而且您需要了解有关要排除的应用程序的一些信息。例如包名

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。

于 2013-10-22T07:54:26.020 回答
0

我认为您必须尝试使用​​显式意图打开 PDF 阅读器(如 Abode one) ,捕获异常然后显示您的警报消息。

于 2013-10-22T07:49:13.677 回答