安卓10.0版本文件读写,其他外部文件访问
(2023-06-20 19:37:08)分类: androidios |
存储读取权限,并且App动态获得了权限,在通过绝对路径打开文件时,也有可能出现 open failed: EACCES
(Permission denied) 权限不足的错误。
这里官方文档的解释是:以 Android 10(API 级别
29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储)。此类应用只能看到本应用专有的目录(通过
Context.getExternalFilesDir() 访问)以及特定类型的媒体。
这种分区存储限制了应用通过绝对路径去打开文件,不能通过File file = new
File(filePath)去打开,这类路径不具有直接内核访问权限。要访问此类文件,应用必须使用 MediaStore,并调用
openFile() 等方法。
如果不得不从绝对路径中打开文件,可以通过在 Manifest 的 application 标签里面加上
作者:嗯哼_e683
链接:https://www.jianshu.com/p/0c8942ea9955
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。