watchOS是否支持BLE配对的Passkey输入?及相关安全模式咨询
关于watchOS与nRF52 BLE外设配对的安全模式问题
我开发了一款独立Apple Watch应用,用于和nRF52 BLE外设(MeshCore,基于S140 SoftDevice,使用Bluefruit BLE库,无显示屏和键盘)通信。
外设原有安全配置代码如下:
Bluefruit.Security.setMITM(true); Bluefruit.Security.setPIN(charpin); Bluefruit.Security.setIOCaps(true, false, false); Bluefruit.Security.setPairPasskeyCallback(onPairingPasskey); Bluefruit.Security.setPairCompleteCallback(onPairingComplete); Bluefruit.Periph.setConnectCallback(onConnect); Bluefruit.Periph.setDisconnectCallback(onDisconnect); Bluefruit.Security.setSecuredCallback(onSecured); Bluefruit.setEventCallback(onBLEEvent); bleuart.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); bleuart.begin(); bleuart.setRxCallback(onBleUartRX);
在macOS和iOS系统首次连接时,系统会弹出提示输入6位密钥(外设固件中设为123456),应用能成功与外设通信。但在watchOS 10.6的初代SE手表上,配对提示仅显示“配对”和“取消”选项;点击“配对”后提示关闭,后续读写特征值操作失败。
若禁用MITM(.setMITM(false))并将特征权限设为无需加密或MITM(SECMODE_OPEN),Watch应用可正常通信,由此排除应用BUG的可能。
现咨询:
- watchOS是否不支持Passkey输入?
- watchOS支持哪些安全模式?
- Bluefruit库是否支持这些模式?
内容的提问来源于stack exchange,提问作者Ferdia McKeogh
相关产品推荐
相关产品推荐

