我对android
外部storage
感到困惑:它是世界可读的,但是同时可以在其中保存应用程序专用文件吗?那不是冲突吗?
此页面介绍了Android上可用的不同数据存储选项: 1-内部文件存储:将应用程序专用文件存储在设备文件系统上。 2-外部文件存储:将文件存储在共享的外部文件系统上。这通常用于共享用户文件,例如照片。 3-共享首选项:将私有原始数据存储在键值对中。 4-数据库:将结构化数据存储在专用数据库中。
除了外部存储上的某些类型的文件外,所有这些选项均适用于应用程序专用数据-其他应用程序自然无法访问该数据。
最后一行表明,所有这些选项上保存的大多数文件都是应用程序专用的,但外部存储上的某些类型的文件除外-我的理解是例外,是指保存在通过Environment.getExternalStoragePublicDirectory()
访问的目录上的文件。
但是文档再次声明外部存储上共享的所有文件都是世界可读的:
保存到外部存储的文件是世界可读的文件,当用户启用USB大容量存储在计算机上传输文件时,可以对其进行修改。
然后再次提到可以将应用程序专用文件保存到外部存储中:
您还可以将文件保存到特定于应用程序的目录中的外部存储中,当用户卸载您的应用程序时,系统会将其删除。如果您需要更多空间,这可能是内部存储的有用替代方法,但是不能保证可以访问此处的文件,因为用户可能会删除存储SD卡。而且文件仍然是世界可读的;它们只是保存到不与其他应用共享的位置。
最后一段对内容进行了一些解释,但是如果有人可以详细说明,并且还解释了如何将世界范围内可读的文件设为私有?
答案 0 :(得分:0)
保存到外部存储的文件是世界可读的文件,当用户启用USB大容量存储在计算机上传输文件时,可以对其进行修改。
例如:这里有一个XYZ文件夹,任何人,任何应用程序都可以访问它...
您还可以将文件保存到应用特定目录中的外部存储中,当用户卸载您的应用时,系统会删除该文件。
此处,您的应用程序特定文件可能存储在应用程序特定目录中,例如 ExternalCacheDirs (Android / data / com.package.name)
其他应用程序无法访问这些文件...