安卓的SD卡可谓乱之又乱. 笔者在一个安卓项目中需要判断手机的内置外置存储空间,被虐很惨.
安卓sd卡只乱表现在:1> 安卓SDK版本的更迭, 2>虚拟SD卡的搅局, 3>手机硬件+不同rom的混乱,
常常有用户 自己分不清自己的安卓手机的存储空间: 在手机里写一个文件,连到电脑上, 发现没有这个文件.
系统虚拟出好几个sd卡, 而脸上电脑的时候可能只映射了一部分....
总之是各种烦躁....
通过一个文件夹路径,获取其所在SD卡的存储空间大小:
public static long getSDSpace(File path) {
StorageSpace space = new StorageSpace();
StatFs sf = null;
try {
sf = new StatFs(path.getPath());
} catch (Exception e) {
return 0;
}
return sf.getBlockSize() * sf.getBlockCount();
}