当前位置: 首页 > news >正文

鸿蒙应用开发:从网络获取数据

一、网络状态概述

在这里插入图片描述
上述任一指标的变化均可视为网络状态的改变

二、获取网络信息

创建网络对象

//创建网络对象
//?表示可传可不传
connection.createNetConnection(netSpecifier?:NetSpecifier,timeout?:number):NetConnection;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

获取默认激活网络及其能力

//获取默认激活网络
connection.getDefaultNet(): Promise<NetHandle> 

NetHandle是数据网络的句柄 其属性netId表示网络ID,通过调用getNetCapabilities方法,传入NetHandle对象,可以获取对应网络的具体能力,返回值NetCapabilities表示网络能力集,包含网络的具体能力信息
示例中,通过这两个方法配合使用,可以获取网络能力,若getDefaultNet方法返回的netHandle的netId为0,表示无默认网络,则需要根据实际情况添加处理机制,则表示已成功获取默认网络,此时可以通过getNetCapabilities方法获取其能力集
在这里插入图片描述

三、订阅网络状态

以视频应用为例 当网络状态可以正常获取资源时,视频正常播放。当网络断开时,无法加载网络资源,则需要向用户发出提示,要实现这样的功能,需要订阅其对应事件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络可用事件

//netAvailable固定事件类型  回调函数的入参是数据网络句柄NetHandle,在回调方法中可以通过NetHandle对象进行业务处理,在设备链接到可用网络时会出发网络可用事件
on(type:'netAvailable',callback:Callback:Callback<NetHandle>):void

在这里插入图片描述

网络阻塞状态事件

固定事件类型netBlockStatusChange,回调函数,入参是网络阻塞状态信息NetBlockStatusInfo,NetBlockStatusInfo有两个字段,分别是 netHandle和blocked。blocked是一个boolean类型的变量,表示当前网络是否是阻塞状态,网络阻塞状态事件会在建立网络连接时超时,传输数据包丢失或网络带宽不足,负载过高的场景下触发
on(type:'netBlockStatusChange',callback:Callback<NetBlockStatusInfo>):void;

在这里插入图片描述

网络能力变化事件

固定事件类型 netCapabilitiesChange,回调函数的入参是承载数据网络能力的实例NetCapabilityInfo,它的两个字段netHandle和netCapabilities分别表示数据网络句柄和网络能力集,当网络的能力,比如类型、带宽等能力发生变化时,会触发网络能力变化事件
on(type:'netCapabilitiesChange',callback:Callback<NetCapabilityInfo>):void;

在这里插入图片描述

网络连接信息变化事件

网路连接信息变化事件,固定的事件类型是netConnectionPropertiesChange,固定事件类型netConnectionPropertiesChange,回调函数入参NetConnectionPropertyInfo,表示网络连接信息,它包含两个字段,分别是数据网络句柄和网络连接属性,网络连接属性包含常用的网络连接信息,如网卡名称、域名等等,当网络连接的信息,比如IP地址、网关等发生变化时,会触发网络连接信息变化事件
on(type: 'netConnectionPropertiesChange',callback:Callback<NetConnectionPropertyInfo>):void

在这里插入图片描述

网络丢失事件

固定事件类型netLost 回调函数入参是数据网络句柄NetHandle,当设备失去网络连接时会触发网络丢失事件
on(type: 'netLost',callback:Callback<NetHandle>):void

在这里插入图片描述

网络不可用事件

网络不可用事件用netUnavailable表示,它的回调函数没有入参,在设备处于无网络状态或网络不可用的时候触发

在这里插入图片描述

常见事件订阅场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

四、开发实践

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/265831.html

相关文章:

  • UE5中的AnimNotify
  • KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
  • rabbitmq 与 Erlang 的版本对照表 win10 安装方法
  • SPLADE 在稀疏向量搜索中的原理与应用详解
  • MCP 传输机制(Streamable HTTP)
  • 多线程知识
  • 21、MQ常见问题梳理
  • 映射阿里云OSS(对象存储服务)
  • [创业之路-467]:企业经营层 - 《营销管理》的主要内容、核心思想以及对创业者的启示
  • 【Spring boot】tomcat Jetty Undertow对比,以及应用场景
  • Qt 事件
  • 医科+AI!和鲸支持南京医科大学医学数据挖掘课程实践教学落地
  • CCLinkIE转EtherCAT:食品产线测厚仪的“精准心跳”如何跳动?
  • 重学React(二):添加交互
  • 运维服务部中级服务工程师面试试题
  • 【Spring篇09】:制作自己的spring-boot-starter依赖1
  • 服务器如何配置防火墙规则开放/关闭端口?
  • ROS2---话题重映射
  • 能生成二维码的浏览器插件来了
  • 模型训练复习
  • RabbitMQ 高级特性之发送方确认
  • 12、jvm运行期优化
  • .Net Core 中RabbitMQ基本使用
  • [自然语言处理]计算语言的熵
  • 【Python办公】Excel转CSV文件(可指定拆分行数\可批量或单个)
  • 用C#编写一个读取磁盘第一扇区的程序
  • 架空线路云台监控系统应对线路故障的智能化解决方案
  • 深度学习中的逻辑回归:从原理到Python实现
  • leetcode:1049. 最后一块石头的重量 II[01背包][动态规划]
  • 实际开发如何快速定位和解决死锁?