android  未提供获取外置SD储存卡的相应函数或方法,但我们可以自己写一个。当前只能用Environment.getExternalStorageDirectory()获取内置的SD卡路径,因为不同机型的系统SD卡的路径不相同,但是我们仍然可以有方法去获得外置SD卡的路径,  内置和外置SD卡的信息存在system/etc/vold.fstab 里面,我们可以从这里获得外置SD卡的路径,  这里面的内容就算在设备非ROOT的情况下也是可读的,所以这个方法值得一试:

本人写好了一个类,可供直接使用或参考:

Dev_MountInfo.class

 

import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import com.snuabar.getmounteddevices.Dev_MountInfo.DevInfo;import android.os.Environment;public class Dev_MountInfo implements IDev {/** * *** */public final String HEAD = "dev_mount";public final String LABEL = "


 


使用方法:

Dev_MountInfo dev = Dev_MountInfo.getInstance();DevInfo info = dev.getInternalInfo();//Internal SD Card Informationsinfo = dev.getExternalInfo();//External SD Card Informations//   Methods:info.getLabel(); // SD 卡的名称info.getMount_point();//SD 卡挂载点info.getPath(); //SD 卡路径info.getSysfs_path(); // ....没弄清楚什么意思

 

不能保证所有版本系统和机型都适合,暂时只用LG P990 2.3.7  和华硕 平板 4.0.3进行过测试,都可以成功获取外置SD卡路径,  若此方法在你的机型或系统中无法获取相应路径,请回复,good luck!

 

有另一种方法可以得到外置SD卡路径:

System.getenv(); // 返回的是一个mapMap map = System.getenv();//遍历出来可以看到最后一项是外置SD卡路径Set set = map.keySet();    Iterator key = set.iterator();    while(key.hasNext())    Log.d("123", key.next());        Collection col = map.values();    Iterator val = col.iterator();    while(val.hasNext())    Log.d("123", val.next());//不同的机型获得的会有所不同,先试试!!


 

更多相关文章

  1. Android动态加载JAR包的实现方法
  2. Android——详解Paint的setPathEffect(PathEffect effect)
  3. win7下修改AVD默认路径(2013-01-01 18:54:50)
  4. 关于GitHub安装路径及Android(安卓)Studio中的配置
  5. 深入了解Android中文件路径问题
  6. Android(安卓)中Scheme协议的使用详解
  7. Android本地存储目录研究
  8. Andorid的Uri获得图片,视频等
  9. Android(安卓)用系统相机拍照android.os.FileUriExposedExceptio

随机推荐

  1. android aidl(android studio)
  2. Android单选和多选择按钮:
  3. some step in studying android
  4. 知识点笔记
  5. ViewPager做出广告轮播特效
  6. NDK各版本下载
  7. Android(安卓)文件的选择
  8. Android的各种Drawable
  9. android解析json数组
  10. android:configChanges名词解析(文档翻译)