每日一坑
- 安卓选取图片获取文件名的问题
- 如果使用
PickVisualMediaRequest 选取图片,会无法取到图片文件的原名(display name)。
- 因为得到的 URI 会类似于:
content://media/picker/0/com.android.providers.media.photopicker/media/1719。
- 解决方案: 如果需要选取图片并且需要文件名称,请使用
Intent.ACTION_OPEN_DOCUMENT 启动文件 picker,并在 MIME type 中添加 "image/jpeg"(或其他需要的图片类型)。
- 启动特定文件选择器的代码示例:
private fun openSpecificFilePicker(mimeTypes: Array<String>) {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "*/*" // 统一设为 */*,然后用 EXTRA_MIME_TYPES 过滤
putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
putExtra(
Intent.EXTRA_ALLOW_MULTIPLE,
true
)
}
pickFileLauncher.launch(intent)
}