您好!
我在尝试从 iPhone (中央)修复到外设时遇到问题。 从外设中删除 iPhone 后、iPhone 无法连接到外设。 断开连接后、我将移除远程 iPhone 设备。 iPhone 仍然具有外设(WL1835MOD)信息(在设置->蓝牙->我的设备中)。 但外设(WL1835MOD)已擦除 iPhone 器件。 当尝试重新连接时、它会自动断开连接。
我希望实现以下目标:
1.在外设上只接受一个配对的器件(WL1835MOD)
2.当另一个设备与外设配对时、移除外设上先前配对的设备(WL1835MOD)
这是我的设置:
WL1835MOD (外设)
Apple iPhone 7 iOS 13.4.1 (中央)
我使用的是 bluetopia GATM 服务器示例、这是我配置外设的方法:
/SS1BTPM 和
/LinuxGATM_SRV
初始化1
SetDevicePower 1.
DeleteRemoteDevices 0 (确保远程设备列表为空)
注册器身份验证1.
注册表 GATTCallback 1.
ChangeLEPairingParameters 1 1 1 0 0 0
I/O 功能:1 =显示是/否
粘合类型:1 =粘合
MIPTM 要求:1 =是
SC 使能:0 =否
P256DebugMode:0 =否
OOB 支持:0 =否
按键:0 =否
EnableSCOnly 0
RegisterService 0 (注册样本中的第一个服务。 第一个特征包含一个 GATM_SECURITY_PROPERTIFITY_Authenticated、encryption_write、它将在中央触发配对请求)。
StartAdvertising 0x36 1234
0x00000002 -可发现
0x00000004 -可连接
0x00000010 -广告名称
0x00000020 -通告 Tx 电源
在 iPhone 上、我使用 NRF Connect 或 BLE Hero 连接到 WL1835MOD 器件。
连接后、我将写入第一个特征以触发配对请求。 我在 iPhone 上输入 PIN、配对成功。 我等待几秒钟、然后在 iPhone 上断开连接。
在 WL1835MOD 上、我将执行以下操作:
删除 RemoteDevices 0 ,以便删除所有远程设备
然后、我再次开始广播:
StartAdvertising 0x36 1234
在 iPhone 上、我仍将 WL1835MOD 器件保存在 Settings -> Bluetooth -> My devices 中
然后、我尝试连接到外设、我在 iPhone 上收到此错误:
ConnectionAttempFled ErrorDomain=CBATTErrorDomain Code=14 "Peer removed pairing information"
我已将调试日志保存为 FTS 文件格式、并使用 Wireshark 打开该日志、这就是我在尝试重新连接时获得的结果:
如您所见、WL1835Mod 不再具有 LE 长期密钥、iPhone 无法连接到外设。 我不希望用户转到 iPhone 设置、要求他选择设备并执行"忘记此设备"操作。
我对多台 Android 手机执行了相同的测试、但我没有遇到此问题。
我想知道这一问题对于 iPhone 是否正常、如何解决? 谢谢你。
