Изображения, сделанные с помощью ACTION_IMAGE_CAPTURE, всегда возвращают 1 для ExifInterface.TAG_ORIENTATION на некоторых устройствах Gingerbread

У меня была проблема с ориентацией при работе с действием ACTION_IMAGE_CAPTURE . Я использовал TAG_ORIENTATION , чтобы соответственно повернуть изображение. Но теперь мы обнаружили, что на некоторых новых устройствах это не работает. Фактически он возвращает 1 для всех ориентаций.

Вот список устройств, на которых мы наблюдали это;

  • Samsung Infuse 4G (2.3.3)
  • Samsung Galaxy SII X (2.3.5)
  • Sony Xperia Arc (2.3.3)

Интересно то, что как только это изображение становится галереей, оно появляется правильно, и если я выберу его, TAG_ORIENTATION будет заполнен правильно. Так или иначе, ОС правильно заполняет эту информацию, но не в ActivityResult .

Какой самый надежный способ определить ориентацию? Кто-то по другому вопросу предложил сравнить высоту и ширину, но при их получении они правильно переключаются в зависимости от ориентации (еще одна загадка)

РЕДАКТИРОВАТЬ: Похоже, это может быть связано с другой ошибкой, когда ОС дублирует изображение, снятое в галерее (предполагается, что изображение будет сохранено только по указанному нами URL), дело в том, что это изображение в галерее имеет информацию ОРИЕНТАЦИЯ , а изображение в указанном месте - нет.

Это ошибка; http://code.google.com/p/android/issues/detail?id=19268

РЕДАКТИРОВАТЬ-2: Я зарегистрировал новую ошибку в Android. Я почти уверен, что это ошибка ОС, связанная с вышеупомянутой ошибкой. http://code.google.com/p/android/issues/detail?id=22822

40
задан Alex Cohn 13 October 2018 в 12:01
поделиться