我正在尝试将安卓手机连接到 USB 设备,以便从设备中读取文件。手机有 USB 主机 (Galaxy S4),我使用的是 USB OTG 电缆。我注意到当我连接拇指驱动器时,设备变得可见,我可以在 Astro 文件管理器中浏览它的文件。我还可以通过编程方式访问其内容:
File f = new File("/storage/UsbDriveA/");
String[] files = f.list();
for (String s : files) {
logger.d("File name: " + s);
}
但是,对于其他 USB 设备,我无法在 Astro 文件管理器中看到它或以编程方式访问它。我使用 USB Device Info 来比较两个 USB 设备的配置文件。两者都是大容量存储设备并具有相似的配置文件。以下是比较两个配置文件的几个屏幕截图:
此外,在使用 UsbManager 的 getDeviceList 时,这两个设备都是可见的。但是,我不知道 UsbDeviceCommunication 是否是我正在寻找的。它用于发送和接收消息,而我只需要抓取一个文件。
所以,我有两个问题:
导致拇指驱动器可访问而另一个被隐藏的两个 USB 设备有什么不同?
我是否正确认为 UsbDeviceCommunication 不是我想要的?如果是,我如何使用它来读取特定文件?