我想使用设备的内置相机功能。阅读文档,这是我正在使用的方法
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" />
但是,当我调用该方法时,会出现错误对话框。那是为什么?
答案 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);
}
}