【发布时间】:2011-11-15 08:46:10
【问题描述】:
是否有任何功能/方法可以检测到您手机的各种不同存储及其名称。我的意思是如果您的设备上有多个可用的存储空间,则检测所有内部/外部存储空间。以及如何检测是否有可用的 SD 卡?
提前致谢!
【问题讨论】:
-
请看下面,可能对你有帮助。
stackoverflow.com/questions/7450650/…
是否有任何功能/方法可以检测到您手机的各种不同存储及其名称。我的意思是如果您的设备上有多个可用的存储空间,则检测所有内部/外部存储空间。以及如何检测是否有可用的 SD 卡?
提前致谢!
【问题讨论】:
我不知道其他类型的存储设备,我只知道Android的内部存储和外部存储设备。
现在检查可用的外部存储之类的,
public static boolean isSdPresent() {
return android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED);
}
return type boolean(true->available,false->NA).
对于内部存储,(内部存储始终保持(存在),因此无需检查)就像,
File path = Environment.getDataDirectory();
现在,在这两种情况下检查可用的空闲内存和使用内存,
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(this, availableBlocks * blockSize);
【讨论】:
getBlockSize() 已弃用,您可以直接使用path.getFreeSpace() 代替。
试试这个..
public static boolean isSdCardPresent() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}
【讨论】: