@SuppressLint("NewApi")//你懂的
private File findSDCARD() {
boolean b = Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState());
if (!b) return null;
File extFile = Environment.getExternalStorageDirectory();
File[] files = extFile.listFiles();
if (files == null)
return null;
for (File f : files) {
if (extFile.isDirectory()
&& f.canWrite()//sd卡一定是可写的.如果去掉这条件的话会得到隐藏的系统专用文件夹
&& Math.abs(extFile.getTotalSpace() - f.getTotalSpace()) > 2 * 1024 * 1024) {
//外部存储器与子目录的在未挂载的情况下有相同的存储容量.子目录是挂载的话.就会出现不同的存储容量
//2 * 1024 * 1024 是用来指出两存储器的存储容量大小差异 当然可以不用这么大 随意
return f;
}
}
return null;
}
//调用,14为android4.0
if (Build.VERSION.SDK_INT >= 14) {
File sd = findSDCARD(extFile);
}