You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

小米API 33设备无法获取图库分享的图片Uri问题

问题分析与解决方案

问题根源

小米API 33设备上,图库应用分享的图片Uri并非直接指向MediaStore中的原始条目,而是临时生成的Uri。此时用contentResolver.query()查询这个Uri,得到的_ID是系统临时分配的,并非图片在MediaStore中的真实ID,所以每次分享同一张图片时ID会随机递增,生成的Uri自然也无法正确指向原始图片。

解决方案

直接使用Intent传递过来的intentUri加载图片即可,无需额外查询MediaStore生成新Uri。分享过来的Uri本身已经具备访问图片内容的权限,可直接用于加载显示。

修正后的代码

fun resolveUri(intentUri: Uri) {
    // 直接使用传入的Uri加载图片,比如用Glide、Coil或ImageView.setImageURI()
    Log.d("TAG", "直接使用的图片Uri: $intentUri")
    
    // 示例:用ImageView显示
    // imageView.setImageURI(intentUri)
}

额外说明(如需获取图片元数据)

如果需要获取图片的真实ID、路径等元数据,可以通过以下方式处理:

  • 先通过contentResolver.openInputStream(intentUri)读取文件内容,复制到本地临时文件后,再通过临时文件路径匹配MediaStore获取真实信息;
  • 使用DocumentFile.fromSingleUri(context, intentUri)获取文件详细信息,再进一步处理。

内容的提问来源于stack exchange,提问作者user3731859

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:52:06