2012-07-13 79 views
5

我使用以下代碼從相機拍攝照片並獲取照片的路徑。三星Galaxy Nexus(4.0.2)上沒有出現ACTION_IMAGE_CAPTURE的相機意圖

... 
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_IMAGE_CAPTURE); // image capture 
... 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.d(TAG, "onActivityResult:" + resultCode + " request:" + requestCode); 

    switch (requestCode) { 
     case CAMERA_IMAGE_CAPTURE: 
      Uri selectedImageUri = data.getData(); 
      userImagePath = getPath(selectedImageUri); 
     break; 
    } 
} 

它適用於模擬器和不同的設備。但在三星Galaxy Nexus(4.0.2)上它不會啓動相機應用程序。但是它將RESULT_OK返回到onActivityResult,並且我在LogCat中看到沒有例外。 請給我和建議如何解決這個問題。 在此先感謝!

+0

http://stackoverflow.com/questions/7277287/default-camera-activity-not-finishing-upon-ok-按下按鈕/ 14806908#14806908 只需檢查此鏈接..可能會有所幫助.......問題可能是由於文件名或路徑(如果沒有特殊字符(如空格)會更好) – Satish 2013-02-11 06:50:22

回答

7

您缺少EXTRA_OUTPUT,這可能會影響事項。我的Galaxy Nexus可以成功運行this sample project,使用下面的代碼來請求圖片:

Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); 

output = new File(dir, "CameraContentDemo.jpeg"); 
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output)); 

startActivityForResult(i, CONTENT_REQUEST); 
+1

你好,不幸的是,同樣的例子不適合我。在我的Samsung Galaxy S1上,在確認屏幕上單擊確定後,該意圖不會回到我的活動中。有什麼我不知道的技巧嗎? – 2012-08-09 22:28:04

+0

@TomBurger:你應該用'onActivityResult()'調用。如果沒有,那可能是三星的一個bug。 – CommonsWare 2012-08-09 22:33:59

+1

不,單擊確定後,它會將我帶回相機應用程序。它只有在點擊取消後纔會回到我的活動。順便說一句,同樣的問題,例如在這裏:http://stackoverflow.com/questions/8221879/how-to-go-back-from-calling-intent – 2012-08-09 22:44:37

相關問題