2016-07-03 8 views
2

genannt Ich habe in meinem Manifest folgendes Intent-Filter wurde mit und alles hat gut funktioniert:Android Wear onPeerConnected nicht mit neuen Wear Intents

<action android:name="com.google.android.gms.wearable.BIND_LISTENER" /> 

Diese veraltet ist so das ich zu verwenden Ich versuche:

<action android:name="com.google.android.gms.wearable.CAPABILITY_CHANGED" /> 
<action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" /> 
<action android:name="com.google.android.gms.wearable.DATA_CHANGED" /> 
<action android:name="com.google.android.gms.wearable.CHANNEL_EVENT" /> 
<data android:scheme="wear" android:host="*" android:pathPrefix="/mypath" /> 

Ich kann Nachrichten gut erhalten, aber onPeerConnected wird jetzt nie aufgerufen.

public class WearListenerService extends WearableListenerService { 

    @Override 
    public void onPeerConnected(Node peer) { 
     Log.d("Wear Service", "Peer Connected"); 
    } 

    @Override 
    public void onMessageReceived(MessageEvent messageEvent) { 
     Log.d("Wear Service", "Message Received"); 
    } 

} 

Alles funktioniert perfekt, wenn ich wieder auf den alten BIND_LISTENER umschalte.

Antwort

3

onPeerConnected wurde zur gleichen Zeit wie BIND_LISTENER veraltet, so dass, wenn Sie aufhören, letztere zu verwenden, müssen Sie aufhören, die ehemalige auch zu verwenden.

Verwenden Sie für vergleichbare Funktionalität die Cabability-API: CAPABILITY_CHANGED in Ihrem Manifest und eine CapabilityListener in Ihrem Java-Code. Mehr Details hier: https://developer.android.com/training/wearables/data-layer/messages.html#SendMessage

+1

Das macht Sinn. Vielen Dank. Ich bin sicher, dass die Google-Dokumentation fehlt, aber vielleicht bin ich es nur. – Jason