2014-12-18 3 views
3

У меня есть приложение, которое может прекрасно общаться с телефоном до моего LG G Watch. Проблема в том, что я не могу отправить сообщение обратно. Вот мой код для отправки из носимых, который всегда указывает на то, что сообщение было отправлено:MessageAPI android Wear, может отправить сообщение в носки, но носимый не может отправить сообщение обратно

public void oops(View view){ 
    Thread thread = new Thread(new Runnable() { 
     @Override 
     public void run() { 

      NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes(googleApiClient).await(); 
      for (Node node : nodes.getNodes()) { 
       MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(googleApiClient, node.getId(), "/start/MainActivity", "Hello".getBytes()).await(); 
       if (!result.getStatus().isSuccess()) { 
        Log.e("INFO", "ERROR"); 
       } else { 
        Log.i("INFO", "Success sent to: " + node.getDisplayName()); 
       } 

      } 
     } 
    }); 
    thread.start(); 
} 

Я всегда получаю сообщение об успехе после отправки. Здесь услуга приемника на другом конце:

public class Reciever extends Service implements MessageApi.MessageListener { 
    public Reciever() { 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO: Return the communication channel to the service. 
     throw new UnsupportedOperationException("Not yet implemented"); 
    } 

    @Override 
    public void onMessageReceived(MessageEvent messageEvent) { 
     Log.i("INFO", "We got it!"); 
    } 
} 

Это тот же самый код, который я использую в моих часах приложении, которое принимает сообщения только штраф. Я уверен, что сервис правильно запущен и объявлен, и что оба приложения имеют одинаковый идентификатор. Какие-либо предложения?

ответ

2

Я понял, что вы должны зарегистрироваться слушателя в onBind или OnCreate:

Wearable.MessageApi.addListener(googleApiClient, this);