java - 如何将应用设置为默认应用或让用户选择应用?
问题描述
目前我正在尝试创建一堆简单的 Android 应用程序来用它们替换默认应用程序。
我已经在这篇文章中看到了如何将 SMS 应用程序设置为默认值:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android-dir/mms-sms" />
</intent-filter>
但我想知道如何为这些应用程序实现相同的目标:
- 相机应用程序(拍照)
- 图库/照片应用程序(选择和查看图像)
- 联系人应用程序(查看、编辑、删除和呼叫联系人)
- 电话应用程序(呼叫联系人/电话号码和接听来电)
- 互联网浏览器应用程序(浏览互联网)
- 键盘应用程序(像在默认键盘中一样编写文本)
- 启动器应用程序(在主屏幕上显示所有已安装的应用程序)
我已经注意到,在没有用户交互的情况下,几乎不可能以编程方式将应用程序设置为默认应用程序。这将是主要目标,但如果用户可以选择他们想要使用的应用程序作为默认应用程序也是可以的。但我想确保我上面列出的应用程序是可选择的。所以我的问题是,我必须将哪些 mime 类型添加到 android 清单文件中的意图过滤器中?
解决方案
您需要为您希望您的应用程序成为默认应用程序的文件类型、操作或类别注册一个意图过滤器。然后,用户可以根据需要选择您的应用作为默认应用。
在此处查看有关 Intent 和 Intent Filters 的更多信息。
只有通过 root 访问才能将您的应用程序强制为默认应用程序。
推荐阅读
- laravel - 存储在 laravel 流明中的不可播放的音频文件
- c# - 将模型添加到 MVC 中的模型数组
- typescript - TypeScript 不同的类实现具有相同的接口。检查其实例的字段
- javascript - 使用 jquery keyup 事件后,bulma 空间不再在文本区域上工作
- python - Pygame排查黑屏:外星人入侵
- android - 既然 Android Studio 不再创建 R.java,如何找到资源 ID #s?
- javascript - html中脚本插入的奇怪行为
- uitableview - 在单元格内展开表格视图单元格
- arrays - 如何将数组中的第一个匹配项拉出循环?
- java - 更改数据库后更新 ListView