android - 在 Android Wear 上使用 GoogleApiClient 确定 Wearable.CapabilityApi.getCapability 返回的节点是否已连接

标签 android wear-os android-googleapiclient

我正在尝试使用 Android Wear(将数据从 watch 流式传输到手机)并且我正在研究 CapabilityApi。

根据 Wearable.CapabilityApi.getCapability 的文档,不能保证此调用只会返回连接的节点: https://developers.google.com/android/reference/com/google/android/gms/wearable/CapabilityInfo.html#getNodes()

我想知道的是,我是否必须执行以下操作:

final CapabilityApi.GetCapabilityResult result = 
    Wearable.CapabilityApi.getCapability(mGoogleApiClient, RECIEVE_SOUND_DATA_CAPABILITY, Wearable.CapabilityApi.FILTER_REACHABLE).await();
final NodeApi.GetConnectedNodesResult connectedNodes = Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).await();

for (final Node node : result.getCapability().getNodes()) {
    if (connectedNodes.getNodes().contains(node)){
        sendDataToNode(node, dataSender);
    }
}

为了判断节点是否真正连接上,或者调用是否足够:

node.isNearby()

在发送数据之前?

最佳答案

当您使用 FILTER_REACHABLE 过滤器时,您只会看到网络上可访问(即已连接)设备的列表。鉴于连接可以通过云发生这一事实,您可能希望根据其他条件对返回的列表进行排序,例如,您可能更喜欢那些“直接连接”的节点 (isNearBy()) 以减少所需的跃点数到达该节点,或者在某些情况下,您可能需要声明其他功能(例如,处理器功能或 GPU 功能等),然后在连接的设备中找到最合适的。

关于android - 在 Android Wear 上使用 GoogleApiClient 确定 Wearable.CapabilityApi.getCapability 返回的节点是否已连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491587/

相关文章:

java - 使用计费客户端从 google play 检索特定用户的 Inapp 购买

Android:调用 GoogleApiClient.connect() 时出错

android - 磨损 Activity 中的 MessageApi.MessageListener 未触发

android - Google 客户端 Api 未在 Activity 恢复时连接

android - Google Places 自动完成 + Android fragment

Javamail java.security.cert.CertPathValidatorException 从 pop3 接收邮件时

java - Jackson Mapper 在三星 SM-T580 上抛出 "conflicting setter definitions"

java - RunOnUiThread 无法加载,需要对象引用(android)

android - 在 Android Wear 上实现 GridViewPager 的正确方法是什么?

安卓穿戴包装