Android11 更新了新的存储权限分区存储,其中Android10 时候也对存储权限做了更新android:requestLegacyExternalStorage="true"
当我们升级到Android11时候,首先在清单文件中的application声明:
android:requestLegacyExternalStorage="true"
android:preserveLegacyExternalStorage="true"//升级保留旧版存储权限
然后在声明权限:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>//可读取所有包名
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>//设备文件广泛访问,核心用例app
然后在Activity中进行所有文件存储访问权限:
//Android11存储
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivity(intent);
}