HarmonyOS API:@ohos.wifi (WLAN)

joytrian
发布于 2023-4-7 16:02
浏览
0收藏

版本:v3.1 Beta

@ohos.wifi (WLAN)

更新时间: 2023-02-17 09:19


该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。


说明

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import wifi from '@ohos.wifi';

wifi.isWifiActive

isWifiActive(): boolean

查询WLAN是否已使能。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

boolean

true:已使能, false:未使能。

wifi.scan

scan(): boolean

启动WLAN扫描。

需要权限: ohos.permission.SET_WIFI_INFO 和 ohos.permission.LOCATION

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

boolean

true:扫描操作执行成功, false:扫描操作执行失败。

wifi.getScanInfos

getScanInfos(): Promise<Array<WifiScanInfo>>

获取扫描结果,使用Promise异步回调。

需要权限: ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

Promise< Array<​​WifiScanInfo​​> >

Promise对象。返回扫描到的热点列表。

wifi.getScanInfos

getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void

获取扫描结果,使用callback异步回调。

需要权限: ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

callback

AsyncCallback< Array<​​WifiScanInfo​​>>

回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。

示例:

import wifi from '@ohos.wifi';

wifi.getScanInfos((err, result) => {
    if (err) {
        console.error("get scan info error");
        return;
    }

    var len = Object.keys(result).length;
    console.log("wifi received scan info: " + len);
    for (var i = 0; i < len; ++i) {
        console.info("ssid: " + result[i].ssid);
        console.info("bssid: " + result[i].bssid);
        console.info("capabilities: " + result[i].capabilities);
        console.info("securityType: " + result[i].securityType);
        console.info("rssi: " + result[i].rssi);
        console.info("band: " + result[i].band);
        console.info("frequency: " + result[i].frequency);
        console.info("channelWidth: " + result[i].channelWidth);
        console.info("timestamp: " + result[i].timestamp);
    }
});

wifi.getScanInfos().then(result => {
    var len = Object.keys(result).length;
    console.log("wifi received scan info: " + len);
    for (var i = 0; i < len; ++i) {
        console.info("ssid: " + result[i].ssid);
        console.info("bssid: " + result[i].bssid);
        console.info("capabilities: " + result[i].capabilities);
        console.info("securityType: " + result[i].securityType);
        console.info("rssi: " + result[i].rssi);
        console.info("band: " + result[i].band);
        console.info("frequency: " + result[i].frequency);
        console.info("channelWidth: " + result[i].channelWidth);
        console.info("timestamp: " + result[i].timestamp);
    }
});

WifiScanInfo

WLAN热点信息。

系统能力: SystemCapability.Communication.WiFi.STA

名称

类型

可读

可写

说明

ssid

string

热点的SSID,编码格式为UTF-8。

bssid

string

热点的BSSID。

capabilities

string

热点能力。

securityType

​WifiSecurityType​

WLAN加密类型。

rssi

number

热点的信号强度(dBm)。

band

number

WLAN接入点的频段。

frequency

number

WLAN接入点的频率。

channelWidth

number

WLAN接入点的带宽。

timestamp

number

时间戳。

WifiSecurityType

表示加密类型的枚举。

系统能力: SystemCapability.Communication.WiFi.Core

名称

说明

WIFI_SEC_TYPE_INVALID

0

无效加密类型。

WIFI_SEC_TYPE_OPEN

1

开放加密类型。

WIFI_SEC_TYPE_WEP

2

Wired Equivalent Privacy (WEP)加密类型。

WIFI_SEC_TYPE_PSK

3

Pre-shared key (PSK)加密类型。

WIFI_SEC_TYPE_SAE

4

Simultaneous Authentication of Equals (SAE)加密类型。

WifiDeviceConfig

WLAN配置信息。

系统能力: SystemCapability.Communication.WiFi.STA

名称

类型

可读

可写

说明

ssid

string

