问题描述
众所周知,5 月 5 日是使用适用于 Android 11 的 Scoped Storage 的截止日期。以下是这种情况: 我有一个应用程序,用户在注册过程中上传图像,我正在使用此方法从图库中选择图像
Intent chooseImageIntent = new Intent();
chooseImageIntent.setType("image/*");
chooseImageIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(chooseImageIntent,"Select image"),requestCode);
然后
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
switch (requestCode) {
case PICK_IMAGE_ID:
// If image is selected successfully,set the image URI and bitmap.
Uri imageUri = data.getData();
mBitmap1 = ImageHelper.loadSizeLimitedBitmapFromUri(
imageUri,getContentResolver());
if (mBitmap1 != null) {
ivItem1.setimageBitmap(mBitmap1);
uploadFile(mBitmap1,PICK_IMAGE_ID);
} else {
Toast.makeText(this,"image not loaded",Toast.LENGTH_SHORT).show();
}
break;
default:
super.onActivityResult(requestCode,resultCode,data);
break;
}
}
为了符合 Android 11 更新或存储政策更新,我应该进行哪些更改?
解决方法
它在 Google 的支持网站中提到,我引用了
Google Play 限制使用高风险或敏感权限, 包括称为所有文件访问的特殊应用程序访问。这只是 适用于面向 Android 11(API 级别 30)并声明的应用 MANAGE_EXTERNAL_STORAGE 权限,这是在 Android 11 中添加的。 此外,此政策不影响使用 READ_EXTERNAL_STORAGE 权限。
因此,如果您在 Android 11 上请求 MANAGE_EXTERNAL_STORAGE 权限,那么如果您的应用不需要它,则需要将其删除。如果您需要该权限,则需要说明使用它的原因。
因为您只要求 READ_EXTERNAL_STORAGE 权限。你不必做任何事情。除非您请求 MANAGE_EXTERNAL_STORAGE 许可
,否则该政策不会影响您的应用可以在此处找到更多详细信息: Preview: Use of All files access (MANAGE_EXTERNAL_STORAGE) permission