在网上找了好多资料都是运行“运行mount命令,获取日志,并进行筛选” 其实真正做起来还要根据厂家的手机做不同的筛选条件,太过于麻烦。
一种简单帅气的获取方法如下
下面的getExternalSDRoot()<span style="font-family: Arial, Helvetica, sans-serif;">获取手机外置SD卡的根目录</span>
/**
* 手机内置存储根目录
* @return
*/
public static String getSDRoot() {
return Environment.getExternalStorageDirectory().getAbsolutePath();
}
/**
* 获取手机外置SD卡的根目录
*
* @return
*/
public static String getExternalSDRoot() {
Map<String, String> evn = System.getenv();
return evn.get("SECONDARY_STORAGE");
}
/**
* 检查是否有手机内置存储
*
* @return
*/
public static boolean checkSaveLocationExists() {
String sDCardStatus = Environment.getExternalStorageState();
boolean status;
if (sDCardStatus.equals(Environment.MEDIA_MOUNTED)) {
status = true;
} else
status = false;
return status;
}
/**
* 检查是否安装外置的SD卡
*
* @return
*/
public static boolean checkExternalSDExists() {
Map<String, String> evn = System.getenv();
return evn.containsKey("SECONDARY_STORAGE");
}
/**
* 获取该路径下可用空间 单位G
* @return
*/
public static float getUsSize(String path){
StatFs sf = new StatFs(path);
return (sf.getAvailableBlocks() * sf.getBlockSize())/1024f/1024f/1024f;
}
/**
* 获取该路径下总空间 单位G
* @return
*/
public static float getAllSize(String path){
StatFs sf = new StatFs(path);
return (sf.getBlockCount() * sf.getBlockSize())/1024f/1024f/1024f;
}