安卓选取照片后获取原文件名的踩坑

每日一坑

  1. 安卓选取图片获取文件名的问题
    • 如果使用 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)
}
posted @ 2025-10-17 10:38  kaimingkai  阅读(27)  评论(0)    收藏  举报