小编ros*_*d65的帖子

如何以相对路径从 MediaStore 读取文件?

在 Android 10 或更高版本中,我使用 MediaStore 将文件保存在“下载”、共享存储中。我用来保存文件的代码如下:

        GlobalScope.launch {
        val values = ContentValues().apply {
            put(MediaStore.Downloads.DISPLAY_NAME, "file.txt")
            put(MediaStore.Downloads.MIME_TYPE, "text/plain")
            put(MediaStore.Downloads.IS_PENDING, 1)
            put(MediaStore.Downloads.RELATIVE_PATH,Environment.DIRECTORY_DOWNLOADS+ File.separator+"MyApp/SubDir")
        }

        val collection = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
        val item = contentResolver.insert(collection, values)!!

        contentResolver.openFileDescriptor(item, "w", null).use {
            FileOutputStream(it!!.fileDescriptor).use { outputStream ->
                outputStream.write("test file".toByteArray())
                outputStream.close()
            }
        }

        values.clear()
        values.put(MediaStore.Images.Media.IS_PENDING, 0)
        contentResolver.update(item, values, null, null)
Run Code Online (Sandbox Code Playgroud)

现在我的文件保存在 Downloads/myApp/subDir/file.txt 中

如果是这样,如果我不知道该文件的 Uri 但知道用于保存它的 RELATIVE_PATH,我该如何读取该文件?

android uri mediastore

5
推荐指数
1
解决办法
3470
查看次数

标签 统计

android ×1

mediastore ×1

uri ×1