Как правильно читать характеристики 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-устройства.

Другие вопросы по тегам