Android开发如何直接调起媒体浏览器跳转至相册选取图片?
解决方案
问题原因
你当前使用的ACTION_GET_CONTENT属于通用文件选取动作,系统默认会优先唤起文件管理器类应用并打开根目录,不符合直接跳转相册的需求。
通用规范实现方式
优先使用ACTION_PICK动作指定图片媒体库地址,这个是官方设计用于从系统媒体库选取内容的动作,会自动匹配相册类应用处理,直接打开图库页面:
val galleryIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) galleryIntentLauncher.launch(galleryIntent)
适配优化
- 不需要额外设置
type = "image/*",指定的MediaStore.Images.Media.EXTERNAL_CONTENT_URI已经天然限定了选取范围为设备上的所有图片资源 - Android 13及以上版本无需申请存储权限即可正常使用,系统会为选中的图片Uri授予临时读取权限
- 若少数机型仍出现唤起文件管理器的情况,可添加Intent选择器强制用户选择相册类应用:
val pickIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) val chooserIntent = Intent.createChooser(pickIntent, "选取头像") galleryIntentLauncher.launch(chooserIntent)
内容的提问来源于stack exchange,提问作者Bungles
相关产品推荐
相关产品推荐

