Question

Je développe actuellement Android BLE et rencontre de nombreux problèmes avec les piles Android BLE.

Mon outil de développement est le Samsung Galaxy J avec Android 4.3.

Je veux savoir comment lire une caractéristique du BLE et écrire les caractéristiques (c'est comme si je vérifiais quelles données j'ai reçues, puis j'envoyais d'autres données en utilisant le BLE)

et j’ai de sérieux problèmes pour comprendre comment fonctionnent les callbacks BLE Android, Je ne comprends pas ces 5 fonctions... et le manuel n’est pas clair, quelqu’un de bonne âme peut-il l’expliquer sous une forme simple ???

onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

Ma situation actuelle est la suivante : j'ai réussi à lire les données dans le rappel onCharacteristicChanged(), puis j'ai vérifié la réception des données. J'essaie d'envoyer les données en utilisant

characteristics.setValue(data)
gatt.writeCharacteristic(characteristics)

Mais la pile Android BLE n’appelle pas CharacteristicsWrite() et en fait, Android reste là.

J'essaie de rechercher sur Android BLE sur Google, il n'y a pas beaucoup d'informations et seulement un tas de plaintes sur l'instabilité des piles BLE......

Était-ce utile?

La solution

Chacun du rappel de l'Android Ble a ses fonctions;

OnDescriptorread et OndescriptorWrite

Ceci est utilisé pour écrire / lire les paramètres de configuration du périphérique BLE, certaines manufactures peuvent nécessiter d'envoyer des données au périphérique BLE et de l'acquitter en la lecture, avant de pouvoir vous connecter au périphérique BLE

ONCHARACTERISTICWRITE

Ceci est utilisé pour envoyer des données au périphérique BLE, généralement en mode de données pour le périphérique BLE. Ce rappel est appelé lorsque vous tapez

gatt.writeCharacteristic(characteristics);

ONCHARACTERISTIMRead

Ceci est utilisé pour lire les données du périphérique BLE Le rappel est appelé lorsque vous écrivez ce code

gatt.readCharacteristic(characteristics);

ONCHARACTERISTICCHANGED

Ce rappel est appelé lorsque vous essayez d'envoyer des données à l'aide de WritCharacteristic (caractéristiques) et que le périphérique BLE répond avec une certaine valeur.

Habituellement, un périphérique BLE comporte peu de caractéristiques, pour le rendre simple, je nomme quelques caractéristiques

  • écrire - Caractéristiques de l'écriture
  • lire - CARACTÉRISTIQUES DE LIRE

Pour préciser, lorsque vous envoyez des données, vous devrez utiliser des caractéristiques Ecrire , puis lorsque le périphérique BLE répond à Android app appellera Lecture Caractéristiques

Un point très important à noter est Android Ble Stack vous permet d'écrire des caractéristiques une à la fois seulement !!

Exemple: Si vous essayez d'appeler des caractéristiques d'écriture deux fois à la fois

gatt.writeCharacteristic(characteristics);
gatt.writeCharacteristic(characteristics);

La pile Android Ble n'émettra pas de 2e caractéristiques d'écriture!

Autres conseils

Avant setValue:characteristics.setValue(data) Tu devrais utiliser gatt.setCharacteristicNotification(Char,true) à setNotification.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top