我想从手机发送消息到佩戴(安卓 Watch ) . 我不想发送通知 . 所以我使用MessageApi发送消息 . 出于某种原因,我的 Watch 没有得到它 . 我以相反的顺序使用相同的代码(磨损到移动设备),它工作得非常好 . 从手机端,它正确识别 Watch 并显示其名称,但在观察时未到达消息(未调用onMessageReceived) .
任何帮助将不胜感激 .
移动中的代码发送数据:
private void resolveNode() {
Wearable.NodeApi.getConnectedNodes(mGoogleApiClient)
.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
@Override
public void onResult(@NonNull NodeApi.GetConnectedNodesResult connectedNodes) {
for(Node connectedNode : connectedNodes.getNodes()) {
mNode = connectedNode;
Log.d(TAG,"Message Sender connected node"+mNode.getDisplayName());
sendMessage("Hello Hello");
}
}
});
}
private void sendMessage(final String message) {
if(mGoogleApiClient != null &&
mGoogleApiClient.isConnected() &&
mNode != null) {
Log.d(TAG,"Message is going to be sent to watch");
Wearable.MessageApi.sendMessage(mGoogleApiClient,
mNode.getId(),
"/mobile_data",
message.getBytes())
.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(@NonNull MessageApi.SendMessageResult sendMessageResult) {
if(sendMessageResult.getStatus().isSuccess()) {
Log.e(TAG,"Message Succesfully sent to watch=>"+message);
} else {
Log.e(TAG,"Message FAILED TO BE SENT to watch=>"+message);
}
}
});
}
}
可穿戴方面的代码
public class MessageReceiver extends WearableListenerService {
private static final String TAG = "MessageReceiver";
@Override
public void onMessageReceived(MessageEvent messageEvent) {
super.onMessageReceived(messageEvent);
Log.d(TAG,"pathpathpathpath");
}
}
在可穿戴方面的AndroidManifest中注册了我的消息接收器
<service android:name=".MessageReceiver">
<intent-filter>
<action android:name="com.google.android.gms.wearable.DATA_CHANGED" />
<action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />
<data
android:host="*"
android:pathPrefix="/mobile_data"
android:scheme="mobile" />
</intent-filter>
</service>