有时,如果发生GATT通知,并且我尝试多次通过characteristic.getValue()
获取特征值,则该调用突然开始返回一个空数组。
这主要发生在该连接的第一个通知上,并且似乎是非常随机的。
我如何使characteristic.getValue()
保持一致?
我有一个Pixel 3;也许这是一个实施问题。
每个通知仅应调用characteristic.getValue()
一次,并将其存储在某个变量中。您不应该在每次需要引用该数据时都调用它。如果您在收到单个通知后多次致电,它将无法正常工作。
理想情况下,您正在使用Google提供的服务示例,并将通知数据推送到所需活动中的变量。在所需特性上使用setCharacteristicNotification
后,这将自动发生,并且每当接收到通知广播时,都会在broadcastUpdate
中执行更新。 (假设您在应用程序中连接了“管道”)