2012-11-08 82 views
0

我想從相機中獲取圖像。它工作正常。我可以拍照並在圖像視圖中顯示。其實,我想在拍完後將這張照片發送到我的服務器。爲此,我嘗試在onActivityResult中拉取圖像。但是,當我檢查意向數據時,它總是返回null。儘管如此,應用程序運行良好並顯示圖像。爲什麼我對Intent數據變爲空?你可以幫我嗎?Android獲取空圖像數據

下面是代碼:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (requestCode) { 
     case ACTION_TAKE_PHOTO_B: { 
      if (resultCode == RESULT_OK) { 
         Log.e("TAG","data: "+data); 
        display_Photo();    


      //Process the image to send but, data is null 
      } 
      break; 
     } 

    } 
    } 

登錄貓:

數據:空

回答

2

在您所使用的代碼有一些調用兩個按鈕onclick處理: dispatchTakePictureIntent(int actionCode)

一個按鈕將其與枚舉ACTION_TAKE_PHOTO_B一起呼叫其他呼叫坐在枚舉ACTION_TAKE_PHOTO_S

如果您傳遞ACTION_TAKE_PHOTO_B,然後在返回的意圖data預期的結果是null

這是爲什麼dispatchTakePictureIntent調用的意圖MediaStore.ACTION_IMAGE_CAPTURE之前,它設置在通過基於該actionCode的額外意圖參數原因:

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); 

按照documentation for ACTION_IMAGE_CAPTURE

呼叫者可能傳遞額外的EXTRA_OUTPUT來控制將要寫入的圖像 的位置。如果EXTRA_OUTPUT不存在,則在額外字段中將返回一個尺寸較小的圖像作爲位圖對象。

所以,因爲EXTRA_OUTPUT參數被設定,圖像被寫入到磁盤而不是被返回的意圖數據。要獲取文件位置,您可以檢查在啓動意圖之前寫入的mCurrentPhotoPath

+0

捕獲的圖像路徑如何!=先前拍攝的圖像路徑? –