android studio 中的 android 10 权限无效

permissions not working for android 10 in android studio

目前,我正在尝试构建一个需要 3 个权限的应用程序:读取、写入和摄像头。 我为此使用了以下代码。

主要Activity:

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, permissions, 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,它无法从存储中读取数据,也无法存储数据。

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

我也给 Manifest 文件添加了权限。

<application 下的清单中添加 android:requestLegacyExternalStorage="true"

<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">