网上很多博客说了很多的办法,大多数不是获取的外接U盘,而获取到的是内置SD,可以通过系统mount命令来查找挂载的设备,具体的解决办法如下:
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(new String[] { "/system/bin/sh", "-c", "mount | grep usb |busybox awk '{if($3~/usb/)print $3}'" });
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "GBK");
String line = "";
int loop = 0;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
Log.d(TAG, "loop " + loop + " readLine = " + line);
//此处保存至路径的buffer中供使用
}
这样获取到的是动态挂载在系统的所有USB路径,其中不同的方案商肯awk命令中截取的字段不一样,可以按需修改(即$后的数字)
其中若有读写权限问题,可以查看 https://mp.csdn.net/postedit/80976081