Я использую этот код, чтобы открыть намерение камеры:
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)
Вот скриншоты:
]3
вы должны указать фотопуть 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
да, это потому, что вы получаете только миниатюру. Я уверен, что это происходит и на других устройствах.
это был правильный ответ, просто нужно было реализовать файловый провайдер, и все было хорошо
Поэтому превью выглядит смазанным? потому что это уменьшенное изображение? и почему только самсунг?