Я работаю над приложением, в котором мы позволяем пользователям делать снимки на своем телефоне для изображения своего профиля. Это прекрасно работает на большинстве телефонов, однако по какой-то причине у нас возникают проблемы с Pixel 2 всех телефонов, отправляющих повернутое изображение без ориентации, определенной Exif.
Вот что у меня есть:
private int IMAGE_CAPTURE = 1234;
public void takePicture() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, IMAGE_CAPTURE)
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == IMAGE_CAPTURE && resultCode = RESULT_OK) {
try {
Bundle extras = data.getExtras();
final Bitmap bmp (Bitmap) extras.get("data");
Glide.with(this)
.load(bmp)
.error(R.drawable.person_no_photo)
.apply(RequestOptions.circleCropTransform())
.into(mBinding.ivPerson)
} catch (Exception e) {
Log.e(Constants.LOG_TAG, "Couldn't get bitmap from camera")
}
}
}
До сих пор я пробовал это решение: { ссылка }, но оно ничего не меняет, поскольку ориентация всегда сообщает как неопределенное.
I ' Мы также пытались просто установить изображение как
mBinding.ivPerson.setImageBitmap(bmp);
вместо скольжения, но изображение все еще поворачивается, поэтому я знаю, что это как-то связано с моим растровым изображением.
Я знаю, что это была ошибка в Android ОС, например, 7-летний go, но они серьезно еще не исправили ее?
Как я могу получить правильно ориентированное растровое изображение из ACTION_IMAGE_CAPTURE, если я не могу получить правильную ориентацию на пикселе 2?