2013-04-10 107 views
6

我的應用程序正在SD卡上保存文件,但在保存文件之前我需要檢查是否有可用內存。我需要檢查SD卡上有多少空閒內存。檢查SD卡上是否有足夠的內存編程

喜歡的東西:

if(MemoryCard.getFreeMemory()>20Mb) 
{ 
    saveFiles(); 
} 
else 
{ 
    Toast.makeText(this, "Not enough memory", 100).show(); 
} 

回答

4

來自:http://groups.google.com/group/android-developers/browse_thread/thread/ecede996463a4058

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
long bytesAvailable = (long)stat.getBlockSize() * (long)stat.getBlockCount(); 
long megAvailable = bytesAvailable/1048576; 
+0

可以用編程檢查谷歌驅動器的可用空間stat.getAvailableBytes();對於android 4.3+(API 18+) – 2014-08-25 12:34:38

+0

感謝Stevo.mit。我會看看更多信息的文檔:) – Shrikant 2014-08-25 12:48:42

7
StatFs class 

,你可以在這裏使用,爲您的內部和外部目錄提供的路徑,並計算出總,自由和可用的編緝空間。

StatFs memStatus = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
long bytesAvailable = (long)memStatus.getBlockSize() * (long)memStatus.getAvailableBlocks(); 

查看documentation瞭解更多詳情。 bytesAvailable是以字節爲單位,你可以將它轉換成你想要的任何格式。

+0

如何從Android應用 – Raa 2013-11-11 09:36:30

1

對於安卓4.3+(API等級:18歲以上)

StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
long bytesAvailable = getAvailableBytes();