Android Wear onPeerConnected 未使用新的 Wear Intents 进行调用

Fou*_*oud 2 wear-os

我一直在清单中使用以下意图过滤器,一切正常:

<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
Run Code Online (Sandbox Code Playgroud)

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

<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" />
Run Code Online (Sandbox Code Playgroud)

我可以很好地接收消息,但 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");
    }

}
Run Code Online (Sandbox Code Playgroud)

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

Str*_*ing 5

onPeerConnected与 同时被弃用BIND_LISTENER,因此当您停止使用后者时,您也需要停止使用前者。

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

  • 这就说得通了。谢谢。我确实发现谷歌文​​档缺乏,但也许这只是我的问题。 (2认同)