首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS中的BLE绑定回调

iOS中的BLE绑定回调
EN

Stack Overflow用户
提问于 2017-01-02 22:27:42
回答 2查看 1.5K关注 0票数 3

我正在尝试连接自动要求焊接(PIN)的从机,问题是,我如何判断是否发生了焊接以及是否成功?

我在文档中找不到任何与此相关的回调。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-01-02 23:00:09

今年早些时候,我们在连接安卓和iOS的硬件方面遇到了类似的问题。不要把这当作你的问题的答案,而是分享你的经验。

如果你也想支持Android并联系BLE硬件的固件开发人员,我会鼓励你不要使用BLE绑定的方法,因为我们在Android上遇到了麻烦。Android设备使用各种不同的蓝牙芯片,这些芯片使用不同的方法进行连接。如果你不介意安卓,下面是你如何让它至少在iOS上工作:

您可以阅读iOS上的特征,尽管您还没有完成焊接过程。您可以做的是注册某个特性的通知/指示,如果绑定成功,则蓝牙外围设备会通知您。

如果您没有适当的通知或指示特征,也没有对外围设备软件的控制,这里有一个替代解决方案,您可以至少知道绑定过程是否有效:尝试读取蓝牙外围设备上的加密特征。在iOS上,如果您没有绑定,这应该是不可能的。您也可以尝试写入一个特征(但如果我没记错的话,如果该特征没有受到保护,您应该可以这样做)。

这些都是我们今年早些时候做的体验,祝你在蓝牙协议上好运。成功之路似乎相当漫长,但最终你会很高兴自己成功了:-)

票数 3
EN

Stack Overflow用户

发布于 2020-05-09 06:08:38

根据我的经验,对于“我们如何知道它是否结合”的问题,答案是

  • it应该会显示在Settings -> Bluetooth -> My devices
  • 下面,它应该是从对CBCentralManager.retrievePeripherals
  • and的调用中返回的。您应该能够重新连接返回的CBPeripheral (通过CentralManager),即使该设备不再播发/处于配对模式。

不管怎样,这就是对我有效的方法。

iOS仅触发与外围设备的绑定在特征上设置了requires-encryption属性,并且您仍然可以通过仅连接到未加密的特征(而不是绑定)来从retrievePeripherals获得结果。但是,如果没有绑定,重新连接尝试将失败(除非它继续通告)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41428650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档