如何在android中安装USB路径?
我正在使用android tab如何在android中安装USB路径?,android,usb,mount,Android,Usb,Mount,我正在使用android tab冰淇淋三明治4.0.3版来运行我的应用程序。我正在连接外部USB设备和android选项卡。如何以编程方式挂载外部USB设备的路径。因为我需要从USB设备浏览文件到android选项卡 那么如何在android中安装USB路径呢?我同意 您可以查看存储设置。装载路径似乎就在那里(例如,/mnt/usbdisk_1.0/)。此外,您可能只需查看/mnt中列出的内容;我相信这就是各种文件管理器应用程序所做的。USB驱动器似乎有许多安装点;尚未装入的文件显示为空,而装入
冰淇淋三明治
4.0.3版来运行我的应用程序。我正在连接外部USB设备和android选项卡。如何以编程方式挂载外部USB设备的路径。因为我需要从USB设备浏览文件到android选项卡
那么如何在android中安装USB路径呢?我同意
您可以查看存储设置。装载路径似乎就在那里(例如,/mnt/usbdisk_1.0/)。此外,您可能只需查看/mnt中列出的内容;我相信这就是各种文件管理器应用程序所做的。USB驱动器似乎有许多安装点;尚未装入的文件显示为空,而装入的文件允许您浏览(使用类似Astro的文件浏览器应用程序)
通过。
这取决于您的设备制造商,因为android只有Environment.getExternalStorageDirectory()概念。谢谢。我同意这取决于设备。但我需要一个解决方案。这只适用于供应商扩展了安卓系统并具有非标准能力来装载USB存储卷的设备。Android股票在操作系统级别不支持USB驱动器。如果库存设备具有主机模式,则可以使用应用程序本身中实现的大容量存储和文件系统代码在较低级别与驱动器通信,但您只能依靠自己,操作系统的文件系统功能无法提供任何帮助。感谢您提供的代码,我将其用作备用,我首先检查文件是否“proc/mounts”是存在的,我读它,如果没有,那么我通过这个脚本读它。我们不应该依赖于“fat”或“vfat”,新设备有时将“fuse”作为分区类型,它的大脚本检测分区,但它们以“/dev/”开头,可能是vfat或fuse,并且您可能有到同一分区的重复路径,请注意这一点。
private String getAllStoragePath() {
String finalPath = "";
try {
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mount");
InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
String line;
String[] pathArray = new String[4];
int i = 0;
BufferedReader br = new BufferedReader(inputStreamReader);
while ((line = br.readLine()) != null) {
String mount = "";
if (line.contains("secure"))
continue;
if (line.contains("asec"))
continue;
if (line.contains("fat")) {// TF card
String columns[] = line.split(" ");
if (columns.length > 1) {
mount = mount.concat(columns[1] + "/someFiles");
pathArray[i++] = mount;
// check directory inputStream exist or not
File dir = new File(mount);
if (dir.exists() && dir.isDirectory()) {
// do something here
finalPath = mount;
break;
}
}
}
}
for(String path:pathArray){
if(path!=null){
finalPath =finalPath + path +"\n";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return finalPath;
}