getExternalFilesDir到底是什么
Posted BennuCTech
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了getExternalFilesDir到底是什么相关的知识,希望对你有一定的参考价值。
getExternalFilesDir对应的目录是/sdcard/android/data/包名/files/…
可以看到它主要是用来存放应用私有的一些文件。这个目录有几个特性:
自动删除
当应用卸载的时候,这些文件会被删除。当然前提是sd卡可用。
其他应用访问
这些文件可以被其他应用访问,但是前提是其他应用有外部存储权限。
但是注意在Android 11以后即使有存储权限,其他应用也不允许访问这些文件了。
存储权限
在Android api 19(即4.4)之后,本应用即使没有存储权限,也可以访问这些文件,虽然它们是在sd卡上。官方文档如下:
Starting in @link android.os.Build.VERSION_CODES#KITKAT, no permissions
are required to read or write to the returned path; it’s always
accessible to the calling app. This only applies to paths generated for
package name of the calling application. To access paths belonging to
other packages,
鉴于目前大部分App的minSdkVersion都是19或以上,所以当使用这个目录的时候,是没必要再请求存储权限的。
关注公众号:BennuCTech,获取更多干货!
以上是关于getExternalFilesDir到底是什么的主要内容,如果未能解决你的问题,请参考以下文章
为啥 getExternalFilesDirs 根据使用的上下文返回不同的结果?
getExternalFilesDir 和 getExternalStorageDirectory() 之间的区别
在 API 23 及更高版本中插入 SD 卡时,getExternalFilesDirs() 未在 ApplicationContext 中更新
Android存储及getCacheDir()getFilesDir()getExternalFilesDir()getExternalCacheDir()区别