Камера и галерея не открываются на некоторых моделях телефонов для приложения Android

#java #android #camera #gallery

#java #Android #камера #Галерея

Вопрос:

Хорошо, мы используем некоторый код для открытия галереи и камеры на устройствах Android, пользователи выбирают фотографию, и она загружается как обычно.

Но на некоторых телефонах это не работает, например, на телефоне Nokia 2.2.

 private void takeCameraImage() {
        Dexter.withActivity(getActivity())
                .withPermissions(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .withListener(new MultiplePermissionsListener() {
                    @Override
                    public void onPermissionsChecked(MultiplePermissionsReport report) {
                        if (report.areAllPermissionsGranted()) {
                            Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                            File file;
                            try {
                                file = getImageFile(); // 1
                            } catch (Exception e) {
                                e.printStackTrace();
                                Log.e("exception","==" e.getMessage() " " e.getLocalizedMessage());
                                return;
                            }
                            Uri uri;
                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) // 2
                                uri = FileProvider.getUriForFile(getContext(), BuildConfig.APPLICATION_ID.concat(".provider"), file);
                            else
                                uri = Uri.fromFile(file); // 3
                            pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); // 4
                            startActivityForResult(pictureIntent, REQUEST_IMAGE_CAPTURE);
                        }
                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
                        token.continuePermissionRequest();
                    }
                }).check();
    }
  

Это код, который разработчик говорит, что он использует на Java. Кто-нибудь может понять, почему это работает на некоторых телефонах, а не на других?

Комментарии:

1. file = getImageFile(); ? Код не опубликован.

2. Это будет зависеть от версии телефона Android.

3. Но на некоторых телефонах это «не работает», например, на телефоне Nokia 2.2.