从可穿戴设备向断开连接的手机发送消息

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

如果您不牢记这一点,您可能会陷入无限循环。