热点的SSID,编码格式为UTF-8。

bssid

string

热点的BSSID。

preSharedKey

string

热点的密钥。

isHiddenSsid

boolean

是否是隐藏网络。

securityType

​WifiSecurityType​

加密类型。

wifi.addUntrustedConfig7+

addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean>

添加不可信网络配置,使用Promise异步回调。

需要权限: ohos.permission.SET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

config

​WifiDeviceConfig​

WLAN配置信息。

返回值:

类型

说明

Promise<boolean>

Promise对象。表示操作结果,true: 成功, false: 失败。

wifi.addUntrustedConfig7+

addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void

添加不可信网络配置,使用callback异步回调。

需要权限: ohos.permission.SET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

config

​WifiDeviceConfig​

WLAN配置信息。

callback

AsyncCallback<boolean>

回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。

wifi.removeUntrustedConfig7+

removeUntrustedConfig(config: WifiDeviceConfig): Promise<boolean>

移除不可信网络配置,使用Promise异步回调。

需要权限: ohos.permission.SET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

config

​WifiDeviceConfig​

WLAN配置信息。

返回值:

类型

说明

Promise<boolean>

Promise对象。表示操作结果,true: 成功, false: 失败。

wifi.removeUntrustedConfig7+

removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void

移除不可信网络配置,使用callback异步回调。

需要权限: ohos.permission.SET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

config

​WifiDeviceConfig​

WLAN配置信息。

callback

AsyncCallback<boolean>

回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。

wifi.getSignalLevel

getSignalLevel(rssi: number, band: number): number

查询WLAN信号强度。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

rssi

number

热点的信号强度(dBm)。

band

number

WLAN接入点的频段。

返回值:

类型

说明

number

信号强度,取值范围为[0, 4]。

wifi.getLinkedInfo

getLinkedInfo(): Promise<WifiLinkedInfo>

获取WLAN连接信息,使用Promise异步回调。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

Promise<​​WifiLinkedInfo​​>

Promise对象。表示WLAN连接信息。

wifi.getLinkedInfo

getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void

获取WLAN连接信息,使用callback异步回调。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

callback

AsyncCallback<​​WifiLinkedInfo​​>

回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果error为非0,表示处理出现错误。

示例:

import wifi from '@ohos.wifi';

wifi.getLinkedInfo((err, data) => {
    if (err) {
        console.error("get linked info error");
        return;
    }
    console.info("get wifi linked info: " + JSON.stringify(data));
});

wifi.getLinkedInfo().then(data => {
    console.info("get wifi linked info: " + JSON.stringify(data));
}).catch(error => {
    console.info("get linked info error");
});

WifiLinkedInfo

提供WLAN连接的相关信息。

系统能力: SystemCapability.Communication.WiFi.STA

名称

类型

可读

可写

说明

ssid

string

热点的SSID,编码格式为UTF-8。

bssid

string

热点的BSSID。

rssi

number

热点的信号强度(dBm)。

band

number

WLAN接入点的频段。

linkSpeed

number

WLAN接入点的速度。

frequency

number

WLAN接入点的频率。

isHidden

boolean

WLAN接入点是否是隐藏网络。

isRestricted

boolean

WLAN接入点是否限制数据量。

macAddress

string

设备的MAC地址。

ipAddress

number

WLAN连接的IP地址。

connState

​ConnState​

WLAN连接状态。

ConnState

表示WLAN连接状态的枚举。

系统能力: SystemCapability.Communication.WiFi.STA

名称

说明

SCANNING

0

设备正在搜索可用的AP。

CONNECTING

1

正在建立WLAN连接。

AUTHENTICATING

2

WLAN连接正在认证中。

OBTAINING_IPADDR

3

正在获取WLAN连接的IP地址。

CONNECTED

4

WLAN连接已建立。

DISCONNECTING

5

WLAN连接正在断开。

DISCONNECTED

6

WLAN连接已断开。

