ACTION_IMAGE_CAPTURE на устройстве Samsung размыто

Я использую этот код, чтобы открыть намерение камеры:

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePicture.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startActivityForResult(takePicture, 0);

И работает нормально, но только на устройствах Samsung (8\9) с андроидом 8 после того, как я делаю снимок, превью все размыто, у кого-нибудь было такое странное поведение?

(Я также пробовал без строки putExtra)

Вот скриншоты:

ACTION_IMAGE_CAPTURE на устройстве Samsung размыто

ACTION_IMAGE_CAPTURE на устройстве Samsung размыто]3

1
0
434
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы должны указать фотопуть Uri в качестве дополнительного намерения камеры, например:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), mUserID + ".jpg");
Uri photoPath = getUriForFile(mContext, BuildConfig.APPLICATION_ID, file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoPath);   //--> here 
startActivityForResult(Intent.createChooser(intent, "Complete action using"), REQUEST_CODE_CAMERA);

затем вы можете получить захваченное изображение в самом Uri в onActivityResult

Поэтому превью выглядит смазанным? потому что это уменьшенное изображение? и почему только самсунг?

yanivtwin 12.03.2019 10:04

да, это потому, что вы получаете только миниатюру. Я уверен, что это происходит и на других устройствах.

rya 12.03.2019 10:08

это был правильный ответ, просто нужно было реализовать файловый провайдер, и все было хорошо

yanivtwin 14.03.2019 13:05

Другие вопросы по теме