Создать файл, когда намерение камеры выбрано из выбора - PullRequest
0 голосов
/ 05 апреля 2019

Я создал 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 независимо от выбора камеры или галереи.

Любое понимание приветствуется.

...