本文實例講述了Android編程之判斷SD卡狀態(tài)的方法。分享給大家供大家參考,具體如下:
首先我們要在AndroidManifest.xml中增加SD卡訪問權(quán)限:
<!-- 在SDCard 的掛載權(quán)限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard寫入數(shù)據(jù)權(quán)限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
接著我們寫一個通用類來保存SD卡相關(guān)的操作及狀態(tài)檢查:
import java.io.File; import android.os.Environment; import android.os.StatFs; public class SDTool { private static SDTool tool = null; // 檢查SD卡是否掛載 public boolean SD_EXIST = false; private SDTool() { } public static SDTool instance() { if (tool == null) { synchronized (SDTool.class) { if (tool == null) { tool = new SDTool(); tool.SD_EXIST = Environment.MEDIA_MOUNTED .equals(Environment.getExternalStorageState()); } } } return tool; } public long getSDFreeSize() { // 取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); long blockSize = sf.getBlockSize(); // 空閑的數(shù)據(jù)塊的數(shù)量 long freeBlocks = sf.getAvailableBlocks(); // 返回SD卡空閑大小 return freeBlocks * blockSize; // 單位Byte } public long getSDAllSize() { // 取得SD卡文件路徑 File path = Environment.getExternalStorageDirectory(); StatFs sf = new StatFs(path.getPath()); // 獲取單個數(shù)據(jù)塊的大小(Byte) long blockSize = sf.getBlockSize(); // 獲取所有數(shù)據(jù)塊數(shù) long allBlocks = sf.getBlockCount(); // 返回SD卡大小 return allBlocks * blockSize; // 單位Byte } } 一個字段是判斷SD_EXIST,true表示存在。
另外2個方法一個是獲取SD卡剩余容量(Byte),另一個獲取總?cè)萘俊R院髮D卡的操作的方法都可以寫到這里面。便于管理。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android編程開發(fā)之SD卡操作方法匯總》、《Android開發(fā)入門與進階教程》及《Android控件用法總結(jié)》。
希望本文所述對大家Android程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選