Keep on going, never give up.

获取Android外置存储卡路径

现在的Android设备都有内置存储卡,同时也支持外置存储卡,很多开发人员都为外置存储卡路径问题而困扰,至少从理论上说,想全部识别市面手机上的存储卡路径几乎是不可能的,除非跟使用认证或鉴权方式去鉴别存储卡类型。

一些常见的SD卡挂载路径如下(这还只列出少部分):

  • /mnt/sdcard0, /mnt/sdcard1, /mnt/sdcard2
  • /mnt/sdcard-ext, /mnt/ext_sdcard, /mnt/sdcard/ext_sd
  • /mnt/sdcard/extra_sd, /mnt/extrasd_bind, /mnt/sdcard/external_SD
  • /storage/sdcard0/storage/sdcard1, /storage/extSdCard

看到这些乱七八糟的路径(其中还有一些使用符号链接方式挂到别的路径),大家感觉如何呢,更可悲的是,Google每次小规模升级还要兼容这些垃圾配置方式。

目前判断外置存储卡的方式可通过函数并结合上文部分路径判断:

boolean sdExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if(sdExist) {
    f = Environment.getExternalStorageDirectory();
}

如果是源码开发,可直接找CPU的控制器规划图,能看到哪个SDIO控制器负责外置存储卡管理。

相关评论(0):  

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

最新文章

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2016 Metsky.com, All rights Reserved.