2014-09-12 51 views
-1

我發現了一種非常好的方法來獲取設備擁有的所有sd卡的路徑,不僅包括Environment.getExternalStorageDirectory(),還包括外部卡。這種方法在How can I get external SD card path for Android 4.0+?獲取所有SD卡上的可用空間

所以secrond,我的問題是我怎麼能找到SD卡上免費可用空間知道它的路徑,例如,「存儲/ extSdCard」或者換句話說,我需要的任何其他

的方法:

public int getExternalAvailableSpaceInBytes(String sdRootPath) { 
//here's this method using this sdRootPath 
} 

回答

-1
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); 
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){ 
@SuppressWarnings("deprecation") 
long sdAvailSize = (long)stat.getAvailableBlocksLong() * (long)stat.getBlockSizeLong(); 
} 
else{ 
@SuppressWarnings("deprecation") 
double sdAvailSize = (double)stat.getAvailableBlocks() * (double)stat.getBlockSize(); 
} 

double gigaAvailable = sdAvailSize/1073741824; //1073741824 =1GB 
+0

我指定Environment.getExternalStorageDirectory()的getPath()返回如果2只存在內部SD卡。我需要通過Sd卡的路徑知道可用空間。 – user2976267 2014-09-12 13:39:40

+0

傳遞其他SD卡的路徑,而不是'Environment.getExternalStorageDirectory()。getPath()' – 2014-09-12 13:40:45

+0

[如何獲得外部SD卡的路徑](http://stackoverflow.com/q/11281010/3326331) – 2014-09-12 13:43:32