HarmonyOS学习路之开发篇—网络与连接(WLAN开发 一)

简介: 无线局域网(Wireless Local Area Networks,WLAN),是通过无线电、红外光信号或者其他技术发送和接收数据的局域网,用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境中。

WLAN开发概述

无线局域网(Wireless Local Area Networks,WLAN),是通过无线电、红外光信号或者其他技术发送和接收数据的局域网,用户可以通过WLAN实现结点之间无物理连接的网络通讯。常用于用户携带可移动终端的办公、公众环境中。


HarmonyOS WLAN服务系统为用户提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。


约束与限制

本开发指南提供多个开发场景的指导,涉及多个API接口的调用。在调用API前,应用需要先申请对应的访问权限,具体请参照对应场景的开放能力介绍。


WLAN基础功能

场景介绍

应用或者其他模块可以通过接口完成以下功能:


获取WLAN状态,查询WLAN是否打开。

发起扫描并获取扫描结果。

获取连接态详细信息,包括连接信息、IP信息等。

获取设备国家码。

获取设备是否支持指定的能力。

接口说明

WLAN基础功能由WifiDevice提供,其接口说明如下。


表1 WLAN基础功能的主要接口


image.png获取WLAN状态

1.调用WifiDevice的getInstance(Context context)接口,获取WifiDevice实例,用于管理本机WLAN操作。

2.调用isWifiActive()接口查询WLAN是否打开。

// 获取WLAN管理对象
WifiDevice wifiDevice = WifiDevice.getInstance(context);
// 调用获取WLAN开关状态接口
boolean isWifiActive = wifiDevice.isWifiActive(); // 若WLAN打开,则返回true,否则返回false

发起扫描并获取结果

1.调用WifiDevice的getInstance(Context context)接口,获取WifiDevice实例,用于管理本机WLAN操作。

2.调用scan()接口发起扫描。

3.调用getScanInfoList()接口获取扫描结果。

// 获取WLAN管理对象
WifiDevice wifiDevice = WifiDevice.getInstance(context);
// 调用WLAN扫描接口
boolean isScanSuccess = wifiDevice.scan();
// 调用获取扫描结果
 List<WifiScanInfo> scanInfos = wifiDevice.getScanInfoList();

获取连接态详细信息

1.调用WifiDevice的getInstance(Context context)接口,获取WifiDevice实例,用于管理本机WLAN操作。

2.调用isConnected()接口获取当前连接状态。

3.调用getLinkedInfo()接口获取连接信息。

4.调用getIpInfo()接口获取IP信息。

// 获取WLAN管理对象
WifiDevice wifiDevice = WifiDevice.getInstance(context);
// 调用WLAN连接状态接口,确定当前设备是否连接WLAN
boolean isConnected = wifiDevice.isConnected();
if (isConnected) {
    // 获取WLAN连接信息
    Optional<WifiLinkedInfo> linkedInfo = wifiDevice.getLinkedInfo();
    // 获取连接信息中的SSID
    String ssid = linkedInfo.get().getSsid();
    // 获取WLAN的IP信息
    Optional<IpInfo> ipInfo = wifiDevice.getIpInfo();
    // 获取IP信息中的IP地址与网关
    int ipAddress = ipInfo.get().getIpAddress();
    int gateway = ipInfo.get().getGateway();
}

获取设备国家码

1.调用WifiDevice的getInstance(Context context)接口,获取WifiDevice实例,用于管理本机WLAN操作。

2.调用getCountryCode()接口获取设备的国家码。

// 获取WLAN管理对象
WifiDevice wifiDevice = WifiDevice.getInstance(context);
// 获取当前设备的国家码
String countryCode = wifiDevice.getCountryCode();

判断设备是否支持指定的能力

1.调用WifiDevice的getInstance(Context context)接口,获取WifiDevice实例,用于管理本机WLAN操作。

2.调用isFeatureSupported(long featureId)接口判断设备是否支持指定的能力。

// 获取WLAN管理对象
WifiDevice wifiDevice = WifiDevice.getInstance(context);
// 获取当前设备是否支持指定的能力
boolean isSupportInfra = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_INFRA);
isSupportInfra5g = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_INFRA_5G);
isSupportPasspoint = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_PASSPOINT);
isSupportP2p = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_P2P);
isSupportHotspot = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_MOBILE_HOTSPOT);
isSupportAware = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_AWARE);
isSupportApSta = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_AP_STA);
isSupportWpa3Sae = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_WPA3_SAE);
isSupportWpa3SuiteB = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_WPA3_SUITE_B);
isSupportOwe = wifiDevice.isFeatureSupported(WifiUtils.WIFI_FEATURE_OWE);


相关文章
|
11月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
294 0
|
10月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
571 61
|
10月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
506 0
|
索引 容器
120. [HarmonyOS NEXT 实战案例:教育应用] 基础篇 - 垂直分割布局打造课程学习平台
在本案例中,我们将使用以下HarmonyOS NEXT组件: | 组件名称 | 功能描述 | | ------------- | -------------------------------------- | | `ColumnSplit` | 垂直分割布局容器,将界面分为上下两部分 | | `Column` | 垂直布局容器,用于垂直排列子组件 | | `Row` | 水平布局容器,用于水平排列子组件 | | `Scroll` | 滚动容器,用于在有限空间内展
203 3
120. [HarmonyOS NEXT 实战案例:教育应用] 基础篇 - 垂直分割布局打造课程学习平台
|
UED 容器
122.[HarmonyOS NEXT 实战案例:教育应用] 高级篇 - 课程学习平台的高级布局与自适应设计
在前两篇教程中,我们学习了如何使用HarmonyOS NEXT的`ColumnSplit`组件构建课程学习平台的基本布局,以及如何添加交互功能和状态管理。本篇教程将进一步深入,讲解课程学习平台的高级布局技巧和自适应设计,使应用能够在不同尺寸的设备上提供一致且优质的用户体验。
275 1
122.[HarmonyOS NEXT 实战案例:教育应用] 高级篇 - 课程学习平台的高级布局与自适应设计
|
11月前
|
Windows
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
电脑显示有问题,电脑连接不上网络,电脑没声音,电脑链接不上打印机?驱动人生就能解决所有问题
216 0
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
监控 安全 网络协议
恶意软件无处逃!国内版“Manus”AiPy开发Windows沙箱工具,进程行为+网络传输层级监控! 头像 豪气的
NImplant.exe 是一款后渗透测试工具,可实现远程管理与持久化控制。其优点包括无文件技术、加密通信和插件扩展,但也存在被检测风险及配置复杂等问题。为深入分析其行为,我们基于 aipy 开发了 Windows 沙箱工具,针对桌面上的 NImplant.exe 进行多维度分析,涵盖进程行为、网络连接(如 TCP 请求、目标 IP/域名)、文件控制等,并生成传输层监控报告与沙箱截图。结果显示,aipy 工具响应迅速,报告清晰易读,满足分析需求。
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
582 12

热门文章

最新文章