Android Wear + Wearable ChannelApi +如何打开与云节点(WIFI)的连接?

时间:2015-05-30 22:30:50

标签: android wear-os

使用新的Channel API通过蓝牙连接正常工作,但如果我现在切换到云节点(WIFI模式),则无法打开频道。结果始终为null并且运行到超时。

view.setText("something");
view.postDelayed(new Runnable(){
    public void run(){
        view.setText("somethingelse.");
    }
}, 200);

这是在节点之间建立WIFI连接的正确方法吗?是否有一个示例如何实现这一点?

更新

观看: (之后通过消息将nodeID发送到手机。我也看到了来自这个线程Android Wear + Wearable ChannelApi openChannel not opening with remote node?的问题后使用了这种方法)

on watch :(将检索到的localNodeID发送到手机)

ChannelApi.OpenChannelResult result = Wearable.ChannelApi.openChannel(googleApiClient, "cloud", Constants.COPY_FILE_VIA_CHANNEL_PATH).await();

在电话上:

NodeApi.GetLocalNodeResult localNodeResult = Wearable.NodeApi.getLocalNode(googleApiClient).await();

观看:

ChannelApi.OpenChannelResult result = Wearable.ChannelApi.openChannel(googleApiClient, localNodeId, Constants.COPY_FILE_VIA_CHANNEL_PATH).await();

Channel.GetOutputStreamResult getOutputStreamResult = channel.getOutputStream(googleApiClient).await();

OutputStream outputStream = getOutputStreamResult.getOutputStream();
            outputStream.write(byteChunk);
            outputStream.close();

这是目前使用Channel API的“Wear Media”应用程序内的实现。在设置中,chunksize可以修改为1000到9999999之间的任何字节值,但在传输和激活蓝牙和WIFI期间,总是使用蓝牙连接。

1 个答案:

答案 0 :(得分:0)

"cloud"不是有效的节点ID - 您需要使用设备的节点ID,例如手机或Android Wear设备。设备将根据底层连接自动从蓝牙切换到wifi - 您无需做任何事情。您可以使用与CapabilityApi类似的sending messages training来正确确定用于打开频道的节点ID。