我正在尝试使用onActivityResult
的意图从相机拍摄照片,但每次拍照时相机都锁定并且永不返回。这可能发生的原因是什么?这是我正在使用的代码:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.v(TAG,"Camera callback: "+Integer.toString(resultCode));
if (requestCode == CAMERA_PIC_REQUEST) {
try{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
Log.v("Picture view",data.getData().toString());
ImageView image = new ImageView(this);
image.setImageBitmap(thumbnail);
setContentView(image);
}
catch(Exception e){
Log.e(TAG, "something happened");
e.printStackTrace();
}
}
}
这是拍照后的LogCat输出:
06-12 19:46:03.881: VERBOSE/camera(443): Start autofocus.
06-12 19:46:04.521: VERBOSE/camera(443): doSnap: mFocusState=1
06-12 19:46:04.721: VERBOSE/camera(443): mAutoFocusTime = 790ms
然后它就会锁定而onActivityResult
永远不会触发。
感谢您的投入。
答案 0 :(得分:1)
我阅读了一堆教程,每个人都做了不同的事情。官方Android文档使用Camera - 类(链接页面上的分步教程)。
我找到了this other tutorial(使用MediaStore
- 类,就像你一样),但为意图上的输出文件添加了额外内容。
您可能想要检查这两个教程,看看是否适合您。