2011-06-12 60 views
1

我試圖用相機使用意圖與onActivityResult拍攝一張照片,但是每次我拍照時相機都會鎖定並永不返回。爲什麼會發生這種情況?這是我使用的代碼:Android相機意圖不會返回/鎖定

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永遠不會觸發。

感謝您的輸入。

回答

1

我閱讀了一大堆教程,每個人都做得不一樣。官方Android文檔使用Camera-類(在鏈接頁面上的分步教程)。

我發現this other tutorial(它與您一樣使用MediaStore -class),但爲Intent上的Output-File增加了額外的值。

你可能想檢查這兩個教程,看看是否適合你。

+0

感謝您的回答盧卡斯。事情是,這是隨機發生的,有時它會工作,有時不會。當它鎖定時,我必須強制停止相機,如果我再試一次,它會抱怨相機服務不可用。我會研究你發佈的鏈接,看看它是否能解決問題。 – Ryan 2011-06-12 21:24:47

+0

也許這是你的設備/模擬器的問題?你嘗試過不同的設備嗎? – 2011-06-12 21:29:53

+0

很確定它是仿真器,有時我必須在它工作之前重新啓動它2-3次。無論如何,感謝幫助盧卡斯。 – Ryan 2011-06-12 23:49:48