在我的应用中操作时,我遇到了文件损坏的问题。请参阅here和here。看起来好像没有正确关闭FileOutputStream,但我接近100%确定此问题不是我的代码或我正在使用的库。正在刷新流并正确关闭。
我已经设法确定问题只发生在我的手机作为媒体设备连接并且Windows可以访问SD卡时(没有异常被抛出,一切似乎都正常但输出文件已损坏,缺少一些bytes - 文件结束信息)。关闭USB调试无法解决问题。断开手机与计算机的连接,然后运行应用程序将其修复。
我的问题是,我如何以编程方式实现相同的修复? 我试过了:
this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_UNMOUNTED, Uri
.parse("file://")));
和
this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SHARED, Uri
.parse("file://")));
似乎没有任何影响,文件仍然是损坏的。我用谷歌搜索但没有找到我需要做的事情。
如果失败,我可以检查什么来警告用户先断开设备?
这个特定的设备没有真正的可移动SD卡,它是一个Htc One GPE。