1

我目前正在创建一个程序,该程序分为两部分,一个是我检测附近的蓝牙设备,如果名称匹配,将它们连接到电脑,另一个是我使用 setupapi 搜索设备并获取 HID 通信句柄。
我的问题是我找不到任何东西告诉我我刚刚连接的设备与我在 setupapi 中找到的设备相同。
所以在第一部分我有这样的事情:

BLUETOOTH_DEVICE_INFO btdi;
//--- Code omitted ---
BluetoothGetDeviceInfo(radio_handle, &btdi);
if(std::wstring(btdi.szName) == /*my name*/)
    // Device found! now connect
    BluetoothSetServiceState(radio_handle, &btdi, &HumanInterfaceDeviceServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE);

以及setupapi相关代码:

SP_DEVICE_INTERFACE_DATA device_data;
device_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
//--- Code omitted ---
SetupDiEnumDeviceInterfaces(device_infos, NULL, &hid_guid, index, &device_data);

我正在考虑使用设备的蓝牙地址,但似乎没有办法从 setupapi 获取。
那么,回顾一下,有没有办法从 setupi 获取设备的地址?如果没有,还有其他方法可以确保它们都是同一个设备吗?

4

1 回答 1

1

在这里,我发布了如何使用其 MAC 查找作为 HID 连接的 Wiimote 的代码。您必须重新编写该代码,以便它可以使用您的 HID 设备(更改 VID 和 PID)。

于 2019-03-02T17:27:13.310 回答