Android 未使用新的 Wear Intents 调用 Wea​​r onPeerConnected

Android Wear onPeerConnected not called with new Wear Intents

我一直在清单中使用以下 intent-filter,一切正常:

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

这已被弃用,所以我正在尝试使用:

<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" />

我可以正常接收消息,但现在永远不会调用 onPeerConnected。

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");
    }

}

如果我改回使用旧的 BIND_LISTENER,一切都会完美无缺。

onPeerConnectedBIND_LISTENER同时被弃用,所以当你停止使用后者时,你也需要停止使用前者。

对于类似的功能,请在您的清单中使用 Cabability API: CAPABILITY_CHANGED,并在您的 Java 代码中使用 CapabilityListener。此处有更多详细信息:https://developer.android.com/training/wearables/data-layer/messages.html#SendMessage