android — доступ к принудительному закрытию камеры api 29

#android #android-camera #android-permissions

#Android #android-камера #android-разрешения

Вопрос:

Я пытаюсь захватить изображение с камеры и сохранить изображение в памяти, это мой код, который выдает ошибку, он отлично работает на Android pre 9, но на Android 9 он выходит из строя

 fileName = System.currentTimeMillis()   ".jpg";
                        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, getCacheImagePath(fileName));
                        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
                            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
                        }
private Uri getCacheImagePath(String fileName) {
    File path = new File(getExternalCacheDir(), "camera");
    if (!path.exists()) path.mkdirs();
    File image = new File(path, fileName);
    return getUriForFile(ImagePickerActivity.this, getPackageName()   ".fileprovider", image);
}
  

я предоставил разрешения как для камеры, так и для записи извне, я также определил эти разрешения в манифесте

стек не возвращает никаких ошибок (странно), это точная строка, в которой он не идет дальше

 takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, getCacheImagePath(fileName));
  

что мне делать?

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

1. Точная строка? Но в чем причина проблемы? putExtra или получение пути к изображению catche? Разделите эти состояния, чтобы выяснить.

2. getUriForFile Это функция какого класса?