/**
* 运行挂载命令。返回挂载的地址。然后将地址解析
*/
private void getExtSDCardPath() {
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
String mount = new String();
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null){
System.out.println(line);
if (line.contains("secure"))
continue;
if (line.contains("asec"))
continue;
if (line.contains("fat")){
String columns[] = line.split(" ");
if (columns != null && columns.length > 1){
mount = mount.concat("*" + columns[1] + "\n");
}
}else if (line.contains("fuse")){
String columns[] = line.split(" ");
if (columns != null && columns.length > 1){
mount = mount.concat(columns[1] + "\n");
}
}
}
System.out.printf(mount);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

该方法执行的结果(測试机--三星Galaxy NoteII):

08-01 12:42:50.790: I/System.out(19890): none /acct cgroup rw,relatime,cpuacct 0 0

08-01 12:42:50.790: I/System.out(19890): tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0

08-01 12:42:50.790: I/System.out(19890): tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0

08-01 12:42:50.790: I/System.out(19890): none /dev/cpuctl cgroup rw,relatime,cpu 0 0

08-01 12:42:50.790: I/System.out(19890): /dev/block/mmcblk0p13 /system ext4 ro,relatime,barrier=1,data=ordered 0 0

08-01 12:42:50.795: I/System.out(19890): /dev/block/mmcblk0p3 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered 0 0

08-01 12:42:50.795: I/System.out(19890): /dev/block/mmcblk0p12 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered 0 0

08-01 12:42:50.795: I/System.out(19890): /dev/block/mmcblk0p16 /data ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard 0 0

08-01 12:42:50.795: I/System.out(19890): /sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0

08-01 12:42:50.795: I/System.out(19890): /dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

08-01 12:42:50.795: I/System.out(19890): /dev/block/vold/179:17 /storage/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
0 0

08-01 12:42:50.795: I/System.out(19890): /storage/sdcard0

08-01 12:42:50.795: I/System.out(19890): */storage/extSdCard

获取不同机型外置SD卡路径的更多相关文章

  1. android获取内置和外置SD卡路径 - z

    本文将介绍Android真机环境下如何获取内置和外置SD卡路径. 测试环境:三星Note3,其他手机待测试... 所需权限(AndroidManifest.xml文件里) <uses-permi ...

  2. Android 5.1.1在外置SD卡中创建文件夹

    Android 4.4之后WRITE_MEDIA_STORAGE 权限仅提供给系统应用,不再授予第三方App,WRITE_EXTERNAL_STORAGE 权限,仅仅用于授权用户写 primary e ...

  3. Android开发获取多个存储空间的路径(内置SD卡以及外置SD卡)

    Android开发中经常会遇到多存储空间的问题,包括内置存储路径以及外置SD卡,而且有的时候会有多张外置SD卡,此时就需要获取不同的SD卡路径,然后根据需要来写入或者读出文件. 此处给出常用的SD卡工 ...

  4. Android手机外置SD卡(TF卡)的获取方法

    Android手机上的外置SD卡,起初的时候,即在Android出世的前几年,那时手机的存储是十分有限的,不像现在到处可见16G.32G和64G的存储,因而那时候的手机有的厂商允许插入外置的SD卡,此 ...

  5. Android内置和外置SD卡的位置获取

    public class StorageUtils { private static String TAG="123"; // 获取主存储卡路径 内置内存卡路径 public st ...

  6. Android 获取SD卡路径和推断SD卡是否存在

    android获取sd卡路径方法: 不建议直接写死android sd卡的路径. public String getSDPath(){ File sdDir = null; boolean sdCar ...

  7. Android获取SD卡路径及SDCard内存的方法

    这篇文章主要介绍了Android获取SD卡路径及SDCard内存的方法,较为详细的分析了Android针对SD卡操作所涉及的类及其具体函数功能,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了A ...

  8. SD卡路径问题以及如何获取SDCard 内存

            昨天在研究拍照后突破的存储路径的问题,开始存储路径写死为:    private String folder = "/sdcard/DCIM/Camera/"(SD ...

  9. Android获取SD卡路径/内存的几种方法

    Android获取SD卡路径 本篇将会带领大家学习如何获取android路径的几种常见用法,但在我开始bb之前需要大家清楚android中内存和外存之间的区别,下面进行简短介绍:android中的内存 ...

随机推荐

  1. TCP/IP笔记 一.综述

    1. TCP/IP分层 TCP/IP 是四层的体系结构:应用层.运输层.网际层和网络接口层,如下图: OSI协议是国际标准的网络协议,但是由于OSI的实用性等问题造成OSI没有流行起来.目前国际上广泛 ...

  2. Ubuntu 环境安装整理

    Ubuntu11.04下Java开发环境搭建和配置 转自:http://guoyunsky.iteye.com/blog/1175861 类似的搭建,网上一搜一大把,但每次去搜索比较麻烦.我这里就整理 ...

  3. Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

    原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...

  4. hdu1114

    完全背包的水题,不过今天才学动态规划,就这样啦……hahahah!!! 完全背包跟普通背包的区别是普通背包从后往前循环,以防止被替换 完全背包是从前往后循环,后面的状态会跟着之前状态的改变而改变…… ...

  5. C++基础之二:常量指针和指针常量

    1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; 注:可以将一个常量的地址赋值给一个对应类型的常 ...

  6. Eclipse背景和匹配出现单词的一些设置

    Eclipse的背景色和关键词的设置这里就不多说了,只说明设置路径: 背景色:[Window]--->[Preference]-->[General]--->[Editors]--- ...

  7. 手动配置S2SH三大框架报错(一)

    十二月 08, 2013 9:24:51 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...

  8. Js正则表达式学习之test和compile的简单介绍

    RegExp 对象用于规定在文本中检索的内容. 定义 RegExp RegExp 对象用于存储检索模式. 通过 new 关键词来定义 RegExp 对象.以下代码定义了名为 patt1 的 RegEx ...

  9. 用qsort排序

     冒泡,快排都是常见的排序方法,这里介绍用头文件里的qsort函数排序.只是自己要先一个cmp函数. #include<stdlib.h>//qsort的头文件 int a[100]= ...

  10. vdsm的SSL证书验证过程

    1. Copy the VDSM certificate of the RHEV-H(Red Hat Enterprise Virtualization Hypervisor ) host to th ...