目录
一、HarmonyOS 网络连接管理简介
在 HarmonyOS 中,网络连接管理是系统的重要组成部分,它为设备提供了一系列强大的网络管理能力。这些能力使得设备在复杂的网络环境中,依然能够保持高效、稳定的网络连接,为用户带来流畅的网络体验。
多网络连接优先级管理是 HarmonyOS 网络连接管理的一大特色。在实际使用中,我们的设备可能同时连接到多个网络,比如 WiFi、蜂窝网络、以太网等 。HarmonyOS 能够根据用户的设置以及网络的实际状况,自动管理这些网络连接的优先级。例如,当设备同时连接了 WiFi 和蜂窝网络时,如果用户将 WiFi 设置为高优先级,并且 WiFi 信号稳定,那么系统会优先使用 WiFi 进行数据传输。这样不仅可以保证数据传输的速度和稳定性,还能为用户节省移动数据流量。
网络质量评估功能则是 HarmonyOS 网络连接管理的另一大亮点。通过实时监测网络的各项指标,如网络延迟、带宽、丢包率等,系统能够准确地评估当前网络的质量。这些评估结果对于应用程序来说非常重要,它们可以根据网络质量的好坏,动态调整数据传输策略。比如在网络质量较好时,视频应用可以提供高清甚至 4K 的视频播放;而在网络质量较差时,则自动降低视频分辨率,以保证播放的流畅性,避免出现卡顿现象。
此外,HarmonyOS 的网络连接管理还支持订阅默认 / 指定网络连接状态变化、查询网络连接信息、DNS 解析等功能。这些功能相互协作,共同为设备的网络连接提供了全方位的管理和保障。
那么,开发者如何在应用中使用这些强大的网络连接管理功能呢?这就需要用到 HarmonyOS 提供的网络连接 API 了。接下来,我们就深入探讨一下这些 API 的详细说明以及如何使用它们来实现各种网络相关的功能。
二、HarmonyOS 网络连接 API 接口说明
(一)获取网络相关信息接口
- 获取默认网络接口:getDefaultNet(callback: AsyncCallback<NetHandle>): void或getDefaultNetSync(): NetHandle。getDefaultNet方法通过回调函数callback异步获取一个含有默认网络的netId的NetHandle对象,而getDefaultNetSync则是同步获取默认激活的数据网络的NetHandle对象。例如在一个需要实时感知默认网络变化的应用场景中,就可以使用异步回调方式,在网络变化时及时做出响应;而在一些简单查询场景,如启动时获取默认网络信息用于初始化设置,则可使用同步方法。
- 获取 App 绑定网络接口:getAppNet(callback: AsyncCallback<NetHandle>): void 。该接口通过callback回调来获取一个 App 绑定的包含了网络netId的NetHandle对象。假如有一个多网络切换需求的应用,在不同网络环境下进行不同业务处理,就需要知道当前 App 绑定在哪个网络上,此时这个接口就能派上用场。
- 获取所有连接状态网络接口:getAllNets(callback: AsyncCallback<Array<NetHandle>>): void 。通过callback回调获取所有处于连接状态的网络的NetHandle对象列表。像一些网络管理类应用,需要展示当前设备所有已连接网络,就会用到这个接口,方便用户对各个网络进行管理和查看。
(二)网络状态订阅接口
- 订阅网络可用事件接口:on(type: 'netAvailable', callback: Callback<NetHandle>): void 。当网络变为可用状态时,会触发callback回调,开发者可以在回调函数中编写处理逻辑,比如开始数据传输、更新界面提示用户网络已可用等。比如在一个视频播放应用中,网络不可用时暂停播放,当通过此接口监听到网络可用时,就可以自动恢复视频播放。
- 订阅网络能力变化事件接口:on(type: 'netCapabilitiesChange', callback: Callback<{ netHandle: NetHandle, netCap: NetCapabilities }>): void 。当网络的能力发生变化,如带宽、连接类型等改变时,会触发这个回调。在在线游戏应用中,网络能力变化可能影响游戏的帧率和流畅度,开发者可以在回调中根据新的网络能力调整游戏的画质、数据传输频率等参数,以保证游戏的稳定运行。
- 订阅网络连接信息变化事件接口:on(type: 'netConnectionPropertiesChange', callback: Callback<{ netHandle: NetHandle, connectionProperties: ConnectionProperties }>): void 。当网络连接属性,如 IP 地址、DNS 等发生变化时,会触发此回调。对于一些需要固定网络配置的应用,如远程办公应用连接公司内部服务器,网络连接信息变化时就需要及时更新配置,以保证正常通信。