Я пытаюсь заставить мое приложение захватить изображение и отправить его на сервер, не сохраняя в файловой системе.
Если я сделаю это так:
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, SOME_REQUEST_CODE);
В onActivityResult
Я могу извлечь изображение через
Bitmap photo = (Bitmap) data.getExtras().get("data");
, но это дает мне только thumbnail .
Из документации видно, что (один из?) способов получить изображение в формате Full HD - дать приложению камеры команду сохранить изображение в каком-либо внешнем месте, добавив
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
Однако для этого, очевидно, требуется WRITE_EXTERNAL_STORAGE
Учитывая, что мне не нужно хранить изображение в файловой системе, так как я все равно отправляю его по сети, я полагаю, что спрашиваю разрешение на дополнительное хранение противоречит принципу «спроси только, что тебе нужно» Так есть ли возможность каким-то образом получить полный образ HD в памяти и не запрашивать у пользователя разрешения на хранение? Возможно, существует какой-то специальный FileProvider тип пути для таких случаев?
Я нашел этот ответ: Захват изображения без разрешения с Android 6.0 , но это не так использовать FileProvider (который я должен использовать на Android 8) и, похоже, не подходит для моего случая.
Спасибо.