相机错误:无法连接相机

时间:2016-10-09 15:33:28

标签: android camera android-camera android-camera-intent

我想使用设备的内置相机功能。阅读文档,这是我正在使用的方法

private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}

在清单中我添加了用法:

<uses-feature android:name="android.hardware.camera"
              android:required="true" />

但是,当我调用该方法时,会出现错误对话框。那是为什么?

2 个答案:

答案 0 :(得分:2)

使用具有目标API 23或更高版本的ACTION_IMAGE_CAPTURE意图的相机需要相机权限。您必须在运行时请求此权限。

Here您可以找到有关此主题的视频教程。

答案 1 :(得分:1)

如果要在按钮上单击打开相机,请使用以下代码。

在onCreate()方法中初始化按钮和图像视图。

photoButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
            startActivityForResult(cameraIntent, CAMERA_REQUEST); 
        }
    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {  
        Bitmap photo = (Bitmap) data.getExtras().get("data"); 
        if(photo!=null)
            imageView.setImageBitmap(photo);
    }  
}