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