次のようにカメラ インテントを呼び出します。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
Uri.fromFile(new File(imageDirectory.toString() + "/" + id + ".jpg")));
startActivityForResult(intent, CAMERA_INTENT);
結果を次のように処理します。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// Log.v(TAG, ">>> onActivityResult()");
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case CAMERA_INTENT:
handleCameraIntent(resultCode);
break;
case IMPORT_PICTURE_INTENT:
handleImportIntent(resultCode, data);
break;
default:
break;
}
}
これは、99% の確率で問題なく動作します。ただし、HTC Evo 3d でテストを行ったところ、ポートレートがランドスケープ モードで撮影された場合、onActivityResult メソッドは呼び出されませんでした。ただし、縦向きモードのときに onActivityResult が呼び出されました。
他の誰かがこれに遭遇しましたか?簡単な解決策はありますか?
更新: onActivityResult が呼び出されているようですが、onResume の後です。ドキュメントによると、これは不可能です....