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,获取更多干货!

猜你喜欢

转载自blog.csdn.net/chzphoenix/article/details/123334939