2013-10-17 68 views
0

我想使用相机意图,使用下面的代码。安卓相机意图与积极的按钮不起作用

public boolean onLongClick(View v) { 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); 
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
    return false; 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.i("user prof", "resultcode: "+resultCode); 
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      Toast.makeText(this, "Picture was taken", Toast.LENGTH_SHORT).show(); 
     } else if (resultCode == RESULT_CANCELED) { 
      Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show(); 
     } else { 
      Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

相机的工作原理,它会打开,让我拍照,但肯定按钮不能正常工作,不会关闭的意图,并在logcat中或吐司工具不显示。问题在于,当按下相机意图中的正面按钮时,永远不会调用“onActivityResult”方法,另一方面,按负面按钮时正确调用该方法。

我宣布在清单

<uses-feature android:name="android.hardware.camera" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-feature android:name="android.hardware.camera.autofocus" /> 

我怎样才能解决这个问题,这些权限?你为什么要使用intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);. This code is for video.

使用下面的代码这些代码来捕捉图像

感谢

回答

0

我找到了解决办法:

出现这个问题,因为我们使用的imageUri可能是不可读的上,我正在开发的设备,它并没有给我任何错误logcat,但是如果我没有设置extra_output,那就完美了。

0

Intent intent = new Intent(
       android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri); 
     intent.putExtra("return-data", true); 
     startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 
+0

是的,EXTRA_VIDEO_QUALITY标志是一个错误。 我试过你的解决方案,但它不适合我。 –

+0

你使用android.provider.MediaStore.ACTION_IMAGE_CAPTURE代替MediaStore.ACTION_IMAGE_CAPTURE – Ameer

+0

yes,android.provider.MediaStore.ACTION_IMAGE_CAPTURE ... –