从可穿戴设备向断开连接的手机发送消息
Sending message to disconnected mobile from wearable
我正在尝试在可穿戴设备断开连接时向手机发送事件或更好的消息。
这是我使用的代码:
Wearable.MessageApi.sendMessage(
mGoogleApiClient, node, event, message).setResultCallback(
new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
if(!sendMessageResult.getStatus().isSuccess()) {
Log.e(TAG, "Failed to send message with status code: "
+ sendMessageResult.getStatus().getStatusCode());
}
}
}
);
调用 onPeerConnected(Node peer)
时会缓存节点 ID,因此我不需要查询节点 API 来获取空列表。但是我将数据发送到离线的节点。这导致 StatusCode 4000,即 TARGET_NODE_NOT_CONNECTED
。我当然知道,但是缓存此事件以尽快发送它的最佳方法是什么?
我以 Maciej Ciemięga 在评论中指出的那个想法结束。我正在使用 DataAPI 来存储和转发我的事件。移动设备收到事件后,我从数据层中删除了路径,因为它完成了它的工作。
您应该记住删除将再次调用 onDataChanged 方法。所以你应该检查 DataEvent 的类型:
event.getType() == DataEvent.TYPE_DELETED
如果您不牢记这一点,您可能会陷入无限循环。
我正在尝试在可穿戴设备断开连接时向手机发送事件或更好的消息。
这是我使用的代码:
Wearable.MessageApi.sendMessage(
mGoogleApiClient, node, event, message).setResultCallback(
new ResultCallback<MessageApi.SendMessageResult>() {
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult) {
if(!sendMessageResult.getStatus().isSuccess()) {
Log.e(TAG, "Failed to send message with status code: "
+ sendMessageResult.getStatus().getStatusCode());
}
}
}
);
调用 onPeerConnected(Node peer)
时会缓存节点 ID,因此我不需要查询节点 API 来获取空列表。但是我将数据发送到离线的节点。这导致 StatusCode 4000,即 TARGET_NODE_NOT_CONNECTED
。我当然知道,但是缓存此事件以尽快发送它的最佳方法是什么?
我以 Maciej Ciemięga 在评论中指出的那个想法结束。我正在使用 DataAPI 来存储和转发我的事件。移动设备收到事件后,我从数据层中删除了路径,因为它完成了它的工作。
您应该记住删除将再次调用 onDataChanged 方法。所以你应该检查 DataEvent 的类型:
event.getType() == DataEvent.TYPE_DELETED
如果您不牢记这一点,您可能会陷入无限循环。