【问题标题】:Android ContentResolver creates file with random filenameAndroid ContentResolver 使用随机文件名创建文件
【发布时间】:2021-04-19 13:05:46
【问题描述】:

我正在尝试使用此代码使用 ContentResolver 创建一个 GIF

val fileName = "mygif.gif"

// Add a specific media item.
val resolver = applicationContext.contentResolver

// Find all video files on the primary external storage device.
val videoCollection =
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
    } else {
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI
    }

val gifDetails = ContentValues().apply {
    put(MediaStore.Images.Media.DISPLAY_NAME, fileName)
}

resolver.insert(videoCollection, gifDetails)?.let { uri ->
    val os = resolver.openOutputStream(uri)
    // [...] creates GIF with Outputstream
}

我的文件已正确创建,但 Android 将其命名为 16118154646.jpg 而不是 mygif.gif。名称和扩展名均未正确设置。如何做到这一点?

【问题讨论】:

  • apply {} lambda 中使用 put(MediaStore.Video.Media.MIME_TYPE, "image/gif") 作为 MIME 类型。
  • 试过这个,又试了一次,但不幸的是没有成功

标签: android android-contentresolver


【解决方案1】:

此代码不适用于 Android = 29。

【讨论】:

    猜你喜欢
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多