我在发现服务时遇到了一些问题。
它似乎连接到安卓没有太多问题,但在iOS上连接失败。从运行连接的测试来看,服务似乎没有被发现。在示例或文档中,我没有看到任何关于连接上的这个问题服务发现的信息。这是因为gatt服务的开发人员给了我一个新服务的更新,所以我不得不将ipad设置为飞机模式,有没有编程上的解决方案?
有人有什么建议吗?
发布于 2021-03-17 13:58:58
听起来您在发现新添加的BLE服务时遇到了问题。这很可能是由iOS缓存设备信息引起的。为此,您应该使用Service Changed特性。
根据Bluetooth Core specification,版本5.2,卷3,部分G,7定义的通用属性简档服务,服务改变的特征是
如果可以添加、更改或删除服务器上的服务定义,则
为必填;否则为可选
苹果公司的Accessory Design Guide还声明:
仅当附件有能力在其生命周期内更改其服务时,附件才应实施服务更改特征。该设备可以使用服务改变特性来确定它是否可以依赖于先前从该设备读取(缓存)的信息。参见蓝牙4.0规范,卷3,部分G,7.1节。
发布于 2021-09-01 14:08:59
几天后,我找到了解决方案,你应该像这样发现你的外围设备,
print("peripheral peripheral.name \(advertisementData)")
guard let nameAdvertisementData = advertisementData["kCBAdvDataLocalName"] as? String else {
return
}https://stackoverflow.com/questions/66656982
复制相似问题