我正在创建一个使用webview的Android应用程序,但webview需要访问Camera中的图像。我使用以下代码创建图像文件,稍后将路径传递给相机(在onShowFileChooser?中)。
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getActivity().getFilesDir();
if(storageDir.mkdirs())
Log.d(TAG, "Unable to create dir" + storageDir);
File imageFile = new File(storageDir, imageFileName + ".jpg",);
Log.d(TAG, "Storage: " + imageFile.getAbsolutePath());
return imageFile;
}
现在上面的代码将生成相机拒绝的权限。一旦应用程序终止,该文件将被删除,并且据我所知(出于安全原因),另一个应用程序将无法浏览我的目录,因此除非直接传递,否则不会知道该文件是否存在。
然而,当我让相机启动时,它不会保存文件。它抛出一个FileNotFound异常(Permission Denied)。
04-10 21:00:44.818 22637-22637/? W/CAM_PhotoModule﹕ exception saving result to URI: file:///data/data/<package-name>/files/JPEG_20150410_210024_.jpg
java.io.FileNotFoundException: Permission denied
如何让相机写入该特定文件? (注意,我根本不想使用外部媒体,以防止其他应用程序拦截文件,或者移动设备没有外部存储器。)
另一个注意事项:这是来自一个片段(因此是getActivity()。getFilesDir())。
感谢任何帮助。我在网上寻找答案,找不到答案,我只想最后声明“如果不能做到这一点就无法完成”。