UNKNOWN

7

WLAN连接建立失败。

wifi.isConnected7+

isConnected(): boolean

查询WLAN是否已连接。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

boolean

true:已连接, false:未连接。

wifi.isFeatureSupported7+

isFeatureSupported(featureId: number): boolean

判断设备是否支持相关WLAN特性。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.Core

参数:

参数名

类型

必填

说明

featureId

number

特性ID值。

返回值:

类型

说明

boolean

true:支持, false:不支持。

wifi.getIpInfo7+

getIpInfo(): IpInfo

获取IP信息。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

返回值:

类型

说明

​IpInfo​

IP信息。

IpInfo7+

IP信息。

系统能力: SystemCapability.Communication.WiFi.STA

名称

类型

可读

可写

说明

ipAddress

number

IP地址。

gateway

number

网关。

netmask

number

掩码。

primaryDns

number

主DNS服务器IP地址。

secondDns

number

备DNS服务器IP地址。

serverIp

number

DHCP服务端IP地址。

leaseDuration

number

IP地址租用时长。

wifi.getCountryCode7+

getCountryCode(): string

获取国家码信息。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.Core

返回值:

类型

说明

string

国家码。

wifi.on('wifiStateChange')7+

on(type: "wifiStateChange", callback: Callback<number>): void

注册WLAN状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiStateChange"字符串。

callback

Callback<number>

状态改变回调函数。

状态改变事件的枚举:

枚举值

说明

0

未激活。

1

已激活。

2

激活中。

3

去激活中。

wifi.off('wifiStateChange')7+

off(type: "wifiStateChange", callback?: Callback<number>): void

取消注册WLAN状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiStateChange"字符串。

callback

Callback<number>

状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。

示例:

import wifi from '@ohos.wifi';

var recvPowerNotifyFunc = result => {
    console.info("Receive power state change event: " + result);
}

// Register event
wifi.on("wifiStateChange", recvPowerNotifyFunc);

// Unregister event
wifi.off("wifiStateChange", recvPowerNotifyFunc);

wifi.on('wifiConnectionChange')7+

on(type: "wifiConnectionChange", callback: Callback<number>): void

注册WLAN连接状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiConnectionChange"字符串。

callback

Callback<number>

状态改变回调函数。

连接状态改变事件的枚举:

枚举值

说明

0

已断开。

1

已连接。

wifi.off('wifiConnectionChange')7+

off(type: "wifiConnectionChange", callback?: Callback<number>): void

取消注册WLAN连接状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiConnectionChange"字符串。

callback

Callback<number>

连接状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。

wifi.on('wifiScanStateChange')7+

on(type: "wifiScanStateChange", callback: Callback<number>): void

注册扫描状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiScanStateChange"字符串。

callback

Callback<number>

状态改变回调函数。

扫描状态改变事件的枚举:

枚举值

说明

0

扫描失败。

1

扫描成功。

wifi.off('wifiScanStateChange')7+

off(type: "wifiScanStateChange", callback?: Callback<number>): void

取消注册扫描状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiScanStateChange"字符串。

callback

Callback<number>

状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。

wifi.on('wifiRssiChange')7+

on(type: "wifiRssiChange", callback: Callback<number>): void

注册RSSI状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiRssiChange"字符串。

callback

Callback<number>

状态改变回调函数,返回以dBm为单位的RSSI值。

wifi.off('wifiRssiChange')7+

off(type: "wifiRssiChange", callback?: Callback<number>): void

取消注册RSSI状态改变事件。

需要权限: ohos.permission.GET_WIFI_INFO

系统能力: SystemCapability.Communication.WiFi.STA

参数:

参数名

类型

必填

说明

type

string

固定填"wifiRssiChange"字符串。

callback

Callback<number>

状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-wifi-0000001427745072-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001427745072__导入模块​

已于2023-4-7 16:02:25修改
收藏
回复
举报
回复