我可能有一个简单的问题,但我很难回答。对于我的安卓磨损应用程序,我有两个传感器工作(step计数器和心碎).The磨损应用程序,然后将这些值发送回移动应用程序。我使用消息API发送它们。我的步骤计数sendMessage()和heartrate ()方法看起来是一样的。这是我心痛的sendMessage方法。
private void sendMessageToHandheld(final String message) {
if (mGoogleApiClient == null)
return;
Log.d(LOG_TAG,"sending a message to handheld: "+message);
// use the api client to send the heartbeat value to our handheld
final PendingResult<NodeApi.GetConnectedNodesResult> nodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient);
nodes.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
@Override
public void onResult(NodeApi.GetConnectedNodesResult result) {
final List<Node> nodes = result.getNodes();
if (nodes != null) {
for (int i=0; i<nodes.size(); i++) {
final Node node = nodes.get(i);
Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), message, bytes);
}
}
}
});
}问题是我在手机上只使用了一种messageReceived方法。因此,我无法与进场的步数或心痛的价值区分开来。
@Override
public void onMessageReceived(MessageEvent messageEvent) {
super.onMessageReceived(messageEvent);
Log.d(LOG_TAG, "received a message from wear: " + messageEvent.getPath());
if (messageEvent.getPath().contains("HEARTBEAT")){
// save the new heartbeat value
currentValue = Integer.parseInt(messageEvent.getPath());
if(handler!=null) {
// if a handler is registered, send the value as new message
Log.d(LOG_TAG, "received a heartbeat message from wear: " + messageEvent.getPath());
handler.sendEmptyMessage(currentValue);
}
}
else {
// save the new steps value
currentStepValue = Integer.parseInt(messageEvent.getPath());
if (handler != null) {
// if a handler is registered, send the value as new message
Log.d(LOG_TAG, "received a step message from wear: " + messageEvent.getPath());
handler.sendEmptyMessage(currentStepValue);
}
}我尝试将一个字节数组作为标志传入心形sendMessage()和其他字符串,这样我就可以区分值,但没有运气。有人知道最好的办法是什么吗?
任何帮助都将不胜感激。
干杯
发布于 2015-04-27 19:28:35
您似乎在path属性中发送数据。这不是正确使用此参数。
让我们看一看[MessageApi.sendMessage(GoogleApiClient client, String nodeId, String path, byte[] data](https://developer.android.com/reference/com/google/android/gms/wearable/MessageApi.html#sendMessage(com.google.android.gms.common.api.GoogleApiClient,%20java.lang.String,%20java.lang.String,%20byte[]%29)方法。
您想要做的是使用String path为您的消息提供标识符,例如,在您的示例中,将是step_counter和heartbeat。这样,当您收到消息时,您可以在另一边识别它。
传感器数据应进入data字段。您可以将其放在原处,但更好的方法是创建一个DataMap,然后将其序列化为byte[]。这样,以后您就可以轻松地丰富数据。
https://stackoverflow.com/questions/29903082
复制相似问题