Как правильно читать характеристики GATT в Android?
При попытке прочитать значение характеристики низкоэнергетического Bluetooth GATT в Android API 18 я столкнулся со следующей дилеммой: как правильно извлечь значение, сохраненное в характеристике? И на каком уровне стека должно происходить это действие?
Проводя собственное исследование, я наткнулся на два возможных метода:
- BluetoothGatt.readCharacteristic (BluetoothGattCharacteristic характеристика)
BluetoothGattCharacteristic.getValue ()
public void onClick(View v){ byteValue = mBTValueCharacteristic.getValue(); if ((byteValue[0] & 0x01) == 1) byteValue[0] = 0x00; else byteValue[0] = 0x01; mBTValueCharacteristic.setValue(byteValue); mBTGatt.writeCharacteristic(mBTValueCharacteristic); }
Выше приведен оригинальный код, который привел меня к этой проблеме. В нем я пытаюсь прочитать значение характеристики и просто переключаю ее состояние с помощью кнопки.
1 ответ
BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic characteristic)
Эта функция обновляет ваш объект BluetoothGattCharacteristic (на вашем устройстве Android) с использованием значения характеристики из Bluetooth .
BluetoothGattCharacteristic.getValue()
Эта функция является просто функцией получения объекта BluetoothGattCharacteristic. Там нет никакой транзакции между Android и Bluetooth-устройства.