本人小白,今天在尝试使用android studio将文件存储在手机中的时候,报出了如下错误
io.IOException: Permission denied.
以及
io.FileNotFoundException: /storage/emulated/0/******: open failed: ENOENT (No such file or directory)
然而,在AndroidManifest里面已经有以下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
接下来我做了如下尝试
(1)动态申请权限
具体可以参考
https://www.jianshu.com/p/c0b4b2db9b0f
操作后,应用软件弹出是否要给这个程序存储权限的申请,但是依旧不能够导入文件。
(2)在AndroidManifest里此位置处加上这句
<application
android:allowBackup="true"
//下面这句
android:requestLegacyExternalStorage="true"
...
</application>
就可以成功保存了
这是因为如果以 Android 10或更高版本,需要在该项目清单文件中将 requestLegacyExternalStorage 的值设为 true,而我的手机版本刚好是Android 10。