2016-07-26 15 views
0

Wir versuchen, bestehende App mit Ihrem Rahmen zu aktualisieren, andere Dinge arbeiten gut wie Verbindung/lesen/schreiben aber wir stehen vor Probleme mit Meldung/DisconnectAusgabe mit Informationen und Trennen

Können Sie bitte für folgende Szenarien führen : -

  1. Benötigen Sie zur Abschaltung Rückruf
  2. Mitteilung nicht arbeiten wir keine Benachrichtigung Benachrichtigung
  3. erhalten
  4. gibt es eine Methode zu überprüfen Eigenschaften der Geräte nicht in der Lage sind, wie wir differen haben t-Geräte und einige Merkmale in allen Geräten vorhanden sind, wenn wir versuchen, nicht vorhanden chacraterstics auf Geräten lesen/schreiben, wirft es Ausnahme und App-Abstürze

Code: -

connection.writeDescriptor(
    Defs.SVC_AUTOMATIONIO_UUID, 
    Defs.CHAR_AUTOMATION_IO, 
    Defs.DESC_CLIENT_CHAR_CONFIGURATION_UUID, 
    BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE 
) 
    .subscribe(
     this::onWriteSuccess, 
     this::onWriteFailure 
    ); 

connection.setupNotification(iCharUuid) 
    .flatMap(notificationObservable -> notificationObservable) 
    .subscribe(
     this::onNotificationReceived, 
     this::onConnectionFailure 
    ); 

Dank Swayam

Antwort

0

Im Allgemeinen müssen Sie den Deskriptor nicht manuell schreiben, um Benachrichtigungen zu aktivieren. Die Bibliothek macht das für Sie.

Versuchen: (example)

rxBleConnection.setupNotification(Defs.DESC_CLIENT_CHAR_CONFIGURATION_UUID) 
        .flatMap(notificationObservable -> notificationObservable) 
        .subscribe(this::onNotificationReceived, this::onNotificationSetupFailure); 

Um Rückruf für Trennung zu erhalten: (example)

  1. Sie können onError von establishConnection Methode beobachten.
  2. können Sie Setup-Verbindungsstatus beobachtbaren

bleDevice.observeConnectionStateChanges().subscribe(this::onConnectionStateChange);

Eigenschaften Um überprüfen Sie mit Service Discovery gehen kann: (example)

bleDevice.establishConnection(this, false) 
       .flatMap(RxBleConnection::discoverServices) 
       .first() // Disconnect automatically after discovery 
       .subscribe(this::processDiscoveredServices, this::onConnectionFailure); 
+0

Dank für die schnelle Antwort, lassen Sie mich dies und es schnell versuchen zu veröffentlichen –

+0

Es funktioniert jetzt, Trennung und Benachrichtigung, nur Anleitung, die ich brauche, ist über Eigenschaften, wenn keine Eigenschaften in Gerät vorhanden ist und wir versuchen, zu schreiben e/lese es, wird das Framework eine Ausnahme auslösen? –

+0

Wie kann man vermeiden, indem verursacht folgende Fehlermeldung: rx.exceptions.OnErrorNotImplementedException bei rx.Observable $ 26.onError (Observable.java:7881) bei rx.observers.SafeSubscriber._onError (SafeSubscriber.java:159) bei rx.observers .SafeSubscriber.onError (SafeSubscriber.java:120) bei rx.internal.operators.OperatorMerge $ MergeSubscriber.reportError (OperatorMerge.java:240) bei rx.internal.operators.OperatorMerge $ MergeSubscriber.checkTerminate (OperatorMerge.java:776) um –

Verwandte Themen