從 URL 下載檔案到下載目錄時,它會在 Android 10 模擬器上崩潰:
java.io.FileNotFoundException: /storage/emulated/0/Download/shareFile.mp3: open failed: EACCES (Permission denied)
這是我下載檔案的方式:
val storage = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
withContext(Dispatchers.IO) {
URL(soundURL).openStream().use { input ->
FileOutputStream(File(storage.absolutePath, "shareFile.mp3")).use { output ->
input.copyTo(output)
}
}
}
呼叫 FileOutputStream 時在第 4 行崩潰
我獲得了兩個權限:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE
在我的 Android 11 和 12 設備上一切正常
uj5u.com熱心網友回復:
如果您面向 Android 10,則需要在應用的清單檔案中將requestLegacyExternalStorage的值設定為true :
<application
android:requestLegacyExternalStorage="true"
</application>
有關更多資訊,您可以在此處查看:
https://developer.android.com/training/data-storage/use-cases#opt-out-in-production-app
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508441.html