无法捕获iOS BLE通知,didUpdateValueFor不起作用

时间:2019-01-29 08:27:14

标签: ios swift bluetooth-lowenergy

我已经实现了从IOS设备到外围设备设备的连接。 然后,我还实现了这些服务的获取可用的服务特征。 也可以打电话

peripheral.setNotifyValue(true, for: characteristic) or
peripheral.readValue(for: characteristic)

调用peripheral.readValue(for: characteristic)触发器 func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { }并从缓存获取价值。似乎无法在IOS中以编程方式刷新/清除 缓存。因此,每次调用它时,它都会恢复相同的值,直到重新启动应用程序/ BLE不会手动清除缓存

调用peripheral.setNotifyValue(true, for: characteristic)后,它会成功更新外围设备的状态,并调用相同的委托方法

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { } just once.

一直在尝试使用IOS 11和12,iphone X,6 +,6s Plus完成任务。该设备可与Android正常运行,它可以获取价值更新通知。该设备也已通过RxBluetoothKit示例应用程序进行了检查,结果与我的相同(无法获得通知)。

似乎很多人都遇到了同样的麻烦。它可能是Core Bluetooth或IOS版本中的错误,因此它限制了用于通知的Hz范围。

您能否请您分享其他任何想法或解决方案,以解决此问题,以便有可能从外围设备获得通知。以编程方式清除缓存的选项也会有所帮助(有人提到了一些棘手的技巧)。

更新:该设备可用于OSX和MacBook Pro 2014以及BlueSee应用程序,但不能与用于iOS和iPhone 6s Plus的同一BlueSee应用程序一起使用。

0 个答案:

没有答案