This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2541:在 Android 上请求密钥但在 IOS 上不请求密钥的配对

Guru**** 2779905 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1074404/cc2541-pairing-requesting-for-passkey-on-android-but-not-on-ios

部件号:CC2541

运行 BLE-CC254x-1.5.2.0中的 TimeApp 示例会在 Android 上生成密钥弹出对话框(Nexus 7 Android 6.0.1 和 GalaxyXcover3 Android 5.1.1)

但在 IOS 上,它只要求配对权限。

以下是(原始)配对设置:
//默认密码
#define default_passcode 19655

//默认缝隙配对模式
#define default_pairing_mode GAPBOND_pairing_mode_initiate

//默认 MItTM 模式(配对时需要密码或 OOB 为真)
#define default_MITM_mode false

//默认绑定模式,真切为绑定
#define default_bonding_mode true

//默认缝隙接合 I/O 功能
#define default_io_Capabilities GAPBOND_IO_CAP_DISPLAY_ONOnly

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    密钥弹出窗口是一种中间人 (MITM)保护的形式。 如果您希望密码出现在 iOS 上,我会将  default_MITM_mode 更改为 true。 您使用的智能手机的安全设置似乎取决于操作系统和版本。 我以前也见过类似的行为,其中有一种需要对等位数进行比较的异位数,但 iPhone 会自动配对。

    最佳

    不会

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的,我启用了 MITM,并在 timeAppPasscodedCB()函数中将密码显式设置为1234。

    然后,我从 IOS 连接,输入代码并连接。 在 Android 上,我收到:"由于 PIN 或密钥不正确,无法与 TimeApp 配对"。 使用 BLE-CC254x-1.4.0时出现相同的错误。

    我 现在正在使用 BLE-CC254x-1.5.2.0,但错误相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有趣——你甚至会收到输入密码的提示吗?

    如果没有 ,那么您的已与 CC 设备配对的 Android 手机可能会识别它并尝试使用与以前相同的凭据与其配对,即使您已在 CC 设备上更改了它们。 您能否按照此链接中的说明重置 Android 设备上的 BLE 设置并重试?

    https://joyofandroid.com/android-couldnt-pair-because-of-incorrect-pin/

    最佳

    不会

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    系统提示我输入密钥,但始终收到错误的密钥错误。

    我的蓝牙列表中没有绑定的设备,因此我无法像链接中那样"解除绑定":我的 Android 没有链接中的蓝牙共享,因此我无法清除缓存。 我确实有 NRF Connect,我已清除应用程序数据和缓存。

    e2e.ti.com/.../TimeApp.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在这种情况下,我建议调试您的应用程序或使用数据包嗅探器来了解 Android 发送的内容 以及它无法配对的原因。 如果您有要讨论的代码片段,欢迎您发布,但 我们不会在 E2E 平台上查看整个项目。

    我也只看到了6位数的密钥。 如果更改到123456需要6位数字,但您只需要指定4位数字,则可能可以解决问题。

    最佳

    不会

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将尝试检查与嗅探器的通信。

    如果从 IOS 设备发送,主板将接受4位数字,那么6/4位数字的概念听起来很奇怪。 但我不知道有蟑螂。

    我的应用程序是 BLE-CC254x-1.5.2.0中的原始 TimeApp 示例 。 我在没有液晶屏和键盘的主板上运行它,并在初始化时开始广告。

    其余的没有变化。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    听起来像是一个好计划! 当你取得成果时,请告诉我。