android - 在 API 30 中为 resolveActivity 写入清单的意图操作
问题描述
该应用程序需要让用户选择一个联系人并拍照。我正在检查用户是否有可以处理这些操作的应用程序。我知道您必须在清单文件中指定包的可见性,但是对于联系人,我不知道我必须在清单中具体写什么。我认为“android.intent.action.PICK”会是它,但它不是。
这是导致麻烦的代码
val packageManager: PackageManager = requireActivity().packageManager
val resolvedActivity: ResolveInfo? = packageManager.resolveActivity(
pickContactIntent,
PackageManager.MATCH_DEFAULT_ONLY
)
if (resolvedActivity == null) {
isEnabled = false
}
这就是我在清单中的内容
<queries>
<intent>
<action android:name="android.media.action.IMAGE_CAPTURE" />
</intent>
<intent>
<action android:name="android.intent.action.PICK" />
</intent>
</queries>
解决方案
如果您将清单条目更改为:
<queries>
<intent>
<action android:name="android.intent.action.PICK" />
<data android:mimeType="*/*" />
</intent>
</queries>
推荐阅读
- python - 在 pyspark 数据框中的单元格中将 CSV 值分隔为新列及其值
- javascript - 404 Not Found for index.html in Google App Engine - 如何让页面显示?
- reactjs - 在另一个 div 中渲染 React 组件
- django - 用postgres在一行中处理多个布尔项目?
- git - 有没有办法撤消`git reset --hard HEAD~1`?
- python - 如何在 python 中执行与字符串具有相同“文本”的变量
- python - 在多个类之间更新(添加或删除元素)全局 numpy 数组的正确方法是什么?
- discord.js - 如何添加斜杠命令以供某些用户使用?
- vue.js - 不带参数的 v-on 需要一个对象值
- javascript - 我想为这段代码添加数字限制