Android Wear + Wearable ChannelApi openChannel无法打开远程节点?

时间:2015-05-03 19:58:12

标签: android wear-os

通过本地节点打开频道时:

Wearable.NodeApi.getLocalNode(googleApiClient)

... onChannelOpened听众成功会触发。

但是,通过远程节点打开频道时:

Wearable.NodeApi.getConnectedNodes(googleApiClient)

... onChannelOpened Listener 从不触发,随后永远无法通过此频道共享文件。

我知道两个设备都需要openChannel,但是通道监听器只在本地打开它的设备上触发...如果远程设备不知道它,它如何发送或接收文件&# 39;连接?这是两个设备之间的细分

可穿戴设备:

  1. 保存本地文件 - 成功
  2. .openChannel与本地(可穿戴)节点 - 成功
  3. .sendFile to channel - success
  4. 处理暂停:

    1. .openChannel与远程(可穿戴)节点 - 失败
    2. .receiveFile from channel - fail
    3. 显示文件 - 失败

1 个答案:

答案 0 :(得分:8)

<强> Toubleshooting

以下是一些要检查的事项:

  • 您是否收到消息事件或数据项更新?如果您致电Wearable.MessageApi.sendMessage,您是否会在另一台设备上获得onMessageReceived?如果没有,那么在另一个节点上设置WearableListenerService的方式或者应用程序的打包方式可能有问题(例如,您的microapp和app在不同的包中,或者使用不同的密钥签名)。

  • 您是否正在运行Android Wear app的最新版本?最近添加了Channel API,可能是您的手表仍未收到支持它的更新。版本1.1.1.1889093应该没问题。

如何使用渠道API

顺便说一下,听起来你可以简化你对频道的使用。无需打开本地和远程节点的通道。您通常使用API​​的方式是:

  1. 决定是否要从手表或手机启动频道。在这种情况下,听起来就像是从手表开始。

  2. 在观看应用中,拨打Wearable.ChannelApi.openChannel,指向手机应用。此方法返回PendingResult<OpenChannelResult>。成功完成后,您将获得一个Channel对象。这是频道的手表侧,您可以使用它来发送文件。

  3. 在手机应用中,添加WearableListenerService,该活动应该会有onChannelOpened个事件。该方法将传递Channel对象,该对象是频道的电话侧。您可以在该对象上调用receiveFile

  4. 正如您所看到的,您应该只有一次调用openChannel:到远程节点。