2015-01-14 2 views
1

Watch에서 전화로 메시지를 보내려고합니다. MessageAPI를 사용하여 내 전화기로 메시지를 보낼 수 있으며 로그 메시지를보고도 결과가 성공적입니다. 그러나 메시지는 전화 측에서 수신되지 않습니다.시계에서 보낸 Android Wear 메시지가 전화 교환기에 수신되지 않습니다.

Wearable.MessageApi.sendMessage(mGoogleApiClient, mNode.getId(), 
        MY_DATA_PATH, null).setResultCallback(

      new ResultCallback<MessageApi.SendMessageResult>() { 
       @Override 
       public void onResult(
         MessageApi.SendMessageResult sendMessageResult) { 

        if (!sendMessageResult.getStatus().isSuccess()) { 
         Log.d("TAG", 
           "sendMessageResult NOT successful"); 
        } else { 
         Log.d("TAG", 
           "sendMessageResult successful"); 
        } 
       } 
      }); 

하지만, 내 휴대 전화의 수신 서비스에 onMessageReceived 및 onPeerConnected가 호출되지 않습니다.

<service android:name="com.mobile.rbc.services.ListenerServiceFromWear" > 
     <intent-filter> 
      <action android:name="com.google.android.gms.wearable.BIND_LISTENER" /> 
     </intent-filter> 
    </service> 
+0

은 어디'mNode'을받을 수 있나요? – ianhanniballake

+0

Wearable.NodeApi.getConnectedNodes (mGoogleApiClient) .setResultCallback() – Kei

+0

에서 답변을 볼 수 있습니다. [link] (http://stackoverflow.com/questions/24595170/sending-messages-from-android-wear-to-host- 장치) – krishna5688

답변

4

답을 찾았습니다

public class ListenerServiceFromWear extends WearableListenerService { 

private static final String My_DATA_PATH = "/my-data-path"; 

@Override 
public void onMessageReceived(MessageEvent messageEvent) { 
    Log.d("TAG", "onMessageReceived"); 

    /* 
    * Receive the message from wear 
    */ 
    if (messageEvent.getPath().equals(MY_DATA_PATH)) { 

     Intent startIntent = new Intent(this, ContactActivity.class); 
     startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(startIntent); 
    } 

} 



@Override 
public void onPeerConnected(Node node){ 
    Log.d("TAG", "onPeerConnected"); 
} 

}

다음은 ListenerService의 전화 응용 프로그램의 매니페스트 선언입니다. 문제는 Android Wear의 apk에 서명이되어 있고 휴대 전화의 apk에 서명이되어 있지 않다는 것입니다.
이클립스를 사용하여 디버깅하고 있었기 때문에 휴대 전화의 앱이 서명되지 않았습니다. 보통 두 명의 APK가 동일한 키로 서명하지 않으면 로그에 표시됩니다.

ensureBindStarted : 응용 프로그램이 기록의 응용 프로그램 키와 일치하지 않습니다 AppKey

관련 문제