Frage

Ich entwickle derzeit Android BLE und stoße auf viele Probleme mit den Android BLE-Stacks..

Mein Entwicklungstool ist Samsung Galaxy J mit Android 4.3.

Ich möchte wissen, wie ich ein Merkmal aus der BLE lesen und die Merkmale schreiben kann (als würde ich überprüfen, welche Daten ich erhalten habe, und dann sende ich weitere Daten mit der BLE)

und ich habe ernsthafte Probleme zu verstehen, wie die Android BLE-Rückrufe funktionieren, Ich verstehe diese 5 Funktionen nicht...und das Handbuch ist nicht klar, kann jemand gute Seele in einfacher Form erklären???

onCharacteristicWrite
onCharacteristicRead
onCharacteristicChanged
onDescriptorRead
onDescriptorWrite

Meine aktuelle Situation ist, dass ich es geschafft habe, die Daten im onCharacteristicChanged () -Rückruf zu lesen und dann die empfangenen Daten überprüft habe, mit denen ich versuche, die Daten zu senden

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

Aber der Android-BLE-Stack ruft onCharacteristicsWrite () nicht auf und tatsächlich hängt Android einfach dort..

Ich versuche über Android BLE zu googeln, es gibt nicht viele Informationen und nur eine Menge Beschwerden darüber, wie instabil die BLE-Stacks sind......

War es hilfreich?

Lösung

Jeder der Rückruf von dem Android BLE hat seine Funktionen;

OndescriptorRead und OnDescriptorwrite

Hiermit wird verwendet, um die Konfigurationseinstellungen für das BLE-Gerät zu schreiben / zu lesen, einige Hersteller müssen möglicherweise möglicherweise Daten an das BLE-Gerät senden und an das Lesen anerkennen, bevor Sie sich mit dem BLE-Gerät anschließen

Oncharakteristikwrite

Dies wird verwendet, um Daten an das BLE-Gerät zu senden, normalerweise im Datenmodus für das BLE-Gerät. Dieser Rückruf wird aufgerufen, wenn Sie eingeben

generasacodicetagpre.

oncharacteristicRead

Hiermit wird Daten aus dem BLE-Gerät gelesen Der Rückruf wird aufgerufen, wenn Sie diesen Code schreiben

generasacodicetagpre.

oncharacteristicchanged

Dieser Rückruf wird aufgerufen, wenn Sie versuchen, Daten mithilfe von Writecharacteristic (Merkmale) zu senden, und das BLE-Gerät reagiert mit einem bestimmten Wert.

In der Regel hat ein BLE-Gerät nur wenige Eigenschaften, um es einfach zu machen, ich nenne ein paar Eigenschaften

  • schreiben - Schreibmerkmale
  • lesen - Lesemerkmale

Um es zu löschen, wenn Sie Daten senden, müssen Sie schreibe charakteristiken verwenden, und wenn das BLE-Gerät antwortet, dass Android-App Lesen Eigenschaften annimmt .

Ein sehr wichtiger Punkt auf Note ist Android BLE-Stapel ermöglicht es Ihnen, Eigenschaften einzeln zu schreiben !!

Beispiel: Wenn Sie versuchen, die Schreibeigenschaften zweimal gleichzeitig anzurufen

generasacodicetagpre.

Der Android BLE-Stack gibt nicht die 2. Schreibeigenschaften aus!

Andere Tipps

Vor setValue:characteristics.setValue(data) sie sollten verwenden gatt.setCharacteristicNotification(Char,true) zu setNotification.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top