首页 > 解决方案 > Android特性.getValue空数组

问题描述

有时,如果发生 GATT 通知,我尝试通过characteristic.getValue()多次获取特征值,调用突然开始返回一个空数组。

这主要发生在这方面的第一个通知上,而且似乎很随机。

我怎样才能characteristic.getValue()保持一致?

我有一个 Pixel 3;也许这是一个实施问题。

标签: androidbluetooth-lowenergyandroid-bluetoothgattbluetooth-gatt

解决方案


每个通知您应该只调用characteristic.getValue()一次,并将其存储在某个变量中。您不应该在每次需要引用该数据时都调用它。如果您在一次通知后多次调用,它将不起作用。

理想情况下,您使用的是 Google 提供的服务示例,并将通知数据推送到所需活动中的变量。setCharacteristicNotification这将在使用所需特性后自动发生,并且在broadcastUpdate收到通知广播时执行更新。(假设您在应用程序中连接了“管道”)


推荐阅读