2016-10-25 84 views

回答

0

您可以嘗試使用環境變量「SECONDARY_STORAGE」找出是否有任何SD卡插槽。關於SD卡的大小,StatFs可以爲您提供這樣的信息。

SD卡

String secondaryStorage = System.getenv("SECONDARY_STORAGE"); 
if (secondaryStorage == null) { 
    secondaryStorage = System.getenv("EXTERNAL_SDCARD_STORAGE") 
} 

SD卡大小(而非SD卡插槽的大小,我不知道是不是可行的,這要歸功於greenapps徵求意見):

StatFs statFs = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath()); 
long size = statFs.getBlockCountLong() * statFs.getBlockSizeLong(); 

文檔: https://developer.android.com/reference/android/os/Environment.html https://developer.android.com/reference/android/os/StatFs.html

+0

在我的Nexus 5上,沒有SD插槽,但我有一個外部存儲目錄,有一個虛擬的「SD Ca rds「鏈接到內部存儲器 – AxelH

+0

您的Nexus 5應該爲System.getenv(」SECONDARY_STORAGE「)返回null。它應該返回'System.getenv(「EXTERNAL_SDCARD_STORAGE」)'的有效路徑。 – Drez

+0

對不起,我在談論SD卡的大小。 – AxelH

相關問題