Я хочу, чтобы получить ориентацию устройства, который теоретически должен работать, используя это:Android - получить ориентацию устройства после съемки фотографии
getActivity().getResources().getConfiguration().orientation;
Однако я заметил, что иногда, после того, как я назвал камеру с помощью этого кода:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFile(1); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
intent.putExtra(GlobalDefines.IMAGE_NR, 1);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE_1);
и после того, как я принял образ, когда я пытаюсь получить ориентацию устройства в onActivityResult (который вызывается после того, как снимок сделан) ориентация устройства указывается режим «пейзаж», хотя я сфотографировал в портретный режим и устройство удерживается в портретном режиме.
Странная вещь в том, что это происходит только около 3 из 10 раз. Похоже, что при съемке ориентация устройства внутренне изменяется на «ландшафтный режим» (даже если изображение выполняется в портретном режиме), а после съемки изображения требуется некоторое время, пока устройство не осознает, что оно находится в портрете Режим.
Что я могу сделать?
Лучше использовать ориентацию изображения, так как некоторые устройства + программы камеры выполняют странные изменения ориентации. –
Да, я заметил, вот почему я хотел знать ориентацию устройства (потребуется больше времени, чтобы объяснить, почему именно), главная проблема в том, что мои exif-изображения-данные также кажутся странными ... – deimos1988
Некоторые устройства не пишите данные EXIF тоже. Вы должны проверить ориентацию из «MediaStore.Images.ImageColumns.ORIENTATION». В любом случае, я всегда проверяю все ориентации в каскаде: MediaStore, EXIF, устройство. –