我是否需要获得存储读取权限才能获取用户选择的图像的缩略图?

时间:2018-07-24 14:14:13

标签: android android-intent

我想让用户选择一个现有图像,并在我的应用程序中显示该所选图像的缩略图,以便用户可以验证所选图像。当然,我还需要读取图像的全部数据才能上传图像。

对于选择图像,似乎至少有两种方式,Intent.ACTION_GET_CONTENTIntent.ACTION_PICK。我猜前者是较新的,所以我选择了前者。

我想可能有两种获取缩略图的方法。从完整图像动态创建一个,并从系统获取现有缩略图。前者会占用很多处理能力,因此我更喜欢后者。

我在网上搜索后发现可以使用MediaStore.Images.Thumbnails.getThumbnail。 StackOverflow示例错误地传递了URI字符串,但是我从数据URI(例如“ ... / document / image:12345”)中提取了像12345这样的长ID(我不确定这是否是获取数据的最佳方法所选图片的ID)。但这随后导致了requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()异常。

我想避免请求权限,因为没有用户喜欢。似乎我可以在没有该存储权限的情况下读取完整的图像,所以奇怪的是,它只需要读取该图像的缩略图就需要该权限。我猜这是因为Android认为缩略图是一个单独的文件,而Android仅向我的应用授予用户选择的文件的权限。

因此,简而言之,要获取现有的缩略图,我是否需要请求存储读取权限?未经许可,是否可以获取所选择图像的现有缩略图?

0 个答案:

没有答案