设置相机X图像捕获文件路径



我将文件路径设置为以下内容:

File file = new File(Environment.getExternalStorageDirectory() + "/" + System.currentTimeMillis() + ".png");

ImageCapture.OutputFileOptions outputFileOptions =
new ImageCapture.OutputFileOptions.Builder(file).build();
imageCapture.takePicture(outputFileOptions, Executors.newSingleThreadExecutor(),
new ImageCapture.OnImageSavedCallback() {
@Override
public void onImageSaved(ImageCapture.OutputFileResults outputFileResults) {
// insert your code here.
Log.d("PHOTO", "onImageSaved: saved");
}
@Override
public void onError(ImageCaptureException error) {
// insert your code here.
Log.d("PHOTO", "onError: " + error);
}
});

但是由于某种原因,当我单击捕获图像按钮时,它会跳转到onError并记录以下内容:

onError: androidx.camera.core.ImageCaptureException: Failed to write or close the file

根据 AndroidR(API 级别 30(和 Android 存储用例的最新更新以及最佳做法,您可以使用以下代码将图片保存在应用的缓存存储中

File file = new File(getContext().getExternalCacheDir() + File.separator + System.currentTimeMillis() + ".png");

你的应用需要权限才能写入所需位置。

您可以在清单和运行时请求WRITE_EXTERNAL_STORAGE,以允许您在请求的位置编写...直到安卓9。Android 10 及更高版本不支持在外部存储根目录中创建任意目录的普通应用程序。

您选择的getExternalFilesDir()意味着您不需要任何权限。缺点是卸载应用程序时,您放置在那里的文件会被删除。

最新更新