【问题标题】:How to receive messages from a usb device如何从 USB 设备接收消息
【发布时间】:2015-12-03 17:23:55
【问题描述】:

我有一个连接到 Android 的 USB 设备,当我按下按钮(位于 USB 设备上)时,它会发送一个“S”字符串。我怎样才能检测到这样的字符串?

当我将 USB 设备连接到 Windows 并打开任何文本编辑器(例如 notepad++)并按下按钮时,会出现“S”字符串。

我已成功连接到相机设备并将其打开。但是有什么方法可以通过接收字符串'S'来检测何时按下按钮。

【问题讨论】:

  • 验证设备(键盘 - USB HID)是否能够枚举并与 Android 通信。
  • 我认为这里没有魔法......你需要实现一段代码来从 USB 设备接收数据:)
  • @Hector 我不想只从 USB 设备读取数据。我想在按下按钮时收到它的消息。因此,bulkTransfer 不起作用。我已经试过了。 USB 设备仅在按下按钮时发送字符串。

标签: java android usb external


【解决方案1】:

来自文档:USB Host

USB SERVICE 包含一个用于隔离所有 USB 操作的服务。这是一个从串口读取的示例代码:

String YOUR_DEVICE_NAME;
byte[] DATA;
int TIMEOUT;

USBManager manager = getApplicationContext().getSystemService(Context.USB_SERVICE);
Map<String, USBDevice> devices = manager.getDeviceList();
USBDevice mDevice = devices.get(YOUR_DEVICE_NAME);
USBDeviceConnection connection = manager.openDevice(mDevice);
USBEndpoint endpoint = device.getInterface(0).getEndpoint(0);

connection.claimInterface(device.getInterface(0), true);
connection.bulkTransfer(endpoint, DATA, DATA.length, TIMEOUT);

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多