Android характеристика. GetValue пустой массив - PullRequest
0 голосов
/ 09 ноября 2019

Иногда, если происходит уведомление GATT, и я пытаюсь получить значение характеристики через characteristic.getValue() несколько раз, вызов неожиданно начинает возвращать пустой массив.

Это в основном происходит при первом уведомлении вэта связь, и кажется довольно случайной.

Как я могу получить characteristic.getValue(), чтобы быть последовательным?

У меня есть Pixel 3;может быть, это проблема реализации.

1 Ответ

0 голосов
/ 15 ноября 2019

Вы должны вызывать characteristic.getValue() только один раз за уведомление и сохранять его в некоторой переменной. Вы не должны звонить так каждый раз, когда вам нужно ссылаться на эти данные. Если вы звоните по этому номеру несколько раз после одного уведомления, оно не будет работать.

В идеале вы используете пример службы, предоставляемый Google, и отправляете данные уведомления в переменную в желаемом действии. Это произойдет автоматически после использования setCharacteristicNotification на желаемой характеристике, а обновление выполняется в broadcastUpdate при получении широковещательной рассылки уведомлений. (Предполагая, что вы подключаете «сантехнику» в своем приложении)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...