You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows 10新版本BLE配对异常:同型号不同MAC设备无法先后连接

Windows 10 BLE多设备配对问题分析与解决方案

问题原因分析

Windows 10 Build 18363(1809版本)及后续更新(如19042、19045)调整了BLE设备配对缓存的关联逻辑:

  • 旧版本(15063、17134)严格基于MAC地址区分设备并存储配对密钥
  • 新版本为优化用户体验,改为优先通过设备名称、服务UUID集合识别设备,当两台设备的名称、服务完全一致时,Windows会错误地将第一台设备的配对密钥复用给第二台,导致认证失败

这种逻辑忽略了同硬件、不同静态MAC的设备场景,是导致问题的核心原因。

绕过方案

1. 差异化设备标识

给两台设备设置唯一的广播名称(修改TI协议栈中的GAP_DEVICE_NAME参数),Windows会将其识别为独立设备,避免密钥复用。这是最直接的解决方案。

2. 自定义配对密钥逻辑

在TI CC2652R7的BLE协议栈中配置每台设备使用唯一的身份验证参数:

  • 为每台设备生成独立的IRK(身份解析密钥),在GAPBondMgr_Config中指定不同的密钥存储区域
  • 开启配对过程中的随机数挑战(Random Number Challenge),强制Windows为每台设备生成专属配对密钥

3. 禁用Windows配对缓存(临时应急)

通过注册表修改禁用BLE配对缓存:

  1. 打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters
  2. 添加DWORD类型值DisablePairingCache,设置值为1
  3. 重启蓝牙服务或系统

4. 应用层强制重新配对

在Windows应用中添加配对校验逻辑:

  • 调用BluetoothLEDevice.FromIdAsync获取目标设备对象
  • 检查设备配对状态,若存在非目标设备的旧配对记录,调用DeviceInformation.Pairing.UnpairAsync()解除配对
  • 重新发起配对与连接请求

5. 调整TI协议栈安全模式

启用TI协议栈的SECURITY_MODE_ENCRYPTION_NO_MITM模式,或修改配对密钥生成规则,确保每台设备的配对密钥唯一,即使Windows复用缓存也能通过认证。

内容的提问来源于stack exchange,提问作者никита богатов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:22:46