Quelle est la méthode appropriée pour lire une caractéristique de GATT dans Android?
-
21-12-2019 - |
Question
En essayant de lire la valeur d'une caractéristique de GATT Bluetooth à basse énergie Bluetooth dans l'API Android 18, j'ai rencontré le dilemme suivant: quel est le moyen approprié de récupérer la valeur stockée dans une caractéristique?Et à quel niveau de la pile si cette action a lieu?
Dans la conduite de mes propres recherches, je suis tombé sur ce que je crois comprendre sont deux méthodes possibles:
-
Bluetoothgatt .ReadCharacteristic (Caractéristiques BluetoothGattCharacteristic) -
BluetoothGattCharacteristic .gevalue ()
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); }
ci-dessus est le code d'origine qui m'a conduit à ce problème.En cela, j'essaie de lire la valeur d'une caractéristique et de basculer simplement son état à l'aide d'un bouton.
La solution
BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic characteristic)
Cette fonction met à jour votre objet BluetoothGattCharacteristic (sur votre appareil Android) à l'aide de la valeur caractéristique du Bluetooth.
BluetoothGattCharacteristic.getValue()
Cette fonction n'est qu'une fonction getter de l'objet BluetoothGattCharacteristic.Il n'y a aucune transaction entre Android et le périphérique Bluetooth.