使用数据层 API 发现网络设备

设备可以通过 Wi-Fi 或蜂窝网络直接连接到互联网,也可以通过已配对的蓝牙设备间接连接。

可访问节点和附近节点

当设备在线并可通过蓝牙直接或通过云间接与另一设备通信时,该设备被视为可访问

如果设备无需使用云即可通过蓝牙直接连接,则该设备被视为附近设备。

影响重新连接时间的活动

在某些情况下,设备可能需要长达 4 分钟才能重新建立连接。这些情况包括:

  • Wear OS 设备不活动:如果 Wear OS 设备从用户手腕上取下或长时间不主动使用,重新连接时间可能会延长。
  • 低电耗模式:手持设备的省电低电耗模式可能会限制后台进程,从而可能增加设备的重新连接时间。
  • 用户互动:如果用户几乎同时开始与手持设备和 Wear OS 设备进行互动,通常会加快重新连接过程。

使用节点客户端发现所有设备

一个 NodeClient 对象可识别并向连接到网络的 Android 设备列表广播信息,无论每个设备的功能如何。设备上的所有应用都会收到这些事件通知,例如新设备加入网络或现有设备离线。

NodeClient 类对于发现未安装您的应用的设备特别有用。

使用能力客户端发现特定设备

一个 CapabilityClient 对象提供有关 Wear OS 网络上哪些设备支持特定应用能力的信息。能力是应用在构建时定义或在运行时动态配置的功能。

例如,一款移动 Android 应用可以宣告其支持视频播放的远程控制。该应用的 Wear OS 版本可以使用 CapabilityClient 来检查移动版应用是否安装在附近的设备上并支持该功能。如果支持,Wear OS 应用可以显示播放和暂停按钮,以便用户可以在 Wear OS 设备上控制在移动设备上播放的视频。能力广播也反向适用;Wear OS 应用可以列出其支持的能力。

检查您应用的新能力

使用 CapabilityClient 确定您需要通信的设备的节点 ID。例如,如果您需要检查应用在手持设备上是否存在新功能,请在手持设备端为该新功能创建一个能力。您的 Wear OS 应用随后可以查询支持该能力的设备。如果所有设备都缺少该能力,则意味着用户没有支持此功能的您应用的版本,您应该在应用逻辑中优雅地处理这种情况。如果您假设手持设备始终是正确的通信节点,您的消息可能最终无法送达,因为手机应用不支持该功能。

确定 Wear OS 设备是否是网络上的唯一设备

您可以使用 CapabilityClient 来检查您的应用是否必须在独立模式下运行,因为附近没有其他 Android 设备。通过传入 FILTER_ALL,结果中不应出现其他设备。