Android APIv29 FileNotFoundException EACCES(权限被拒绝)

迪努

构建targetSdkVersion v29时,我无法访问存储。

这是我的gradle配置:

    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    ...
        minSdkVersion 15
        targetSdkVersion 29

请注意,WRITE_EXTERNAL_STORAGE为进行构建时,将授予权限并且相同的设置可以正常工作targetSdkVersion 28

这是我的实现:

        val outputFolder = File(baseFolder + File.separator + "Output Folder")
        if (!outputFolder.exists()) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                Files.createDirectory(outputFolder.toPath()) //This allways returns false with targetSdkVersion 29
            } else {
                if (!outputFolder.mkdirs()) {
                    Log.e("SaveRaw", "Unable to create folder for audio recording")
                }
            }
        }

        outputFile = File("$baseFolder/Output Folder/$filename")
        try {
            fileOutputStream = FileOutputStream(outputFile)
        } catch (e: FileNotFoundException) {
            e.printStackTrace() // allways throwing exception here, even if Output Folder exists 
        }

这是一个例外:

W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Chirp Auto Tester/2019_10_17 10:44:43.raw: open failed: EACCES (Permission denied)
W/System.err:     at libcore.io.IoBridge.open(IoBridge.java:496)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:235)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:186)

希望任何人都有答案,我在这里想念什么?

更新:

这是哪里baseFolder来的。请注意,这getExternalStorageDirectory是不建议使用的方法。

        val baseFolder: String = if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            Environment.getExternalStorageDirectory().absolutePath
        } else {
            context.filesDir.absolutePath
        }

谢谢

尼科斯·伊达尔戈(Nikos Hidalgo)

从Android 11开始,存储权限被撤销,开发人员将需要考虑通过SAFMedia Store访问其所需存储的替代方法暂时,您可以通过在清单中的application标签内添加以下内容来继续使用所使用的内容:

android:requestLegacyExternalStorage="true"

您可能需要考虑将minSDK更改为19并用于getExternalFilesDir()获取不需要任何权限的路径。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

始终在Android中拒绝FileNotFoundException权限

来自分类Dev

始终在Android中拒绝FileNotFoundException权限

来自分类Dev

Android:打开失败的eacces权限被拒绝

来自分类Dev

Android:打开失败的eacces权限被拒绝

来自分类Dev

打开失败:Android中的EACCES(权限被拒绝)

来自分类Dev

Android IOException:打开失败:EACCES(权限被拒绝)

来自分类Dev

Android上的“打开失败:EACCES(权限被拒绝)”

来自分类Dev

错误:Android打包程序:[...] java.io.FileNotFoundException:...(权限被拒绝)

来自分类Dev

FileNotFoundException(权限被拒绝)

来自分类Dev

java.io.filenotfoundexception在设备上打开失败的eacces(权限被拒绝)

来自分类Dev

java.io.FileNotFoundException:/storage/sdcard/MyApp/questions.txt:打开失败:EACCES(权限被拒绝)

来自分类Dev

FileNotFoundException:/storage/emulated/0/Pictures/pic.jpg:打开失败:EACCES(权限被拒绝)

来自分类Dev

java.io.filenotfoundexception在设备上打开失败的eacces(权限被拒绝)

来自分类Dev

Android java.net.SocketException:socket失败:EACCES(权限被拒绝)

来自分类Dev

Travis CI Android 模拟器中的 EACCES(权限被拒绝)

来自分类Dev

尝试在Android中将文件写入sdcard时发生FileNotFoundException(权限被拒绝)

来自分类Dev

拒绝并在运行时授予权限后,在Android应用上获取FileNotFoundException

来自分类Dev

Android内部缓存目录中的“ java.io.FileNotFoundException:权限被拒绝”

来自分类Dev

无法解码流:java.io.FileNotFoundException:sdcard/name/c.jpg:打开失败:EACCES(权限被拒绝)

来自分类Dev

使用Nextflow和Docker的FileNotFoundException(权限被拒绝)

来自分类Dev

Android打开失败:实现PDF Reader库时EACCES(权限被拒绝)

来自分类Dev

SD卡上的Android Write文件获取错误:拒绝打开失败的eacces权限

来自分类Dev

Android打开失败:尝试读取数据/数据中的文件时,EACCES(权限被拒绝)

来自分类Dev

Android异常“打开失败:EACCES(权限被拒绝)”-不是由于SD卡

来自分类Dev

Android:EACCES权限被拒绝在铃声文件夹中保存文件

来自分类Dev

Android打开失败:在数据/数据/包/文件中写入文件时EACCES(权限被拒绝)

来自分类Dev

适用于Android Studio中OTP应用程序的java.net.SocketException:socketfailed:EACCES(权限被拒绝)

来自分类Dev

Android Runtime权限(权限被拒绝)

来自分类Dev

Android SecurityException:权限被拒绝

Related 相关文章

  1. 1

    始终在Android中拒绝FileNotFoundException权限

  2. 2

    始终在Android中拒绝FileNotFoundException权限

  3. 3

    Android:打开失败的eacces权限被拒绝

  4. 4

    Android:打开失败的eacces权限被拒绝

  5. 5

    打开失败:Android中的EACCES(权限被拒绝)

  6. 6

    Android IOException:打开失败:EACCES(权限被拒绝)

  7. 7

    Android上的“打开失败:EACCES(权限被拒绝)”

  8. 8

    错误:Android打包程序:[...] java.io.FileNotFoundException:...(权限被拒绝)

  9. 9

    FileNotFoundException(权限被拒绝)

  10. 10

    java.io.filenotfoundexception在设备上打开失败的eacces(权限被拒绝)

  11. 11

    java.io.FileNotFoundException:/storage/sdcard/MyApp/questions.txt:打开失败:EACCES(权限被拒绝)

  12. 12

    FileNotFoundException:/storage/emulated/0/Pictures/pic.jpg:打开失败:EACCES(权限被拒绝)

  13. 13

    java.io.filenotfoundexception在设备上打开失败的eacces(权限被拒绝)

  14. 14

    Android java.net.SocketException:socket失败:EACCES(权限被拒绝)

  15. 15

    Travis CI Android 模拟器中的 EACCES(权限被拒绝)

  16. 16

    尝试在Android中将文件写入sdcard时发生FileNotFoundException(权限被拒绝)

  17. 17

    拒绝并在运行时授予权限后,在Android应用上获取FileNotFoundException

  18. 18

    Android内部缓存目录中的“ java.io.FileNotFoundException:权限被拒绝”

  19. 19

    无法解码流:java.io.FileNotFoundException:sdcard/name/c.jpg:打开失败:EACCES(权限被拒绝)

  20. 20

    使用Nextflow和Docker的FileNotFoundException(权限被拒绝)

  21. 21

    Android打开失败:实现PDF Reader库时EACCES(权限被拒绝)

  22. 22

    SD卡上的Android Write文件获取错误:拒绝打开失败的eacces权限

  23. 23

    Android打开失败:尝试读取数据/数据中的文件时,EACCES(权限被拒绝)

  24. 24

    Android异常“打开失败:EACCES(权限被拒绝)”-不是由于SD卡

  25. 25

    Android:EACCES权限被拒绝在铃声文件夹中保存文件

  26. 26

    Android打开失败:在数据/数据/包/文件中写入文件时EACCES(权限被拒绝)

  27. 27

    适用于Android Studio中OTP应用程序的java.net.SocketException:socketfailed:EACCES(权限被拒绝)

  28. 28

    Android Runtime权限(权限被拒绝)

  29. 29

    Android SecurityException:权限被拒绝

热门标签

归档