Android查找已插入USB媒体的路径

时间:2016-02-02 10:19:46

标签: android android-external-storage

我的设备有两条路径,指向设备/ storage / udisk /和/ storage / udisk2 /上的两个USB端口。我想以编程方式找到这些路径。我可以在插入设备时通过广播接收器找到,但这对于已经在启动时插入的设备不起作用。是否有可以访问的设备数据库?

Environment.getExternalStorageDirectory()仅返回SDCard的路径,而不是插入的USB设备。

3 个答案:

答案 0 :(得分:0)

我也在努力解决同样的问题。似乎不同的制造商有不同的USB路径。

大多数情况下,USB驱动器的实际路径位于 / mnt / media_rw / (例如/ mnt / media_rw / usbotg),链接路径位于 / storage / 下(例如/ storage / usbotg)。但是,这并不总是发生。我已经测试了3个不同的品牌,并找出以下内容:

  • Lenovo Tab2 A10-30有/ storage / usbotg作为USB的链接 存储。
  • Nexus 9没有显示与usb相关的路径。
  • 三星手机通常命名路径/存储/ UsbDiskA, / storage / UsbDiskB,... / storage / UsbDiskF。

当您使用ADB shell命令" cat / proc / mounts"时,您会发现插入USB磁盘后可能会有一些差异。在我的联想平板电脑中,它添加了以下两个新行:

  

/ dev / block / vold / 8:1 / mnt / media_rw / usbotg vfat   RW,目录同步,为nosuid,nodev,NOEXEC,relatime,UID = 1023,GID = 1023,fmask = 0007,DMASK = 0007,allow_utime = 0020,CODEPAGE = 437,iocharset = ISO8859-1,短名称=混合,UTF8,误差=重新挂载-RO   0 0 / dev / fuse / storage / usbotg保险丝   RW,为nosuid,nodev,NOEXEC,relatime,USER_ID = 1023,GROUP_ID = 1023,default_permissions,allow_other   0 0

答案 1 :(得分:0)

重复Path of OTG in Android device

答案显示了如何列出USB OTG设备及其各自的路径。它回答了OP的问题:"我想以编程方式找到这些路径"。

我已经使用了答案的github链接来弄清楚如何以编程方式找到这些路径。

FWIW,所有信息都是从/ sys / bus / usb / devices /收集的。在github库中执行过滤掉非OTG设备的要点。

答案 2 :(得分:0)

使用USB https://github.com/magnusja/libaums

时,开源库 libaums 会有很大帮助