[英]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.