Если вы хотите сохранить его на постоянной основе, вы можете сохранить его App-Specifi c Storage . это тип хранилища, назначенный вашему имени пакета приложения.
Вы можете найти его в пути data / data / your-package-name , ознакомьтесь с официальной документацией , чтобы узнать больше об этом типе хранилища.
Мы должны также сохранить эти изображения во внешнем хранилище.
Шаг 1:
Предоставить разрешение на внешнее хранилище, поскольку вы получите доступ к этому хранилищу с помощью сохранение в нем изображений.
Шаг 2:
Откройте камеру с помощью Intent и создайте файл для снятого изображения.
private void openCamera() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
photoFile = null;
try {
photoFile = FileHelper.createImageFile(this);
} catch (IOException ex) {
}
if (photoFile != null) {
photoURI = FileProvider.getUriForFile(this,
"your path",
photoFile);
deleteFile(photoFile.getName());
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, CAMERA_RESULT);
photoFile.deleteOnExit();
}
}
}
createImageFile () - это метод создания временного файла
public static File createImageFile(Context context) throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = timeStamp;
File storageDir = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
;
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
return image;
}
Шаг 3:
Добавьте путь к вашему поставщику файлов
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external"
path="." />
</paths>
В вашем манифесте объявите это Путь к файлу провайдера выглядит следующим образом:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="cyour authority"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
Наконец, у меня есть полный репозиторий на GitHub , вы можете изучить его, я думаю, он может вам помочь.
Happy Coding ?