设备可以通过 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
,结果中不应该出现其他设备。