2013-10-17 70 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 ... –