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()区别

android 各种存储目录使用总结之Context#getExternalFilesDir

PMP和PRINCE2到底有什么区别?哪个含金量更高?