Android 试图在用户可见的下载目录中保存应用程序生成的文件
我正在生成一个本地文件&使用以下代码保存该文件Android 试图在用户可见的下载目录中保存应用程序生成的文件,android,kotlin,storage,Android,Kotlin,Storage,我正在生成一个本地文件&使用以下代码保存该文件 if (transactions.isNotEmpty()) { var dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) var file = File(dir, "transactions.csv") if (!file.exists()) file.createNewFile()
if (transactions.isNotEmpty()) {
var dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
var file = File(dir, "transactions.csv")
if (!file.exists()) file.createNewFile()
transactions.forEach {
var outputString = "${it.transID},${it.transDate},${it.transDesc},${it.transAmt},${it.transCat},${it.transAccnt},${it.transNotes} \\n"
file.writeText(outputString)
Log.i("Output", outputString)
}
}
上述情况会导致“权限被拒绝异常”。
如果我将Environment.getExternalStoragePublicDirectory更改为getExternalFileDir()
该文件存储在“/storage/emulated/0/Android/data/com.anand.expensecculator/files/Documents”中
我的清单中已经设置了“
”
如何访问“下载”来存储文件?您需要请求
写入外部存储。您还需要在Android 6.0+上运行时请求。在Android 10上,您需要在清单中的
元素上添加Android:requestLegacyExternalStorage=“true”
。我已经有了WRITE\u externalstorage
。我尝试了android:requestLegacyExternalStorage=“true”
。还是一样的问题。我的文件还是被掩埋了!我无法在“下载”中看到文件,您需要请求写入外部存储。您还需要在Android 6.0+上运行时请求。在Android 10上,您需要在清单中的
元素上添加Android:requestLegacyExternalStorage=“true”
。我已经有了WRITE\u externalstorage
。我尝试了android:requestLegacyExternalStorage=“true”
。还是一样的问题。我的文件还是被掩埋了!我无法在“下载”中看到该文件
if (transactions.isNotEmpty()) {
var dir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
var file = File(dir, "transactions.csv")
if (!file.exists()) file.createNewFile()
transactions.forEach {
var outputString = "${it.transID},${it.transDate},${it.transDesc},${it.transAmt},${it.transCat},${it.transAccnt},${it.transNotes} \\n"
file.writeText(outputString)
Log.i("Output", outputString)
}
}