gpt4 book ai didi

android - 如何列出 USB OTG 设备上的文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:53:11 25 4
gpt4 key购买 nike

我知道如何做以下事情:

  • 监听usb设备的attach和detach事件
  • 获取所有连接的设备
  • 获取设备权限

所以最后我有一个 UsbDevice 并且我有读/写它的权限。如何从这里继续?

我可以打开设备并获得如下所示的 FileDescriptor:

 UsbManager manager = (UsbManager) activity.getSystemService(Context.USB_SERVICE);
UsbInterface intf = device.getInterface(0);
UsbEndpoint endpoint = intf.getEndpoint(0);
UsbDeviceConnection connection = manager.openDevice(device);
boolean interfaceClaimed = connection.claimInterface(intf, true);
int fileDescriptor = connection.getFileDescriptor();

我现在如何使用这个 FileDescriptor?或者我还能如何访问 USB 设备上的文件?

编辑

  • android <6 的解决方案:不要打开 UsbDeviceConnection 并尝试查找 USB 设备路径。尽管如此,您仍然无法区分多个 USB 设备并且不知道哪个路径属于哪个设备...

  • Android >= 6 的解决方案:使用存储访问框架,实际上我还不知道它是如何工作的...

最佳答案

因为我和你一样难过,所以我会选择使用 ls 命令。

代码示例:

try {
Process process = Runtime.getRuntime().exec("ls /storage/UsbDriveA");
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String listOfFiles = "";
String line;
while ((line = buffer.readLine()) != null) {
listOfFiles += line;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
如果挂载点不正确,

ls 将返回 no such file or directory

以下是制造商使用的许多挂载点的列表:

/storage/UsbDriveA     (all Samsung devices)
/storage/USBstorage1 (LG G4, V10, G3, G2, other LG devices)
/storage/usbdisk (Moto Maxx, Turbo 2, Moto X Pure, other Motorola devices)
/storage/usbotg (Sony Xperia devices, Lenovo Tabs)
/storage/UDiskA (Oppo devices)
/storage/usb-storage (Acer Iconia Tabs)
/storage/usbcard (Dell Venue -- Vanilla Android 4.3 tablet)
/storage/usb (HTC One M7, and some Vanilla Android devices)

(基于我收集的设备和其他 3 个人的设备,以及快速访问 Bestbuy 以测试最新的旗舰产品。我知道我唯一缺少的流行设备是位于中国的 Hawuei/Xioami 设备,它们正在变得流行在英语国家,但他们可能使用上述之一。)

要找到正确的挂载点,您需要监听 no such file or directory 并使用下一个挂载点循环/重新执行 exec() 语句。

完成所有这些后,您可以使用 cat/storage/.../file.txt 轻松读取文件,并使用重定向写入:echo test >/storage/。 ../文件.txt

希望对你有帮助

关于android - 如何列出 USB OTG 设备上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com