Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程之判斷SD卡狀態的方法

Android編程之判斷SD卡狀態的方法

編輯:關於Android編程

本文實例講述了Android編程之判斷SD卡狀態的方法。分享給大家供大家參考,具體如下:

首先我們要在AndroidManifest.xml中增加SD卡訪問權限:

<!-- 在SDCard 的掛載權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard寫入數據權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

接著我們寫一個通用類來保存SD卡相關的操作及狀態檢查:

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(); 
    // 空閒的數據塊的數量 
    long freeBlocks = sf.getAvailableBlocks(); 
    // 返回SD卡空閒大小 
    return freeBlocks * blockSize; // 單位Byte 
  } 
  public long getSDAllSize() { 
    // 取得SD卡文件路徑 
    File path = Environment.getExternalStorageDirectory(); 
    StatFs sf = new StatFs(path.getPath()); 
    // 獲取單個數據塊的大小(Byte) 
    long blockSize = sf.getBlockSize(); 
    // 獲取所有數據塊數 
    long allBlocks = sf.getBlockCount(); 
    // 返回SD卡大小 
    return allBlocks * blockSize; // 單位Byte 
  } 
} 

一個字段是判斷SD_EXIST,true表示存在。

另外2個方法一個是獲取SD卡剩余容量(Byte),另一個獲取總容量。以後對SD卡的操作的方法都可以寫到這裡面。便於管理。

更多關於Android相關內容感興趣的讀者可查看本站專題:《Android編程開發之SD卡操作方法匯總》、《Android開發入門與進階教程》及《Android控件用法總結》。

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved