android 手机获取外置SD卡路径
2015-07-24 19:29
344 查看
一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirectory()这个结点。
此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。
而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。
此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径。
至此就能解释为都是无外置SD卡的情况下,有的手机调用
打印 Environment.getExternalStorageState(),却返回 ”removed“,在其他手机就有可能返回:“mounted”
原因已经知道了,可是如何在无外置SD卡的时候,获取到这个内置eMMC存储的具体路径呢?
既然使用 Environment.getExternalStorageDirectory() 获取到的是外置SD卡路径,但是我又没有插入SD卡,这个时候我想使用内置的eMMC存储来存储一些程序中用到的数据,我怎么去获取这个eMMC存储的路径呢?
答案是:通过扫描系统文件"system/etc/vold.fstab”来实现。
"system/etc/vold.fstab” 只是一个简单的配置文件,它描述了Android的挂载点信息。
我们可以遍历这个文件来获取所有的挂载点:
?
之后,当 Environment.getExternalStorageState()返回“removed”的时候(即,当没有挂载外置SD卡的时候),通过getDevMountList()方法获取一个list,这个list中可以进行写操作的那个就是系统自带的eMMC存储目录了。
判断逻辑:
?
此时,调用Environment.getExternalStorageDirectory(),则返回外置的SD的路径。
而另一部分手机直接将eMMC存储挂载在Environment.getExternalStorageDirectory()这个节点,而将真正的外置SD卡挂载到/mnt/external_sd、/mnt/sdcard2 等节点。
此时,调用Environment.getExternalStorageDirectory(),则返回内置的SD的路径。
至此就能解释为都是无外置SD卡的情况下,有的手机调用
打印 Environment.getExternalStorageState(),却返回 ”removed“,在其他手机就有可能返回:“mounted”
原因已经知道了,可是如何在无外置SD卡的时候,获取到这个内置eMMC存储的具体路径呢?
既然使用 Environment.getExternalStorageDirectory() 获取到的是外置SD卡路径,但是我又没有插入SD卡,这个时候我想使用内置的eMMC存储来存储一些程序中用到的数据,我怎么去获取这个eMMC存储的路径呢?
答案是:通过扫描系统文件"system/etc/vold.fstab”来实现。
"system/etc/vold.fstab” 只是一个简单的配置文件,它描述了Android的挂载点信息。
我们可以遍历这个文件来获取所有的挂载点:
?
判断逻辑:
?
相关文章推荐
- android的测试方法,
- android 不同手机外置SD卡路径不同
- Android Studio如何在真机中调试
- Android Ion
- Android 获取view在屏幕中的位置
- android getViewTreeObserver的使用
- universal-image-loader 使用思路
- 设置dialog的大小
- android代码的形式让button变成圆角 透明,如图
- Android 真机测试应用
- android:layout_weight的含义
- android 按钮按下效果(文字颜色和按钮同时变化)
- Android程序退出彻底关闭进程的方法
- Android FAT分区格式化
- Android 音频播放之SoundPool的使用和封装
- 关于Android中物理按键不响应的可能的一个问题。
- android studio中如何添加删除工程(module)
- Android Screen Monitor 下载地址
- Android权限
- Android 播放声音