【蓝牙API】windows10与蓝牙设备自动配对时用的NumericValue是多少?

tdl1001 2019-06-17 11:57:24
Windows提供两种API用于连接蓝牙设备: BluetoothAuthenticateDevice, BluetoothAuthenticateDeviceEx

采用第一种方案,需要用户点击系统弹出信息,且已验证有些系统设置后不会弹出可点击的信息。

第二种方案,可以实现全程自动配对。需要通过BluetoothRegisterForAuthenticationEx注册一个callback供配对时使用,callback函数如下:

BOOL CALLBACK BluetoothAuthCallback(
LPVOID pvParam,
PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS pAuthCallbackParams)
{
BLUETOOTH_AUTHENTICATE_RESPONSE AuthRes;
::ZeroMemory(&AuthRes, sizeof(BLUETOOTH_AUTHENTICATE_RESPONSE));
AuthRes.authMethod = pAuthCallbackParams->authenticationMethod;
AuthRes.bthAddressRemote = pAuthCallbackParams->deviceInfo.Address;
AuthRes.negativeResponse = 0;

if (AuthRes.authMethod == BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON)
{
AuthRes.numericCompInfo.NumericValue = 0;
}

// Send authentication response to authenticate device
DWORD dwRet = BluetoothSendAuthenticationResponseEx(*(HANDLE*)pvParam, &AuthRes);
if (dwRet == ERROR_SUCCESS)
{
}
return TRUE;
}

认证方法一直是BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON, NumericValue尝试过很多(0, 1, pAuthCallbackParams->NumericValue, ...),但返回值dwRet都是1244(ERROR_NOT_AUTHENTICATED)

有人知道这个NumericValue从哪里可以找到?怎么设么?(找不到设备的供应商,但有一个软件是可以自动配对的)
...全文
877 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tdl1001 2019-09-17
  • 打赏
  • 举报
回复
顶,有人知道么?
zgl7903 2019-07-02
  • 打赏
  • 举报
回复
回调传入的参数都点开看看 是否有些什么信息, 没有的话 可能得看提供服务的设备端是怎么设置的
tdl1001 2019-06-21
  • 打赏
  • 举报
回复
请大牛们帮看下。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