Я пытаюсь отправить простое сообщение из моего приложения для ношения Android в свое приложение для телефона, используя Wearable.MessageApi
.WearableListenerService onMessageReceived не вызывается на устройстве
Это мой onConnected
обратный вызов от GoogleApiClient на устройстве Wear.
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());
}
}
});
И это отображает следующее, когда побежал
Sending message: Nexus 6P
sent: true
И это мой зарегистрированный сервис на мое приложение:
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();
}
}
я правильно проверить, что Peer connected
тост показывает, когда эмулятор подключен к моему устройству. Я правильно сделал переадресацию порта для отладки эмулятора износа. Я проверил, что мои имена приложений и пакетов согласованы в приложении и носите приложение. Тем не менее, я никогда не получаю обратный вызов onMessageReceived
на моем устройстве.
Любые предложения приветствуются! Я отлаживал это в течение целого дня :(
Пожалуйста, посмотри на это сути это может помочь вам исправить ваш вопрос https://gist.github.com/schwiz/84f14c94d4a95c3b77be – ProblemSlover
Спасибо, что поделился. Я проверил все против вашего суждения, единственное различие заключается в том, что я пытаюсь отправить меня ssage от износа до устройства, тогда как вы пытаетесь отправить его с устройства на ношение. Я не думаю, что это повлияло бы на все. – Jin
Хорошо. Давайте сделаем волшебство. Попробуйте MANUALLY удалить приложение apk на обоих устройствах .. и протестировать его снова. – ProblemSlover