Мы называем камеру намерением так:
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. Согласно документации это невозможно ....