首页 > 解决方案 > 在更改意图之前提示相机许可

问题描述

我想在更改活动之前提示用户提供相机权限。如果用户允许,它将转到 QR 码扫描仪,如果用户拒绝,它将返回同一屏幕。

这是我目前拥有的

 class ButtonGoToScannerClickListener implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                ActivityCompat.requestPermissions(BaseMapActivity.this,
                        new String[]{Manifest.permission.CAMERA},
                        1);
                Intent intent = new Intent(BaseMapActivity.this, BarCodeReaderActivity.class);
                startActivityForResult(intent, ITEM_LOCATION_REQUEST);
            }
        }
    }

标签: javaandroid

解决方案


这是您可以做的,首先请求许可

 ActivityCompat.requestPermissions(MainActivity.this,
                new String[]{Manifest.permission.CAMERA},
                1);

现在检查是否允许权限

@Override
public void onRequestPermissionsResult(int requestCode,
                                   String permissions[], int[] grantResults) {
switch (requestCode) {
    case 1: {

      // If request is cancelled, the result arrays are empty.
      if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Intent intent = new Intent(BaseMapActivity.this, BarCodeReaderActivity.class);
            startActivityForResult(intent, ITEM_LOCATION_REQUEST);
            // permission was granted, yay! Do the
            // camera-related task you need to do.          
        } else {

            // permission denied, boo! Disable the
            // functionality that depends on this permission.
            Toast.makeText(MainActivity.this, "Permission denied for camera", Toast.LENGTH_SHORT).show();
        }
        return;
    }

    // other 'case' lines to check for other
    // permissions this app might request
 }
}

希望这可以帮助


推荐阅读