2

我编写了一个程序,该程序使用 Intent 进行图像捕获,以使用手机中的应用程序获取照片。使用 MediaStore.EXTRA_OUTPUT,我得到了一个图像的 URI,它转换为一个路径,结果类似于“/external/images/media/NN”,其中 NN 是照片的编号。

现在,在我的程序中,在我读取并处理了图像之后,我想删除该图像。

我该怎么做?

(File image = new File(path); image.delete(); // returns false, so doesn't work)
4

2 回答 2

1

感谢你的回答。

我解决了阅读此答案,将照片保存到文件时出现问题

对我来说,它适用于 Hero,即使在该代码中的注释中说 Hero 的行为不同。现在我得到“/sdcard/image.tmp”中的图像,我可以删除它。我认为这是最好的解决方案,因为我认为尝试让相机应用程序写入我的应用程序目录很麻烦。

再次感谢。

于 2010-10-18T08:35:16.603 回答
0

您是否有可能未能在您的应用中请求 WRITE_EXTERNAL_STORAGE 权限?这将导致删除失败。(无论如何,相机都可以写入,因为它是一个具有自己权限的单独应用程序。)

也有可能(但不太可能)媒体文件夹只能由相机应用程序写入,在这种情况下,您需要在调用相机的意图的 EXTRA_OUTPUT 额外中指定不同的所需目的地,以便文件将是写入您的应用程序的目录。事实上,您可能无论如何都希望这样做以避免私有资源使全局空间变得混乱,即使您要立即删除它们也是如此。

于 2010-10-14T18:39:43.353 回答