在 Kotlin 中保存文件时,如果出现'W/DocumentsContract: Failed to create document”错误,则需要使用以下代码示例:
val filename = "myFile.txt"
val mimeType = "text/plain"
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, filename)
put(MediaStore.MediaColumns.MIME_TYPE, mimeType)
}
val resolver = applicationContext.contentResolver
val uri = resolver.insert(MediaStore.Files.getContentUri("external"), contentValues)
uri?.let { fileUri ->
resolver.openOutputStream(fileUri)?.use { outputStream ->
outputStream.write("Hello World".toByteArray())
outputStream.close()
}
}
在上面的代码中,我们首先创建了要保存的文件的文件名和 MIME 类型。然后,我们使用 ContentResolver 的 insert() 方法将这些信息插入到 MediaStore 中。insert() 方法将返回保存文件的 URI。接下来,我们使用 ContentResolver 的 openOutputStream() 方法打开一个输出流,然后将数据写入流中。最后,我们关闭输出流。
这个解决方法可以确保我们在 Kotlin 中正确地保存文件,并避免了'W/DocumentsContract: Failed to create document”错误。