我目前正在创建一个程序,该程序分为两部分,一个是我检测附近的蓝牙设备,如果名称匹配,将它们连接到电脑,另一个是我使用 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 获取设备的地址?如果没有,还有其他方法可以确保它们都是同一个设备吗?