#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
Это функция какого класса?