BLE 蓝牙低功耗设备中的身份验证问题

Posted

技术标签:

【中文标题】BLE 蓝牙低功耗设备中的身份验证问题【英文标题】:Authentication issue in BLE Bluetooth Low Energy device 【发布时间】:2016-03-16 08:34:38 【问题描述】:

我们正在制作一个带有 BLE 接口的 IOT 设备,该设备使用托管芯片 CC2541 (http://www.ti.com/product/CC2541) 的 HM-11 (http://www.seeedstudio.com/wiki/Bluetooth_V4.0_HM-11_BLE_Module) 分线板。

认证方式设置为2:Auth with PIN

数据表中显示可用身份验证模式的剪辑如下:

63. Query/Set Module Bond Mode Send Receive Parameter AT+TYPE? OK+Get:[para1] None AT+TYPE[para1] OK+Set:[para1] Para1: 0~2 0:Not need PIN Code 1:Auth not need PIN 2:Auth with PIN 3:Auth and bond Default: 0

对于低于 android 5.0 版本的设备,它运行良好。

然而

    对于 Android 5.0 版的设备,配对对话框出现时没有 diaplyed-pin 或 pin-entering-field,当点击 pair 按钮时,它无法配对 - 抱怨

    由于 PIN 或密码不正确,无法与 MyApp 配对。

    对于 Android 5.1 版的设备,它甚至不显示配对对话框并且无法配对。

注意事项:尝试重启设备、忘记设备、清除设备中的绑定信息。

寻找指导、建议、帮助、cmets、代码。

【问题讨论】:

请将您使用的安卓代码发布到Pair。 【参考方案1】:

这是known issue - 许多用户报告了无法在 Android 5.0 中输入密码的问题。它似乎并非在所有设备上都会发生。

其他问题示例:

https://android.stackexchange.com/questions/88011/android-5-bluetooth-pairing-dialog-has-no-passkey-form

https://en.discussions.tomtom.com/mysports-connect-apps-389/pairing-issue-on-nexus-5-android-5-948640

【讨论】:

【参考方案2】:

Ti cc254x 堆栈存在一个已知的前向兼容性错误,使其无法与支持 BLE 4.2 安全功能(LinkKey 交换)的设备配对。此功能已于去年秋天集成到 Bluedroid 中,将成为 Android 6 的主线,并且可能已经被一些供应商合并。该错误已在 Ti cc254x Stack release 1.4.1 中修复,但您的模块固件可能尚未合并修复。

【讨论】:

以上是关于BLE 蓝牙低功耗设备中的身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

Android ble (蓝牙低功耗) 中的坑和技巧

bluetoothctl 不显示蓝牙低功耗 (BLE) 设备

Android 低功耗蓝牙(Ble) 开发总结

低功耗蓝牙Ble的详细使用流程

获得蓝牙低功耗 (BLE) 设备通知的步骤是啥?

低功耗蓝牙(BLE)——概念