Android 11 |范围的存储强制
根据文件 使用作用域存储,除非您的应用需要访问存储在应用特定目录和MediaStore API可以访问的目录之外的文件。如果将特定于应用程序的文件存储在外部存储上,则可以通过将这些文件放置在外部存储上特定于应用程序的目录中,使采用作用域存储变得更容易。这样,在启用范围存储时,应用程序可以保持对这些文件的访问 在本例中,我使用以下命令创建文本文件:Android 11 |范围的存储强制,android,android-database,android-storage,scoped-storage,Android,Android Database,Android Storage,Scoped Storage,根据文件 使用作用域存储,除非您的应用需要访问存储在应用特定目录和MediaStore API可以访问的目录之外的文件。如果将特定于应用程序的文件存储在外部存储上,则可以通过将这些文件放置在外部存储上特定于应用程序的目录中,使采用作用域存储变得更容易。这样,在启用范围存储时,应用程序可以保持对这些文件的访问 在本例中,我使用以下命令创建文本文件: File root = new File(this.getExternalFilesDir(null), "sample"); if (!ro
File root = new File(this.getExternalFilesDir(null), "sample");
if (!root.exists()) {
root.mkdirs();
}
File file = new File(root, "sample.txt");
上面是在下面的位置创建文件(但没有可用的SD卡):
/storage/emulated/0/Android/data//files/sample.txt
我正在对它执行写操作
以下是查询:
我认为你的假设是对的。我不记得在访问外部应用程序文件时遇到过安全问题。如果要从作用域存储中获取文件,请选择“是”。如果您实际使用各种扩展名被认为是“应用程序/八位字节流”的文件,那么您将度过一段糟糕的时光,甚至更糟。阅读本文,我认为您的假设是正确的。我不记得在访问外部应用程序文件时遇到过安全问题。如果要从作用域存储中获取文件,请选择“是”。如果您实际处理扩展名被识别为“application/octet stream”的各种文件,那么您的情况会很糟糕,甚至更糟
/storage/emulated/0/Android/data/<package-name>/files/sample.txt