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)
       }
}