权限不适用于android studio中的android 10

问题描述

当前,我正在尝试构建一个需要3个权限的应用:阅读,写作和摄像头。 我正在使用以下代码

主要活动中:

String[] permissions = new String[]{
        Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE,};
private int PERMISSION_REQUEST_CODE = 10

public boolean hasPermissions(Context context,String[] permissions) {
    if (context != null && permissions != null) {
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context,permission) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
    }
    return true;
}

onCreate()方法中,我正在使用以下内容

    if (!hasPermissions(this,permissions)) {
        ActivityCompat.requestPermissions(this,permissions,PERMISSION_REQUEST_CODE);
    }

下面是 onRequestPermissionResult()方法代码

@SuppressLint("MissingPermission")
@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode,grantResults);
    if (requestCode == PERMISSION_REQUEST_CODE) {
        if (!hasPermissions(this,permissions)) {
            finish();
        } else {
            view_camera.bindToLifecycle(lifecycleOwner);
            view_camera.setPinchToZoomEnabled(true);
            view_camera.setFocusable(true);
        }
    }
}

在android 9之前一切正常,但是在android 10中,它无法从存储中读取数据,也无法存储数据。

有人知道这背后的原因吗?

我也已将权限添加到清单文件中。

解决方法

在清单 android:requestLegacyExternalStorage="true"下添加<application,例如

<application
    android:requestLegacyExternalStorage="true"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">