Environment.getDataDirectory() = /data
Environment.getDownloadCacheDirectory() = /cache
Environment.getExternalStorageDirectory() = /mnt/sdcard
Environment.getRootDirectory() = /system
context.getCacheDir() = /data/data/com.mt.mtpp/cache
context.getExternalCacheDir() = /mnt/sdcard/Android/data/com.mt.mtpp/cache
context.getFilesDir() = /data/data/com.mt.mtpp/files

android系统自从升级到2.3以后,多一个功能,可以判断存储卡是否是可以卸载的。Environment.isExternalStorageRemovable(),通过此方法我们可以知道手机上的存储卡是手机自带的还是外边可插拔的SD卡,当然此种情况是指只有一个卡的情况。
但是现在国内的大多数手机都支持双存储卡:
1、即手机内置的有2G、4G或8G的内部存储卡,默认安装的应用与数据都会到这个卡中,用户不买可插拔的SD卡,也可使用。
2、手机的存储空间毕竟有限,所以手机也支持外置的SD卡,或者叫TF卡、扩展卡等。
那么这时候问题就来了,在程序中我们如何可以判断哪个路径对应的是内置存储卡,哪个对应的是外置存储卡。有人说用Environment.getExternalStorageDirectory()方法得到不就是SD卡吗,这种方法明显不适用的,尤其在4.0以后。
恰恰相反,使用上面的方法得到的大多数是手机内部对应的SD卡(/mnt/sdcard 4.1系统以下,4.1直接变为/storage/sdcard0),下面我总结了一些较常见的外部SD卡的路径:
/mnt/sdcard2 /mnt/sdcard-ext /mnt/ext_sdcard /mnt/sdcard/SD_CARD
/mnt/sdcard/extra_sd /mnt/extrasd_bind /mnt/sdcard/ext_sd
/mnt/sdcard/external_SD /storage/sdcard1 /storage/extSdCard



更多相关文章

  1. Android(安卓)使用decodeFile方法加载手机磁盘中的图片文件
  2. Android(安卓)API level与version对应关系
  3. android获取屏幕分辨率
  4. The specified Android(安卓)SDK Build Tools version (23.0.2)
  5. 【Android】利用广播BroadCast监听网络的变化
  6. Android(安卓)VNC Server on G1 (PC 远程控制 Android(安卓)手机
  7. mtk android sd卡调试
  8. Android(安卓)手机状态
  9. ch07 Android(安卓)回调方法

随机推荐

  1. 写了个Android聊天客户端框架,基本聊天功
  2. Android(安卓)6.0以上权限拒绝打开权限设
  3. 搭建XMPP协议,实现自主推送消息到手机
  4. 慢学Android(安卓)Jetpack
  5. Android获取View的宽度和高度
  6. Android(安卓)关于引用jackson的jar包混
  7. 转-Lottie开源动画库介绍与使用示例
  8. C#实现Android自动打包工具
  9. [置顶] VirtualAPK:滴滴 Android(安卓)插
  10. android sdk升级后卡在Installing apk问