在Android中启动特定应用

时间:2011-01-18 05:09:04

标签: android pdf pdfview

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

2 个答案:

答案 0 :(得分:2)

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

相反,像普通一样构建你的Intent,但是使用Intent.setPackage()来指定系统应该只查看所需应用程序的包名称以进行匹配活动。那就是:

Intent intent = new Intent(Intent.ACTION_VIEW, uriToView);
intent.setPackage("com.package.name.of.droidreader");
startActivity(intent)

答案 1 :(得分: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输出:当您打开活动时,它会被记录在那里。当然,正确配置意图,以便DroidReader知道要打开的文件。

最后,但重要的是,您应该使用startActivity阻止try-catch的{​​{1}}方法围绕ActivityNotFoundException方法(我确信大多数手机都没有该特定应用)。