如何在Android 11中创建意图来从图库选择图片?

7

我可以用Kotlin在Android上创建意图(Intent)以从图库选择图片,类似于以下代码:

val intentGallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
if (intentGallery.resolveActivity(activity.packageManager) != null) {
    // Launch the intent
}

在Android 11(API 30)上,我需要在“AndroidManifest”文件的“queries”块中放什么内容才能使这段代码正常工作?
将此代码添加到“AndroidManifest”文件的“queries”块中,即可使其正常工作。
<package android:name="com.google.android.apps.photos" />

但我想添加一个代码,覆盖所有的图库,而不仅仅是谷歌的。

参考资料: https://developer.android.com/training/basics/intents/package-visibility


谢谢CommonsWare,但我不认为那会起作用。结果将始终为空,并且最终将以ActivityNotFoundException结束。这是Android 11中的一个非常新的事情。请查看我帖子中的链接。 - Harry
Intent.ACTION_PICK与包可见性无关。请告知您遇到的问题。 - blackapps
那是不正确的。例如,如果我将此代码添加到“AndroidManifest”文件中的“queries”块中,它将正常工作,但没有它就不行。 <package android:name="com.google.android.apps.photos" />但我想添加一个覆盖所有图库而不仅仅是谷歌的代码。 - Harry
1
CommonsWare,你的回答是不正确的。我已经找到了正确的答案,Jahongir 也发表了评论。祝你推销你的烂书好运。 - Harry
1个回答

19
<queries>
    <intent>
        <action android:name="android.intent.action.PICK" />
        <data android:mimeType="vnd.android.cursor.dir/image" />
    </intent>
</queries>

我希望这可以帮到你。我使用了这个查询参数,它运行得很好。


2
非常感谢您的回复!mime类型的正确或更好值为:android:mimeType="image/jpeg"。 - Harry
android:mimeType="image/*" 更好 - Nikola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接