我知道如何做以下事情:
- 监听 USB 设备的附加和分离事件
- 获取所有连接的设备
- 获取设备权限
所以最后我有一个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 的解决方案:不要打开 a
UsbDeviceConnection
并尝试查找 USB 设备路径。尽管如此,您仍然无法区分多个USB设备并且不知道哪个路径属于哪个设备......android >= 6 的解决方案:使用存储访问框架,实际上我还不知道它是如何工作的......