Я создал Intent
через Intent.createChooser
и могу успешно предложить пользователю выбрать между выбором изображения или фотографией. Я хочу сохранить фотографию во внешнем хранилище, если она была сделана, поэтому мне интересно, как мне будет создать File
, если выбрана цель камеры?
Код для создания селектора Intent
:
Intent receiver = new Intent(requireContext(),ImageBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(requireContext(),
REQUEST_PROFILE_PICTURE,receiver,PendingIntent.FLAG_UPDATE_CURRENT);
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent getPictureIntent = new Intent();
getPictureIntent.setType("image/*");
getPictureIntent.setAction(Intent.ACTION_GET_CONTENT);
Intent chooserIntent = Intent.createChooser(getPictureIntent,
getString(R.string.imageDialogTitle),pendingIntent.getIntentSender());
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePictureIntent});
startActivityForResult(chooserIntent,REQUEST_PROFILE_PICTURE);
Я могу создать File
и сохранить для него изображение, если я создаю Intent
специально для фотографирования с помощью:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
Мой лучший вариант - создать файл до запуска chooserIntent независимо от выбора пользователя?
Если бы мне пришлось идти по пути создания файла до выбора Intent
, как я узнаю, сделал ли пользователь фотографию или выбрал фотографию в onActivityResult()
? Если я не ошибаюсь, requestcode
, возвращаемое в onActivityResult()
, получено от селектора Intent
, поэтому он всегда будет REQUEST_PROFILE_PICTURE
независимо от выбора камеры или галереи.
Любое понимание приветствуется.