我目前正在构建一个 Android 应用程序和 SDK 以连接到自定义 BLE 板。安卓端预计是外设,我的板子是主控。在 Android 端创建 GATT-Server 已经完成,我可以毫无问题地连接和配对我的电路板。如果我只接受主端的所有传入连接参数更新并且不发送新参数,则大多数手机上的连接都是稳定的。
我现在发现的问题是,在具有高通蓝牙解决方案的手机上,高通芯片将通过将“首选周期”发送为 0 来请求“无效”连接参数。这会导致连接断开并每 30 秒重新连接一次。
我认为这是高通方面的一个错误,因为只有当 'Interval Min' 和 'Interval Max' 相同时,'Preferred Periodicity' 才应该为 0。如果“Interval Min”与“Interval Max”不同,“Preferred Periodicity”不应为 0。我设备中内置的 QCOM 解决方案违反了导致断开连接的规则。
另一款采用 Broadcom 蓝牙解决方案的 Android 手机也要求“首选周期”为 0,但具有相同的“最小间隔”和“最大间隔”,正常工作。
有人知道是否可能以及如何避免电路板端的连接断开,或者我是否可以在 Android 端做些什么来防止连接参数一起更新?
提前致谢!