Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上调用其他应用程序的默认活动?_Android - Fatal编程技术网

如何在Android上调用其他应用程序的默认活动?

如何在Android上调用其他应用程序的默认活动?,android,Android,如何在Android上调用其他应用程序的默认活动?例如,我希望我的应用程序调用我手机上的特定pdf阅读器(我有许多pdf阅读器应用程序)使用意图。以下是。使用带有Uri的ACTION\u视图意图,该Uri指向SD卡上的文件(或应用程序本地文件存储中的MODE\u WORLD\u READABLE)。您还应该将MIME类型设置为application/pdf Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("path-to-docu

如何在Android上调用其他应用程序的默认活动?例如,我希望我的应用程序调用我手机上的特定pdf阅读器(我有许多pdf阅读器应用程序)

使用
意图。以下是。

使用带有Uri的
ACTION\u视图
意图,该Uri指向SD卡上的文件(或应用程序本地文件存储中的
MODE\u WORLD\u READABLE
)。您还应该将MIME类型设置为
application/pdf

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("path-to-document"));
intent.setType("application/pdf");
startActivity(intent);
上面的代码将启动一个活动选择器,用户可以在其中选择所需的应用程序来查看给定的pdf。我不建议强制使用特定的应用程序(因为用户可能没有在其设备上安装),但如果必须,您可以使用

intent.setPackage("com.package.name")

只需确保您检查应用程序是否已安装(或将您的代码包装在
try catch
语句中,以确保不会抛出
ActivityNotFoundException

您是应用程序的唯一用户吗?我非常确定第三方应用程序将无法查看已保存到应用程序本地服务器的PDF文件(或任何文件)(内部)内存。此外,如果用户为PDF mime type.Alex设置了“默认”应用程序,则该代码不会启动选择器。知道这一点很好。但是,我希望为应用程序创建一个快捷方式,我事先不知道该手机将安装哪些应用程序。请注意,快捷方式将在我的应用程序中,而不是b提供的小部件中y安卓。是否有办法将这些应用程序注册到我的应用程序中,以便我可以调用它们?@MisterSquonk,文档中的建议并非如此。@user1411193,安卓活动选择器不是“小部件”,而是由系统提供并使用的“活动”(默认情况下)当有多个应用程序可以满足给定的意图操作时。您可以始终实现自己的活动选择器,但我不确定为什么要这样做。默认的活动选择器是否有问题?Alex,我想跳过活动选择器。例如,如果我有两个第三方应用程序,例如Opera browser和Firefox在我的android手机上浏览。在我的应用程序中,我有两个按钮:一个打开Opera浏览器,一个打开Firefox。由于我不知道这些应用程序(浏览器)的默认活动,我如何直接调用它们?我希望用户能够为他们手机上的任何应用程序(在我的应用程序中)创建快捷方式(通过创建按钮)。如果我不知道他们活动的名称,我会怎么做。我只知道应用程序的名称及其在磁盘上的位置。