获取android4.0版本sdcard路径示例

时间:2021-08-10 10:44:44
复制代码 代码如下:

@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);
  }