Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > android sdcard路径

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

作者:

自从android4.0开始,谷歌为没有内存卡的手机模拟了一个SD卡,占用了原来的SD卡路径,并为真实的sd卡挂载到该目录的子目录,由于所挂载的目录并没有官方规范,所以命名会不同,只能通过搜索,下面是获取android4.0版本sdcard路径示例

复制代码 代码如下:

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

您可能感兴趣的文章:
阅读全文