U盘路径的获取,之前查过好多资料,但是都不尽人意,全是来自同一个人的,关键是还不管用,也是没谁了.今天查的时候,终于找到了一个可以用的代码,平板亲测可用,让朋友也测试了一下,据说也是显示出路径了,好了不多说了,直接上代码.
参考:http://blog.5ibc.net/p/1241.html
/**
* 获取手机系统中所有被挂载的TF卡,包括OTG等
*
* @return
*/
public String getAllExterSdcardPath(){
String str="";
try{
Runtime runtime = Runtime.getRuntime();
// 运行mount命令,获取命令的输出,得到系统中挂载的所有目录
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null){
// 将常见的linux分区过滤掉
if (line.contains("proc") || line.contains("tmpfs") || line.contains("media") || line.contains("asec") || line.contains("secure") || line.contains("system") || line.contains("cache")
|| line.contains("sys") || line.contains("data") || line.contains("shell") || line.contains("root") || line.contains("acct") || line.contains("misc") || line.contains("obb"))
{
continue;
}
// 下面这些分区是我们需要的
if (line.contains("fat") || line.contains("fuse") || (line.contains("ntfs")))
{
// 将mount命令获取的列表分割,items[0]为设备名,items[1]为挂载路径
String items[] = line.split(" ");
if (items != null && items.length > 1)
{
String path = items[1].toLowerCase(Locale.getDefault());
// 添加一些判断,确保是sd卡,如果是otg等挂载方式,可以具体分析并添加判断条件
if (path != null && path.contains("usb")){
str=items[1];
}
}
}
}
} catch (Exception e)
{
e.printStackTrace();
}
return str;
}
源码就不上传了,没什么东西,上边代码直接复制即可.