Получение целевого изображения камеры uri полного изображения

Я нашел способы, которые якобы помогли людям получить uri / bitmap изображения, сделанного камерой. Но когда я пытаюсь создать растровое изображение из ненулевого uri, который я получаю, файл не создается и не существует.

это функция, которую я использую для открытия намерения камеры (которая копируется из stackoverflow):

private void openBackCamera() {
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = timeStamp + ".jpg";
    File storageDir = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES);
    currentImageBase64 = storageDir.getAbsolutePath() + "/" + imageFileName;
    File file = new File(currentImageBase64);
    Log.d("2","file 1: " +file.exists());
    Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext(),"com.mydomain.fileprovider",file);
    currentImageBase64 =outputFileUri+"";
    Log.d("2",outputFileUri+" is the uri got from camera");
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    startActivityForResult(cameraIntent, CAMERA_REQUEST);
}

и вот как я обрабатываю свои изображения:

            Log.d("2","camera request!"+ currentImageBase64);
            File imgFile = new  File(currentImageBase64);
            if(imgFile.exists()) {
                Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

                ivPreview.setImageBitmap(myBitmap);
            }else{
                Log.d("2","file does not exist");
            }

обратите внимание, что журнал запросов камеры показывает, что currentImagesBase64 не является нулевым и имеет значение «content: //com.mydomain.fileprovider/name/Pictures/20190121_173332.jpg», файл в любом случае не существует.

/ ** редактировать: проблема заключалась в недостаточных разрешениях, были запрошены разрешения камеры и чтения и записи, и проблема была решена! ** /


person Arel Sharon    schedule 21.01.2019    source источник
comment
Удалить currentImageBase64 =outputFileUri+"";.   -  person CommonsWare    schedule 21.01.2019
comment
@CommonsWare не работает :(, журнал запросов камеры /storage/emulated/0/Pictures/20190121_181750.jpg, и проверка наличия файла не удалась.   -  person Arel Sharon    schedule 21.01.2019
comment
У вас есть соответствующие разрешения, в том числе разрешения на выполнение? Вы проверили наличие файла с помощью проводника устройств Android Studio?   -  person CommonsWare    schedule 21.01.2019
comment
Почему вы не получаете растровое изображение из Intent, которое вы получаете в методе onActivityResult?   -  person Abubakar    schedule 21.01.2019
comment
Вы добавили FileProvider в свой файл манифеста?   -  person Abubakar    schedule 21.01.2019
comment
Оказалось, что проблема была с разрешениями, как только я дал разрешения на чтение и запись для камеры во время выполнения, проблема была исправлена!   -  person Arel Sharon    schedule 21.01.2019
comment
Здорово, что вы решили проблему.   -  person Abubakar    schedule 21.01.2019


Ответы (1)


Оказалось, что проблема была с разрешениями, как только я дал разрешения на чтение и запись для камеры во время выполнения, проблема была исправлена!

person Arel Sharon    schedule 02.08.2020