从图库中获取图像-无需任何许可即可获取

Fetching images from gallery- able to fetch without any permission

使用下面的代码从图库中获取图片

val intent = Intent()
intent.action = Intent.ACTION_PICK
intent.type = "image/*"
if (multiImageAllowed) intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
context.startActivityForResult(intent, PICK_IMAGE_GALLERY)

当我使用此 Intent 时,它会向我显示多个应用程序的选择器,我 select 其中一个应用程序并获取图像,并将其显示在我的应用程序中,(我在 onActivityResult 中获取图像),这些应用程序有自己的运行时权限检查。 我是否也需要在我的应用程序中添加图库权限检查? 如果需要,那么为什么 android 不阻止我或给出例外。 当 he/she 故意打开应用程序添加图片时,征求用户许可只是一个很好的惯例吗?

所以我的问题是,我是否也应该在我的应用程序中添加运行时权限还是不需要。(因为这些应用程序无论如何都在处理它,而且我无法访问比那个更多的图像 he/she selects)

using below code to fetch images from gallery

如果您希望用户根据 MIME 类型选择内容,请使用 ACTION_GET_CONTENTACTION_OPEN_DOCUMENTACTION_PICK 是让用户根据特定集合选择内容,由 Intent 中的 Uri 标识。这就是为什么 the ACTION_PICK documentation 提到输入是 Uri 而没有提到任何关于 MIME 类型的原因。

Do i need to add gallery permission check in my app too ?

我猜你指的是 READ_EXTERNAL_STORAGE。理论上,由 ACTION_PICKACTION_GET_CONTENTACTION_OPEN_DOCUMENT 返回的 Uri 应该可以在没有额外权限的情况下使用,至少 for a short time.

然而,并不是每个人都遵守规则,所以恕我直言,持有 READ_EXTERNAL_STORAGE 是最安全的。如果您担心向您的用户请求该权限,您可以尝试延迟它 — 尝试使用 Uri,如果您获得 SecurityException,则请求运行时权限。如果用户授予该权限,则再次尝试使用 Uri。就个人而言,我的目标是提高可靠性,并会首先请求 READ_EXTERNAL_STORAGE