java - Android Intent 选择设置默认应用

标签 java android android-intent filechooser

我正在开发一个 Android 应用程序,当用户点击链接和/或文件时,我想让他们选择要使用哪个应用程序来打开该链接和/或文件。目前它按预期方式工作,但我无法尝试让用户选择一个复选框,让他们选择默认应用程序来打开该文件,这样他们就不必每次都选择它。我正在考虑在对话框中有一个复选框,然后将它的值与应用程序选项一起提交给共享首选项。之后,每次他们单击该文件时,都会打开默认应用程序。本质上,我正在尝试获得像这样的对话,enter image description here

但我一直收到这个,

enter image description here

代码如下:

Intent intent = new Intent(Intent.ACTION_VIEW).setDataAndType(uri, mimeChoice);
startActivity(Intent.createChooser(intent,getActivity().getString(R.string.open_with_title)));

最佳答案

就像 tambykojak 指出的那样,“Android 操作系统将根据您构建的 Intent 来解决这个问题”并且没有默认应用程序的选项。但是您将通过获取由包确定的已安装应用程序来构建自己的自定义对话框: 例如:

Facebook:“com.facebook.katana”; Whatsapp: "com.whatsapp"; 推特:“com.twitter.android”; Google Playstore:“com.android.vending”; Chrome:“com.android.chrome”等...

并在首选项中保存“默认”选项。

更多信息:

How to force Share Intent to open a specific app?

How to filter specific apps for ACTION_SEND intent (and set a different text for each app)

关于java - Android Intent 选择设置默认应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887705/

相关文章:

android - 如何不打开已通过最近的应用程序完成的 Activity

java - 如何使用 Jackson 反序列化混合类型的匿名数组

java - 空指针无处不在,因为数据突然变得稀疏

java - 链表优先级队列上的无限循环

android - 可以在xml中设置setDisplayShowTitleEnabled来为ActionBar设置主题吗?

java - 创建唯一的消息 ID,例如 Whatsapp

android - 通过 ACTION_SEND 共享文件名的简单且通用的方法

java - jackson 没有填充所有属性

Android:ScaleType ="fitXY"不适用于所有图像

由于 gps 权限拒绝,android 应用程序在 android 4.4 上崩溃