首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何修改摄像头权限?

如何修改摄像头权限?
EN

Stack Overflow用户
提问于 2019-05-21 14:44:07
回答 1查看 133关注 0票数 0

我在这里使用了所有这些活动,但现在它仍然不起作用。如果有其他解决方案或解决了这个问题与此代码请帮助我,有人。我正在尝试从相机捕捉图像,并从画廊获取图像并展示它们。但不幸的是,在manifest中一直都存在同样的权限拒绝问题。

代码语言:javascript
复制
private static final int CAMERA_REQUEST = 101;
private static final int GALLERY_REQUEST = 102;

Uri imageUri;
final static String ARRAY_BYTE = "ARRAY_BYTE";

//on create

    imagecameraButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openCamera();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                requestPermission();
            }
        }

    });

    imagegalaryButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openGallery();
        }
    });

//permission


public void requestPermission() {
    if (ContextCompat.checkSelfPermission((ProductAddStep3Activity) context,
            Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale((ProductAddStep3Activity) this.context,
                Manifest.permission.CAMERA)) {
            ActivityCompat.requestPermissions((ProductAddStep3Activity) this.context,
                    new String[]{Manifest.permission.CAMERA}, Constants.PERMISSION_REQUEST_CAMERA);
        } else {
            //This will request for permisson
            ActivityCompat.requestPermissions((ProductAddStep3Activity) this.context,
                    new String[]{Manifest.permission.CAMERA}, Constants.PERMISSION_REQUEST_CAMERA);
        }
    }
}
//Callback for requestPermissions
@Override
public void onRequestPermissionsResult(int requestCode, String[] permission, int[] grantResults) {

    switch (requestCode) {
        case Constants.PERMISSION_REQUEST_CAMERA: {
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Log.i("open camera permission has been granted");
                Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(cameraIntent, CAMERA_REQUEST);
            } else {
                Log.i("open camera permission has been denied");
                //Dont call camera intent app will crash
            }
            return;
        }
    }
}

private void openGallery() {
    Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    startActivityForResult(gallery, GALLERY_REQUEST);

}

private void openCamera() {

        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_REQUEST);
}

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

    if (resultCode == RESULT_CANCELED) return;

    if (requestCode == CAMERA_REQUEST) {
        Bitmap bitmap = (Bitmap) data.getExtras().get("data");
        imagephotoButton.setImageBitmap(bitmap);
    } else if (requestCode == GALLERY_REQUEST) {
        imageUri = data.getData();
        imagephotoButton.setImageURI(imageUri);

    }
}

}
EN

回答 1

Stack Overflow用户

发布于 2019-05-21 16:07:06

尝试在openCamera函数中设置权限。另外,请改用WRITE_EXTERNAL_STORAGE

代码语言:javascript
复制
void openCamera(){
        if (ContextCompat.checkSelfPermission(
                getApplication(),
                Manifest.permission.WRITE_EXTERNAL_STORAGE
                    ) == PackageManager.PERMISSION_GRANTED
                ) {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, CAMERA_REQUEST);
        } else {
            ActivityCompat.requestPermissions((ProductAddStep3Activity) this.context,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, Constants.PERMISSION_REQUEST_CAMERA);

        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56232513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档