我有一个充当蓝牙LE外设的应用。我有一个有四个特征的服务。 4个中的2个仅读写,其他两个配置为通知。
如果我订阅其中一个“通知”特征,那么在我手动操作之前,应用程序不会断开连接,效果很好。
我的问题是,如果我读取或写入其他特性,然后在大约30秒内处于非活动状态,则BTLE连接将断开与外围设备的连接。这可能是苹果设定的限制,不确定。
任何人都知道一个解决方案,即使在没有任何用户且30秒内没有收到读或写命令的情况下保持外设有效吗?
答案 0 :(得分:1)
这是BLE 4.0规范的副产品。蓝牙低功耗明确设计为不能长时间保持连接,这正是您所描述的。
绕过这个(除了订阅你发现的特性之外)的唯一方法是修改你连接到的外围设备上的BLE堆栈的实现,并删除或延长连接到你的一个点的间隔找到满意的。
虽然这可能无法帮助您,因为BLE通信的双方都会协商这些值,而iOS可能会将最大值设置为低于您要求的阈值。