我的设备有两条路径,指向设备/ storage / udisk /和/ storage / udisk2 /上的两个USB端口。我想以编程方式找到这些路径。我可以在插入设备时通过广播接收器找到,但这对于已经在启动时插入的设备不起作用。是否有可以访问的设备数据库?
Environment.getExternalStorageDirectory()仅返回SDCard的路径,而不是插入的USB设备。
答案 0 :(得分:0)
我也在努力解决同样的问题。似乎不同的制造商有不同的USB路径。
大多数情况下,USB驱动器的实际路径位于 / mnt / media_rw / (例如/ mnt / media_rw / usbotg),链接路径位于 / storage / 下(例如/ storage / usbotg)。但是,这并不总是发生。我已经测试了3个不同的品牌,并找出以下内容:
当您使用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)