Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在android中使用自定义相机将捕获的图像保存到文件夹中_Java_Android_Image_Android Camera - Fatal编程技术网

Java 无法在android中使用自定义相机将捕获的图像保存到文件夹中

Java 无法在android中使用自定义相机将捕获的图像保存到文件夹中,java,android,image,android-camera,Java,Android,Image,Android Camera,我有一个带有自定义摄像头的简单应用程序,但当我拍照时,我无法将捕获的图像保存在emulator的下载文件夹中,而是创建了一个空白文件夹,我不知道为什么以及代码中的错误在哪里。我寻找答案,但没有找到有用的答案 你能帮忙吗 图像阅读器 您的代码正在执行正确的操作,因此请将图像文件保存到设备,但它正在将其保存到此处返回的路径的结果: mFile = getActivity().getExternalFilesDir(null); 外部文件目录可能指向myapp/data/data,这是为应用程序写

我有一个带有自定义摄像头的简单应用程序,但当我拍照时,我无法将捕获的图像保存在emulator的下载文件夹中,而是创建了一个空白文件夹,我不知道为什么以及代码中的错误在哪里。我寻找答案,但没有找到有用的答案

你能帮忙吗

图像阅读器


您的代码正在执行正确的操作,因此请将图像文件保存到设备,但它正在将其保存到此处返回的路径的结果:

mFile = getActivity().getExternalFilesDir(null); 
外部文件目录可能指向myapp/data/data,这是为应用程序写入外部存储的文件保留的“沙盒”数据区域。这与下载文件夹不同,下载文件夹将文件保存到手机沙盒数据区之外的共享re:outside

如果要保存到下载,您可能需要将图像写入外部网站,然后将https://路径传递到ViewIntent,它将在浏览器会话中显示您的图像,并为您提供从那里下载图像的选项

在代码中,您有:

mFile = getActivity().getExternalFilesDir(null);
但我看不到在图像阅读器中mFile是在哪里声明的。在另一个类中,将其定义为文件。如果mFile是一个文件,那么您可能应该执行以下操作:

String mPath = getActivity().getExternalFilesDir(null);
File mFile = new File(mPath + "/temp.jpg");

// but I don't think you need to create a file, just use the path
ImageSaver saver = new ImageSaver(mCapturedImage,mPath);

好您没有任何与下载文件夹相关的代码,至少在本问题中是这样。如果你搜索这个页面,问题中唯一出现下载的地方是你的开头段落,而不是代码。您的代码设置为将图像写入getExternalFilesDirnull中的文件,这是一个合理的选择。否则,在Android 9及更早版本上,您将需要使用Environment.GetExternalStoragePublicDirectoryEnvironment.DIRECTORY\u下载。在Android 10+上,您需要切换到使用MediaStore作为内容提供商。因此,如果我在真实设备上尝试,应该在哪个文件夹中找到它?String spath=getActivity.getExternalFilesDir;应该告诉您物理设备或模拟器上目录的确切路径。在第8版之前的版本中,它位于myapp/data/data下。现在,看起来他们正在将其存储在device/data/data/com.myco.myapp/files下。最好是读取从getExternalFilesDir返回的路径。如果您使用的是Android Studio,您可以通过查看/ToolWindows/DeviceFileExplorer查看文件。谢谢帮助,但我想将图像保存到gallery,因此我应该在路径中写入什么?如果您将图像文件写入文件文件夹,则Android将搜索所有应用程序文件文件夹以填充gallery。这可能就是你想做的。它不会显示在“下载”下,但它应该显示在“文件”下,如果它是图像文件,则应该显示在“库”中。因此,我应该这样保存它:String spath=getActivity.getExternalFileDirNull;?
mFile = getActivity().getExternalFilesDir(null);
String mPath = getActivity().getExternalFilesDir(null);
File mFile = new File(mPath + "/temp.jpg");

// but I don't think you need to create a file, just use the path
ImageSaver saver = new ImageSaver(mCapturedImage,mPath);