Android开发之系统信息——获取Android手机中SD卡内存信息
SD卡作為手機的擴展存儲設(shè)備,在手機中充當(dāng)硬盤角色,可以讓我們手機存放更多的數(shù)據(jù)以及多媒體等大體積文件。因此查看SD卡的內(nèi)存就跟我們查看硬盤的剩余空間一樣,是我們經(jīng)常操作的一件事,那么在Android開發(fā)中,我們?nèi)绾文塬@取SD卡的內(nèi)存容量呢?
?
首先,要獲取SD卡上面的信息,必須先對SD卡有訪問的權(quán)限,因此第一件事就是需要添加訪問擴展設(shè)備的權(quán)限。
<uses-permission?
android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
其次,需要判斷手機上面SD卡是否插好,如果有SD卡的情況下,我們才可以訪問得到并獲取到它的相關(guān)信息,當(dāng)然以下這個語句需要用if做判斷。
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
取得sdcard文件路徑
File path = Environment.getExternalStorageDirectory();?
StatFs statfs = new StatFs(path.getPath());
獲取block的SIZE
long blocSize = statfs.getBlockSize();
獲取BLOCK數(shù)量
long totalBlocks = statfs.getBlockCount();
空閑的Block的數(shù)量
long availaBlock = statfs.getAvailableBlocks();
計算總空間大小和空閑的空間大小
儲空間大小跟空閑的存儲空間大小就被計算出來了。
?
/**
?* 取得空閑sd卡空間大小
?* @return
?*/
public long getAvailaleSize(){
File path = Environment.getExternalStorageDirectory(); //取得sdcard文件路徑
StatFs stat = new StatFs(path.getPath());?
/*獲取block的SIZE*/
long blockSize = stat.getBlockSize();?
/*空閑的Block的數(shù)量*/
long availableBlocks = stat.getAvailableBlocks();
/* 返回bit大小值*/
return availableBlocks * blockSize/1024/1024;?
//(availableBlocks * blockSize)/1024 ? ? ?KIB 單位
//(availableBlocks * blockSize)/1024 /1024 ?MIB單位
}
?
/**
?* SD卡大小
?* @return
?*/
public long getAllSize(){
File path = Environment.getExternalStorageDirectory();?
StatFs stat = new StatFs(path.getPath());?
/*獲取block的SIZE*/
long blockSize = stat.getBlockSize();?
/*塊數(shù)量*/
long availableBlocks = stat.getBlockCount();
/* 返回bit大小值*/
return availableBlocks * blockSize/1024/1024;?
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/xyzlmn/archive/2011/05/06/3168183.html
總結(jié)
以上是生活随笔為你收集整理的Android开发之系统信息——获取Android手机中SD卡内存信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# socket编程第二篇
- 下一篇: android sina oauth2.