5

私のアプリでイメージを取得するためにデフォルトのカメラインテントを使用しています。問題はカメラがonActivityResult()にnullを返すことです。 ResultCodeRequestCodeが期待通りに戻っています。Android Inbuild(ActionImageCapture)インテントがnullのインテントを返す。結果を{null}に返すことはできません

私の意図呼び出しは次のとおりです。

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1224; 
.... 
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); 

OnactivityResultは次のとおりです。

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
if (resultCode == RESULT_OK) { 
    //use imageUri here to access the image 
    Uri imageuri = data.getData(); // here is getting crash 
    imageView.setImageFromUri(imageUri); 
} 
} 
} 

void setImageFromUri(Uri imgUri){ 
... TODO assign image from uri 
} 

私はログを置くとして、私はresultCodeがとにResponseCodeが

私がやっている
resultCode = -1 
requestCode = 1224 

nullではないです間違い?

しかし、私は

を指定して撮影した画像は、パス(imageUri)に格納されたカメラを使用して画像を取得する他の方法はあります。

答えて

10

あなたはonActivityResultの前にimageUriを知っているようです。これは正解ではありませんが正常に動作します。

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

// URIが唯一あなたがそうちょうどあなたが知られているURIを使用

Uri imageuri = data.getData(); 

を使用していない

を使用するつもりだ。このイメージ。

if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { 
    if (resultCode == RESULT_OK) { 
//use imageUri here to access the image 
imageView.setImageFromUri(imageUri); // imageUri should be global in the activity 
    } 
} 
+1

おかげShadowtechこれは私がやったことです...それは働いています:

あなたのコードは次のようになります。 :)なぜインテントがnullであるのか分かりますか? –

+0

intent.putExtra(MediaStore.EXTRA_OUTPUT、imageUri)を削除した場合。それからインテントでイメージを取得します。インテントはnullになり、イメージはURIに保存されます... –

関連する問題