Android 11 存储策略是否需要任何更改?

问题描述

众所周知,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