獲取手機內建儲存和外掛sdcard儲存路徑和可用空間以及總空間大小的方式
阿新 • • 發佈:2019-02-18
在網上找了好多資料都是執行“執行mount命令,獲取日誌,並進行篩選” 其實真正做起來還要根據廠家的手機做不同的篩選條件,太過於麻煩。
一種簡單帥氣的獲取方法如下
下面的getExternalSDRoot()<span style="font-family: Arial, Helvetica, sans-serif;">獲取手機外接SD卡的根目錄</span>
/** * 手機內建儲存根目錄 * @return */ public static String getSDRoot() { return Environment.getExternalStorageDirectory().getAbsolutePath(); } /** * 獲取手機外接SD卡的根目錄 * * @return */ public static String getExternalSDRoot() { Map<String, String> evn = System.getenv(); return evn.get("SECONDARY_STORAGE"); } /** * 檢查是否有手機內建儲存 * * @return */ public static boolean checkSaveLocationExists() { String sDCardStatus = Environment.getExternalStorageState(); boolean status; if (sDCardStatus.equals(Environment.MEDIA_MOUNTED)) { status = true; } else status = false; return status; } /** * 檢查是否安裝外接的SD卡 * * @return */ public static boolean checkExternalSDExists() { Map<String, String> evn = System.getenv(); return evn.containsKey("SECONDARY_STORAGE"); } /** * 獲取該路徑下可用空間 單位G * @return */ public static float getUsSize(String path){ StatFs sf = new StatFs(path); return (sf.getAvailableBlocks() * sf.getBlockSize())/1024f/1024f/1024f; } /** * 獲取該路徑下總空間 單位G * @return */ public static float getAllSize(String path){ StatFs sf = new StatFs(path); return (sf.getBlockCount() * sf.getBlockSize())/1024f/1024f/1024f; }