我可能有一個簡單的問題,但讓我難住。對於我的Android Wear應用程序,我有兩個傳感器可用(步數計數器和心率)。Wear應用程序然後將這些值發送回移動應用程序。我使用Message API發送它們。我的stepcount sendMessage()和heartrate sendMessage()方法看起來是一樣的。這是我心中的sendMessage方法。使用消息API識別消息Android
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()和其它字符串作爲標誌,這樣我可以分辨的值但沒有運氣。任何人都知道最好的方法是什麼?
任何幫助,將不勝感激。
乾杯
非常感謝gruszczy,現在實際上是有道理的。這正是我需要做的,你將如何去訪問移動端的數據映射?例如,我使用messageEvent.getData()嗎? – Hal
這就是你正在看的東西:'DataMap.fromByteArray(messageEvent.getData());'。打開API並閱讀各種方法。即使你不瞭解所有的東西,它會給你一個概述,並使之後更容易找到答案。 – gruszczy
完美!會做。再次感謝gruszczy。非常感激 – Hal