Android 在DK上创建/写入文件

Android 在DK上创建/写入文件,android,pepper,Android,Pepper,我们想在Pepper Robot上拍摄一张照片并保存它(以某种方式)->第一个想法是压缩到.jpg文件。 TakePicture操作取自QISDK教程,然后我们创建文件,如下所示: File file = new File("image.jpg"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } try { F

我们想在Pepper Robot上拍摄一张照片并保存它(以某种方式)->第一个想法是压缩到.jpg文件。
TakePicture操作取自QISDK教程,然后我们创建文件,如下所示:

File file = new File("image.jpg"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } try { FileOutputStream out = new FileOutputStream(file); getPicture().compress(Bitmap.CompressFormat.JPEG, 100, out); // getPicture() is The Bitmap we get from TakePicture Action. Log.i("COMPRESSED", "SUCCES"); out.close(); } catch (IOException e) { Log.i("COMPRESSED", "FAIL"); e.printStackTrace(); } File File=新文件(“image.jpg”); 试一试{ createNewFile(); }捕获(IOE异常){ e、 printStackTrace(); } 试一试{ FileOutputStream out=新的FileOutputStream(文件); getPicture().compress(位图.CompressFormat.JPEG,100,out); //getPicture()是我们从TakePicture操作中获得的位图。 Log.i(“压缩”、“成功”); out.close(); }捕获(IOE异常){ Log.i(“压缩”、“失败”); e、 printStackTrace(); } 但是代码抛出异常,即IOException只读文件系统。这意味着机器人环境会阻止创建/写入文件,我认为这是出于安全原因但是位图格式的图片不是我们想要的。

这个问题有什么可能的解决方法吗?

我找到了一个解决方案,我刚刚用

file = File.createTempFile("image", ".jpg", this.getCacheDir()); file=file.createTempFile(“image”,“.jpg”,this.getCacheDir()); 通过这种方式,它可以创建一个完全可写的临时文件,之后可以对其进行压缩、编辑等。

使用/temp android文件夹的绝对路径也可以,但这取决于android版本。

新文件(“image.jpg”)无法工作。不能仅使用文件名。您需要提供完整路径。通过这种方式创建文件,它将使文件自动位于应用程序的根目录中。我还使用了应用程序上下文目录,这也不起作用。好吧,文件不是你所抱怨的创建的。你有个例外。所以请详细说明。你认为什么是根目录?同样的代码在笔记本电脑上运行得很好,它不会在胡椒机器人上运行,这就是为什么我想知道有别的方法来转换位图,或者也许我能让超级用户为我的应用程序提供一种方法,因为我相信Pepper默认为应用程序设置了只读规则。我已经告诉过你必须使用完整路径。但你没有反应。与此同时,你在谈论别的事情。我仍然在谈论那个例外。