c++ - 窗口 : detect same device on both bluetooth api and setupapi

标签 c++ winapi bluetooth setupapi

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

最佳答案

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

关于c++ - 窗口 : detect same device on both bluetooth api and setupapi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54960042/

相关文章:

c++ - 二维 vector 错误-C++

c++ - 为什么 FindFirstFile/FindNextFile 有时会看到网络文件夹中的文件,而 CopyFile 却看不到?

iphone - iOS 和低功耗蓝牙,有可能吗?

安卓10 : GATT error with 133 - how fix?

c++ - 从模板函数调用的模板类的模板成员函数

c++ - 为什么 cout << set precision(2) << 0.999 的输出是 1 而不是 1.0?

c++ - 如何在C++中重新声明类对象?

windows - 有什么方法可以将 token 设为 "seal",这样子进程就无法继承它了吗?

c++ - Qt如何修改windows系统时间?

iOS 蓝牙 CBCharacteristic UUID 已弃用?