3

我知道如何在 Android 中加载 PDF 文件。但如果安装了多个 PDF 查看器,Android 会显示一个可供选择的列表。我想用特定的 PDF 查看器(比如 DroidReader)加载我的 PDF 文件。这该怎么做?

4

2 回答 2

2

我强烈建议不要像接受的答案建议的那样在 Intent 中指定明确的类名,因为这是应用程序的实现细节,可以随时更改。

相反,像平常一样构建您的 Intent,但使用 Intent.setPackage() 指定系统应该只在所需应用程序的包名称中查找匹配的活动。那是:

Intent intent = new Intent(Intent.ACTION_VIEW, uriToView);
intent.setPackage("com.package.name.of.droidreader");
startActivity(intent)
于 2011-01-18T05:43:54.553 回答
1

然后指定活动的完整名称:

    Intent intent = new Intent();
    ComponentName comp = new ComponentName("com.package.name.of.droidreader", "com.package.name.of.droidreader.DroidReader");
    intent.setComponent(comp);
    startActivity(intent);

要知道包名称和活动是什么,您可以查看adb logcat输出:当您打开活动时,它会记录在那里。当然,正确配置 Intent 以便 DroidReader 知道要打开什么文件。

最后,但重要的是,您应该用一个块包围该startActivity方法(我确信大多数手机不会有那个特定的应用程序)。try-catchActivityNotFoundException

于 2011-01-18T05:13:28.977 回答