我目前正在创建一个分为两个部分的程序,一个是检测附近的蓝牙设备,如果名称匹配的话将它们连接到pc上,另一个是使用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获得设备的地址呢?如果没有,还有其他方法来确保他们是同一台设备吗?
发布于 2019-03-02 17:27:13
Here我发布了代码,如何找到Wiimote连接为HID使用它的MAC。您必须重新编写该代码,以便它可以使用您的HID设备(更改VID和PID)。
https://stackoverflow.com/questions/54960042
复制相似问题