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);


相关文章
|
7天前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
28天前
|
传感器 运维 物联网
蓝牙Mesh网络:连接未来的智能解决方案
蓝牙Mesh网络:连接未来的智能解决方案
150 12
|
1月前
|
监控 网络协议 Linux
网络学习
网络学习
134 68
|
3天前
|
存储 安全 网络安全
浅谈网络安全的认识与学习规划
浅谈网络安全的认识与学习规划
15 6
|
2天前
|
开发框架 JavaScript 前端开发
鸿蒙NEXT开发声明式UI是咋回事?
【10月更文挑战第15天】鸿蒙NEXT的声明式UI基于ArkTS,提供高效简洁的开发体验。ArkTS扩展了TypeScript,支持声明式UI描述、自定义组件及状态管理。ArkUI框架则提供了丰富的组件、布局计算和动画能力。开发者仅需关注数据变化,UI将自动更新,简化了开发流程。此外,其前后端分层设计与编译时优化确保了高性能运行,利于生态发展。通过组件创建、状态管理和渲染控制等方式,开发者能快速构建高质量的鸿蒙应用。
|
2天前
|
前端开发 JavaScript 小程序
前端新机遇!为什么我建议学习鸿蒙?
【10月更文挑战第4天】前端新机遇!为什么我建议学习鸿蒙?
21 0
前端新机遇!为什么我建议学习鸿蒙?
|
6天前
|
存储 网络协议 Java
【网络】UDP回显服务器和客户端的构造,以及连接流程
【网络】UDP回显服务器和客户端的构造,以及连接流程
25 2
|
18天前
|
网络协议 网络架构
网络协议介绍与学习
网络协议介绍与学习
33 4
|
18天前
|
网络协议 网络安全 数据安全/隐私保护
网络基础知识学习
如果你打算深入学习网络技术,建议从上述基础知识入手,并逐渐扩展到更高级的主题,如网络编程、网络安全、网络管理等。同时,实践是学习网络技术的关键,可以通过搭建自己的小型网络环境来进行实验和探索。
14 2
|
8天前
|
安全 5G 网络安全
5G 网络中的认证机制:构建安全连接的基石
5G 网络中的认证机制:构建安全连接的基石
16 0

热门文章

最新文章