2013-01-12 29 views
0

我有這些代碼。照相機打開後,照片被拍攝,但當我點擊「確定」按鈕時,什麼都沒有發生。回到之前的活動的唯一方法是點擊「x」按鈕,這對我沒有用處:)。問題是什麼? (onActivityResult方法還沒有完成。)(我用這個算法Android.provider.MediaStore.ACTION_IMAGE_CAPTURE意圖。有一切就OK了。我不知道爲什麼我現在有問題。)我不能使用ActivityForResult返回以前的活動

public void onClick(View v) { 

      Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE"); 
      db.open(); 
      Cursor cr = db.getAllRecords(); 
      int count = cr.getCount(); 

      db.close(); 

      File cameraFolder; 

      if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
       cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(),"TSFC"); 
      else 
       cameraFolder= ShowMessagesPage.this.getCacheDir(); 
      if(!cameraFolder.exists()) 
       cameraFolder.mkdirs(); 

      File photo = new File(Environment.getExternalStorageDirectory(), "TSFC/" + (count + 1) + ".jpg"); 
      getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 

      initialURI = Uri.fromFile(photo); 

      startActivityForResult(getCameraImage, CAMERA_RESULT); 
     }});} 

protected void onActivityResult(int requestCode, int resultCode, 
      Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 

     if (resultCode == RESULT_OK) { 
      Bundle extras = intent.getExtras(); 
      photo = (Uri) extras.get("data"); 


     } 
     } 
+0

好吧,我想你必須刪除這條代碼行,'getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photo));'讓我知道發生了什麼,然後我會告訴你最新的問題。 – user370305

+0

使用此鏈接獲取更多詳細信息http://mobile.tutsplus.com/tutorials/android/capture-and-crop-an-image-with-the-device-camera/ –

+0

有一個致命的例外:失敗的結果ResultInfo –

回答

0

使用onActivityResult(..)方法取回結果就像這樣。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == CAMERA_RESULT) { 
     // Make sure the request was successful 

      if (resultCode == RESULT_OK) { 
      Bundle extras = intent.getExtras(); 
      photo = (Uri) extras.get("data"); 

     } 
    } 
} 
+0

沒有變化。點擊「確定」按鈕後仍然不會回來。 –

1

確定,它衆所周知的Bug,

只需添加這行代碼,photo.createNewFile();

喜歡的東西,

File photo = new File(Environment.getExternalStorageDirectory(), "TSFC/" + (count + 1) + ".jpg"); 
photo.createNewFile(); 
getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 

而且不要忘了,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

和l等我知道你的進步。

+1

我有一個鏈接爲你http://stackoverflow.com/questions/1910608/android-action-image-capture-intent – user370305

+0

沒辦法......仍然沒有工作......我會看看你發佈的鏈接。謝謝=) –

相關問題