我正在运行 Android 9 的设备上测试我的应用程序。根据我的 Gradle 文件,该应用程序现在以 Android 11 为目标:
android {
compileSdkVersion 30
buildToolsVersion '30.0.3'
defaultConfig {
applicationId "com.xxx.yyy.zzz"
minSdkVersion 15
targetSdkVersion 30
versionCode 15455
versionName "4.55"
multiDexEnabled true
}
在运行应用程序之前,我从测试设备中删除了以前的版本。
当使用以下代码运行面向 Android 11 的应用时:
try {
File oldDir = new File(Environment.getExternalStorageDirectory(), "MyFolder");
File afile = new File(oldDir, "myFile.boo");
afile.createNewFile();
}
catch(IOException e){}
该应用程序创建可访问和可删除的 MyFolder/myFile.boo。
开发者文档明确指出:https ://developer.android.com/about/versions/11/privacy
“面向 Android 11 或更高版本的应用程序始终受制于范围存储行为。” 文档没有提及特定手机的 android 版本的任何例外。
当我的应用声明它将使用范围存储时,为什么我能够在新的范围存储限制下创建和访问此文件?