2012-06-25 105 views
4

我正在使用android标签Ice Cream Sandwich版本4.0.3来运行我的应用程序。我连接外部USB设备和Android Tab。如何以编程方式装载外部USB设备的路径。因为我需要从USB设备浏览文件到我的android选项卡。如何在Android中安装USB路径?

那么如何在Android中安装USB路径?

+0

它取决于你的设备制造商,由于Android只有** Environment.getExternalStorageDirectory()**的概念。 – user370305

+0

谢谢。我同意这取决于设备。但我需要解决方案。 – Jahir

回答

1

我同意user370305

您可以查看存储设置。装载路径似乎在那里(例如/mnt/usbdisk_1.0/)。此外,您可能只需查看/ mnt并查看列出的内容;我相信这是各种文件管理器应用程序的功能。 USB驱动器似乎有许多安装点;那些尚未安装的显示为空,而安装的则允许您浏览它们(使用像Astro这样的文件浏览器应用程序)。

经过this link

+0

这只适用于供应商通过**非标准**功能扩展Android以安装USB存储卷的设备。 ** Stock Android在操作系统级别不支持USB驱动器**。如果库存设备具有主机模式,则可以使用应用程序本身实现的大容量存储和文件系统代码以较低的级别与驱动器进行通信,但无法从操作系统的文件系统功能中获得帮助,因此您可以独立运行。 –

1

already given answer check Android detect usb mount point path

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; 
} 
+0

感谢您的代码,我用它作为后备,我首先检查一个文件“proc/mounts”是否存在,然后我读取它,如果没有,那么我通过这个脚本读取它。我们不应该依赖于“胖”或“vfat”的新设备有时将“熔断”为分区类型,它的大脚本检测分区,但是它们以“/ dev /”开头,可能是vfat或fuse,并且可能有重复路径到相同的分区,o要小心。 – Diljeet