Android phone 设备未收到从手表发送的 Wear 消息
Android Wear message sent from watch is not received by the phone devie
我想从 Watch 向我的 phone 发送消息。
我可以使用 MessageAPI 向我的 phone 发送消息,通过查看日志消息,结果也成功了。但是,phone 端未收到消息。
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");
}
}
});
但是,在我的 phone 的侦听器服务上,没有调用 onMessageReceived 和 onPeerConnected。
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");
}
}
这是 phone 应用程序的 ListenerService 清单声明:
<service android:name="com.mobile.rbc.services.ListenerServiceFromWear" >
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
</intent-filter>
</service>
找到答案了。
问题是 Android Wear 的 apk 已签名,而 Phone 的 apk 未签名。
我正在使用 Eclipse 调试它,这就是 phone 的应用程序未签名的原因。
如果两个 apk 未使用相同的密钥签名,通常您会在日志中看到一些内容。
ensureBindStarted:应用与记录的应用密钥不匹配:AppKey
我想从 Watch 向我的 phone 发送消息。 我可以使用 MessageAPI 向我的 phone 发送消息,通过查看日志消息,结果也成功了。但是,phone 端未收到消息。
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");
}
}
});
但是,在我的 phone 的侦听器服务上,没有调用 onMessageReceived 和 onPeerConnected。
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");
}
}
这是 phone 应用程序的 ListenerService 清单声明:
<service android:name="com.mobile.rbc.services.ListenerServiceFromWear" >
<intent-filter>
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
</intent-filter>
</service>
找到答案了。
问题是 Android Wear 的 apk 已签名,而 Phone 的 apk 未签名。
我正在使用 Eclipse 调试它,这就是 phone 的应用程序未签名的原因。
如果两个 apk 未使用相同的密钥签名,通常您会在日志中看到一些内容。
ensureBindStarted:应用与记录的应用密钥不匹配:AppKey