Android で Camera インテントを使用すると問題が発生します。写真を撮り、後でその写真を使用できるようにしたい (URI を取得する)。コードは次のとおりです。
newPicBut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
PhotoChoiceActivity.this.launchCameraIntent();
}
});
public void launchCameraIntent()
{
//create camera intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//set fileUri
MediaManager manager = new MediaManager();
manager.setPictureName(currentItemToAdd.toString());
intent.putExtra(MediaStore.EXTRA_OUTPUT, manager.getOutputMediaFileUri());
startActivityForResult(intent, 100);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if(requestCode == 100){
if(resultCode == RESULT_OK){
Toast.makeText(getApplicationContext(), "Image saved to: " + data.getData(), Toast.LENGTH_LONG).show();
}
}
}
したがって、基本的にボタンは launchCameraIntent() メソッドを呼び出します。MediaManager がファイルを作成し、intent.putExtra でファイル URI を使用して、ファイルを保存する場所を示します。Camera インテントが呼び出されますが、ここに問題があります。 onActivityResult() は、カメラ インテントをキャンセルしたときにのみトリガーされます。そのため、撮影した写真を受け入れても、まったくトリガーされません。
あなたが助けてくれることを願っています!