如何在 Android 照片选择器中启用浏览选项

问题描述 投票:0回答:1

当我使用 Photo Picker Android 库在我的应用程序中实现照片选择器功能时。我只能访问相机、屏幕截图和下载文件夹,包括一些最近的照片/视频,而不是完整的访问权限。但在谷歌实现的应用程序之一(Snapseed)中,同类照片选择器可以在单击浏览按钮后访问Intent.ACTION_GET_CONTENT选择器以访问其他目录。作为参考,我附上了screenshot

谁能帮我,如何实现原生android照片选择器中的浏览按钮?

android android-intent android-photo-picker
1个回答
0
投票

我可以通过使用

ActivityResultContracts.GetContent()
而不是
ActivityResultContracts.PickVisualMedia()
来获得“浏览”选项。这实际上是创建以下意图:

Intent(Intent.ACTION_GET_CONTENT)
                .addCategory(Intent.CATEGORY_OPENABLE)
                .setType("image/*")

我相信您可以直接启动该意图,或者我的代码在可组合项内使用 ActivityResultContracts 范例,因此它看起来像这样:

val photoPickerLauncher =
       rememberLauncherForActivityResult(ActivityResultContracts.GetContent()) { uri ->
            //do something with image uri
        }

photoPickerLauncher.launch(MIME_TYPE_IMAGE)

之前我按照文档中的概述使用

ActivityResultContracts.PickVisualMedia()
。这样,我就没有在照片选择器上获得浏览选项。通过上面的代码,我做到了。我还在 Android 11 设备上进行了测试,使用旧的图库 UI 运行良好。

现在我无法真正解释为什么它有效,所以使用风险自负。我发现 PhotoPicker 和图库选择的文档总体来说非常差。但这似乎对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.