2015-11-20 2 views
4

Я пытаюсь отправить простое сообщение из моего приложения для ношения 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 на моем устройстве.

Любые предложения приветствуются! Я отлаживал это в течение целого дня :(

+1

Пожалуйста, посмотри на это сути это может помочь вам исправить ваш вопрос https://gist.github.com/schwiz/84f14c94d4a95c3b77be – ProblemSlover

+0

Спасибо, что поделился. Я проверил все против вашего суждения, единственное различие заключается в том, что я пытаюсь отправить меня ssage от износа до устройства, тогда как вы пытаетесь отправить его с устройства на ношение. Я не думаю, что это повлияло бы на все. – Jin

+1

Хорошо. Давайте сделаем волшебство. Попробуйте MANUALLY удалить приложение apk на обоих устройствах .. и протестировать его снова. – ProblemSlover

ответ

6

О, боже. Я понял свою проблему. Я МЫСЛИ приложение было таким же, но оказалось, что я никогда не настраивал ароматы сборки на носить модуль, так что два applicationIds были на самом деле com.example.android и com.example.android.dev ..

Надеется, что это помогает другим людям, которые бежали в ту же проблему, что и я:. \

+0

Добро пожаловать :) – ProblemSlover

Смежные вопросы