Ограничение наложения экрана для таких разрешений, как камера в Samsung Galaxy S5 - PullRequest
0 голосов
/ 25 сентября 2019

Я не могу открыть камеру в Samsung Galaxy S5, но могу сделать то же самое в других устройствах.

Я получаю ошибку:

java.lang.SecurityException: Отказ в разрешении: начало намерения) с аннулированным разрешением android.permission.CAMERA

Мой код:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (!Settings.canDrawOverlays(mContext)) {
                    // You don't have permission
                    checkPermission();
                } else {

                if (requestCode == REQUEST_CAMERA) {
                    onCaptureImageResult(data);
                }
            }}
            }
        }
    }


private void checkPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!Settings.canDrawOverlays(mContext)) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + mContext.getPackageName()));
            startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
        }
    }
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK) {
        if (requestCode == ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (!Settings.canDrawOverlays(mContext)) {
                    // You don't have permission
                    checkPermission();
                } else {

                if (requestCode == REQUEST_CAMERA) {
                    onCaptureImageResult(data);
                }
            }}
            }
        }
    }


private void checkPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (!Settings.canDrawOverlays(mContext)) {
            Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
                    Uri.parse("package:" + mContext.getPackageName()));
            startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
        }
    }
}

Чего мне не хватает?

...