萌萌の初音
萌萌の初音
发布于 2022-04-26 / 564 阅读
0

Android10外部储存权限补充

前情提要:在Android 10以上文件读取受限的解决方案文章中,通过Uri等形式进行文件读写,但对使用Environment类公共目录的读写不是很友好,并且第三方需要对我们的文件读取造成一定的麻烦。

方案一:Environment实现

在AndroidManifest.xml中加入

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

在调用Environment前进行权限申请

requestPermission(Manifest.permission.MANAGE_EXTERNAL_STORAGE)

之后就可以使用Environment的相关文件功能了,但在使用以上功能前需要在AndroidManifest.xml中配置FileProvider(android api 24),才能使用Environment自带的相关路径,不然也会报错没有权限。

方案二:通过context、activity、fragment自带方法实现

getExternalCacheDir()
getExternalFilesDir(Environment.DIRECTORY_DCIM)
getExternalMediaDirs()

getExternalCacheDir():/sdcard/Android/data/你的包名/cache
getExternalFilesDir(Environment.DIRECTORY_DCIM):/sdcard/Android/data/你的包名/files/根据你Environment填入的类型
getExternalMediaDirs():/sdcard/Android/media/你的包名