![](/img/trans.png)
[英]How to check if a SD Card has been inserted to the tablet or not : Android?
[英]How to check wether the SD card is corrupted on Android
这是场景:
我正在将数据从网络保存到本地存储。 有时SD卡会部分损坏。
我可以提出几种方法:
IOException
假设在损坏的块上进行write
或flush
时将抛出IOException。 由于我的SD卡没有损坏,因此尚未进行测试。 因此,这是一种假设。
比较大小
每次flush
我将写入缓冲区的大小与实际文件进行比较。 我认为它尽管实用,却更加实用。
校验和
此方法不可靠,因为有两个因素会导致文件损坏:网络或SD卡错误。 因此,我无法指出真正的原因。
任何建议将不胜感激! 提前致谢。
更新 :
对不起,抱歉。 我从HttpEntity.getContent()
读取数据并写入RandomAccessFile
。 HttpEntity.getContent()
的基础协议是TCP。
您可以尝试获取SD卡状态
Boolean Accessable = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(Accessable)
{
// Sd card is accessable, write data
}
else
{
// probably corrupted or removed
}
如果使用TCP,将解决网络错误。 TCP协议确实对应用程序开发人员透明地重新传输/中止。 如果无法正确接收数据,则将获得IOException。 如果未使用TCP,则可以构建逻辑以使用校验和完成一些验证。 网络层完成错误检查后,即可使用SD卡错误逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.