记录Android已经加入了读写权限,可还是出现Permission denied的

今天在 写一个demo的时候,需要读取文件并写入文件,但是,出现了一个比较奇怪的问题,那就是,我已经赋予了内存的读写权限,可还是出现IOException:....... Permission denied的错误,可是权限已经给了啊,这让很多跟我遇到同样问题的小伙伴们很苦恼,今天,我对于这个问题做一个统一总结。

首先,我们考虑到,当出现这个错误的时候,我们应该检查什么地方:

首当其冲,必然是我们的AndroidManifest.xml文件,因为这个文件,是赋予安卓权限的地方,一般大部分权限,在这里直接进行声明就好(这里有个例外,那就是一些敏感权限会需要动态获取,比如相机权限,录音权限,内存的读写权限等等)

记录Android已经加入了读写权限,可还是出现Permission denied的

这里是我进行权限申请的地方,小伙伴们也可以看到,我这里的确权限已经给了,那么,接下来就是检查动态权限部分,

记录Android已经加入了读写权限,可还是出现Permission denied的

由此可见,动态权限我也赋予了,接下来,我们就可以分析,按道理讲,我们此时可以直接使用内存的读写了,然并否

记录Android已经加入了读写权限,可还是出现Permission denied的

还是被这个问题恐怖支配着,于是我查阅了很多的博客,发现,在安卓10以上,需要引入

android:requestLegacyExternalStorage="true"

这段代码是什么意思呢?从单词字面意思来看,就是申请内存权限的外部存储,那么有的小伙伴就问了,我也没写这个,也没出现这样的错误啊,请参考下面的这个大神的文章,总结的很到位,对安卓系统的建议存储总结了,并根据安卓版本进行合理化建议

参考文章:https://www.jianshu.com/p/555ff52aafed

 

 

 

上一篇:mysql5.7中SELECT command denied to user


下一篇:mysql安装————install/remove of the Service Denied