WearableListenerService onMessageReceived wird auf Gerät nicht aufgerufen
Ich versuche, eine einfache Nachricht von meiner Android Wear-App über das @ an meine Telefon-App zu sendeWearable.MessageApi
.
Das ist meinonConnected
Rückruf von GoogleApiClient auf dem Wear-Gerät.
final PendingResult<Status> status = Wearable.DataApi.addListener(googleApiClient, this);
status.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (!status.isSuccess()) {
return;
}
NodeApi.GetConnectedNodesResult nodes =
Wearable.NodeApi.getConnectedNodes(googleApiClient).await();
for (Node node : nodes.getNodes()) {
System.out.println("Sending message: " + node.getDisplayName());
final MessageApi.SendMessageResult result =
Wearable.MessageApi.sendMessage(googleApiClient, node.getId(),
"request", "12345".getBytes())
.await();
System.out.println("sent: " + result.getStatus().isSuccess());
}
}
});
Und dies zeigt beim Ausführen von @ Folgendes
Sending message: Nexus 6P
sent: true
Und dies ist mein registrierter Dienst in meiner App:
public class MyWearableListenerService extends WearableListenerService {
@Override
public void onMessageReceived(MessageEvent messageEvent) {
Toast.makeText(this, "Received message", Toast.LENGTH_LONG).show();
}
@Override
public void onPeerConnected(Node peer) {
Toast.makeText(this, "Peer connected", Toast.LENGTH_LONG).show();
}
}
Ich habe richtig überprüft, dass dasPeer connected
toast wird angezeigt, wenn der Emulator mit meinem Gerät verbunden ist. Ich habe die Portweiterleitung ordnungsgemäß ausgeführt, um das Debugging für den Wear Emulator durchzuführen. Ich habe überprüft, ob meine applicationId- und Paketnamen in meiner App und Wear-App übereinstimmen. Allerdings bekomme ich nie dasonMessageReceived
Rückruf auf meinem Gerät.
Irgendwelche Vorschläge werden sehr geschätzt! Ich habe das jetzt einen ganzen Tag lang getestet: