2017-04-04 4 views
0

Oben in der Aktionsleiste, oben rechts, in der Android Wear App sehe ich den folgenden Eintrag: "HUAWEI WATCH trennen" (dies ist die Uhr, die ich zum Testen verwende).Wie "verbinden" Sie die Android-Uhr programmgesteuert, wenn sie in der Android Wear App getrennt sind?

Wenn ich diesen Punkt wähle, ist die Uhr in der Tat "getrennt" - es gibt keine Bluetooth-Kommunikation mit ihr, auch wenn Bluetooth generell eingeschaltet ist und das Gerät immer noch als gepaart in allgemeinen Bluetooth-Einstellungen gesehen wird . Schlimmste, manchmal wird die Uhr ohne die Benutzereingabe getrennt, wenn es physisch weit weg vom Telefon für längere Zeit war.

Meine App ist stark auf Bluetooth-Konnektivität angewiesen, und der Endbenutzer wird höchstwahrscheinlich nicht bemerken, dass die Uhr "getrennt" ist. Sie werden nur davon ausgehen, dass die App fehlerhaft ist.

Daher ist es wichtig, dass meine App den Status "unterbrochene Überwachung" erkennt. Am besten wäre es, die Uhr erneut zu verbinden, automatisch oder nach der Benutzerbestätigung. Im schlimmsten Fall kann es in Ordnung sein, den Fall zu erkennen und den Benutzer aufzufordern, das Problem in Android Wear zu beheben.

  • So erkennen Sie programmatisch, dass die Uhr über das Menü Android Wear getrennt wurde.
  • Wie es zurück zu verbinden.
  • Hier geht es nicht darum, wie Bluetooth im Allgemeinen aktiviert oder deaktiviert wird, auch über das Pairing des Bluetooth-Geräts.

    Ich verwende die Daten-API mit setUrgent().

    Antwort

    1

    Ich würde vorschlagen,

    @Override 
    public void onConnectionSuspended(int cause) { 
    
    } 
    

    zu verwenden, um festzustellen, ob die Knoten getrennt wurden.

    gab es

    @Override 
    public void onPeerConnected(Node node) { 
        Log.d(TAG, "CONNECTED");   
    } 
    
    @Override 
    public void onPeerDisconnected(Node node) { 
        Log.d(TAG, "PEER DISCONNECTED"); 
    } 
    

    aber jetzt sind sie veraltet.

    Verwenden CapabilityApi statt

    Vergessen Sie nicht, dass Sie

    verwenden können
    Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(
            new ResultCallback<NodeApi.GetConnectedNodesResult>() { 
             @Override 
             public void onResult(NodeApi.GetConnectedNodesResult nodes) { 
              for (Node node : nodes.getNodes()) { 
              mNode = node; 
              } 
             } 
            } 
    
          ); 
    

    in der Nähe Knoten

    Ich weiß nicht, Ihren Code abzurufen. Deshalb kann ich nur einen so breiten Ratschlag geben.

    +0

    Nicht vollständig, aber möglicherweise hilfreich. Upvoting ohne Zweifel, wird akzeptieren, wenn nichts besseres kommt. – h22

    +0

    @ h22, wenn Sie mehr Code zur Verfügung stellen, werde ich versuchen zu helfen – Vyacheslav

    +0

    getConnectedNodes funktioniert in meinem Fall. onConnectionSuspended wird nicht aufgerufen. – h22

    Verwandte Themen