HarmonyOS API:@ohos.wifiManager (WLAN)
版本:v3.1 Beta
@ohos.wifiManager (WLAN)
更新时间: 2023-02-17 09:19
该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。
说明
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import wifiManager from '@ohos.wifiManager';
wifi.isWifiActive9+
isWifiActive(): boolean
查询WLAN是否已使能。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
boolean | true:已使能, false:未使能。 |
wifi.scan9+
scan(): void
启动WLAN扫描。
需要权限: ohos.permission.SET_WIFI_INFO 和 ohos.permission.LOCATION
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
boolean | true:扫描操作执行成功, false:扫描操作执行失败。 |
wifi.getScanResults9+
getScanResults(): 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.getScanResults9+
getScanResults(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);
}
});
WifiScanInfo9+
WLAN热点信息。
系统能力: SystemCapability.Communication.WiFi.STA
名称 | 类型 | 可读 | 可写 | 说明 |
ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
bssid | string | 是 | 否 | 热点的BSSID。 |
capabilities | string | 是 | 否 | 热点能力。 |
securityType | 是 | 否 | WLAN加密类型。 | |
rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
band | number | 是 | 否 | WLAN接入点的频段。 |
frequency | number | 是 | 否 | WLAN接入点的频率。 |
channelWidth | number | 是 | 否 | WLAN接入点的带宽。 |
centerFrequency0 | number | 是 | 否 | 热点的中心频率。 |
centerFrequency1 | number | 是 | 否 | 热点的中心频率。如果热点使用两个不重叠的WLAN信道,则返回两个中心频率,分别用centerFrequency0和centerFrequency1表示。 |
infoElems | Array<WifiInfoElem> | 是 | 否 | 信息元素。 |
timestamp | number | 是 | 否 | 时间戳。 |
WifiSecurityType9+
表示加密类型的枚举。
系统能力: 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)加密类型。 |
WIFI_SEC_TYPE_EAP9+ | 5 | EAP加密类型。 |
WIFI_SEC_TYPE_EAP_SUITE_B9+ | 6 | Suite-B 192位加密类型。 |
WIFI_SEC_TYPE_OWE9+ | 7 | 机会性无线加密类型。 |
WIFI_SEC_TYPE_WAPI_CERT9+ | 8 | WAPI-Cert加密类型。 |
WIFI_SEC_TYPE_WAPI_PSK9+ | 9 | WAPI-PSK加密类型。 |
WifiInfoElem9+
WLAN热点信息。
系统能力: SystemCapability.Communication.WiFi.STA
名称 | 类型 | 可读 | 可写 | 说明 |
eid | number | 是 | 否 | 元素ID。 |
content | Uint8Array | 是 | 否 | 元素内容。 |
WifiChannelWidth9+
表示带宽类型的枚举。
系统能力: SystemCapability.Communication.WiFi.STA
名称 | 值 | 说明 |
WIDTH_20MHZ | 0 | 20MHZ。 |
WIDTH_40MHZ | 1 | 40MHZ。 |
WIDTH_80MHZ | 2 | 80MHZ。 |
WIDTH_160MHZ | 3 | 160MHZ。 |
WIDTH_80MHZ_PLUS | 4 | 80MHZ+。 |
WIDTH_INVALID | 5 | 无效值 |
wifi.getScanResultsSync9+
getScanResultsSync(): Array<WifiScanInfo>
获取扫描结果,使用同步方式返回结果。
需要权限: ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION)
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
Array<WifiScanInfo> | 扫描结果数组。 |
WifiDeviceConfig9+
WLAN配置信息。
系统能力: SystemCapability.Communication.WiFi.STA
名称 | 类型 | 可读 | 可写 | 说明 |
ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
bssid | string | 是 | 否 | 热点的BSSID。 |
preSharedKey | string | 是 | 否 | 热点的密钥。 |
isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 |
securityType | 是 | 否 | 加密类型。 |
wifi.addCandidateConfig9+
addCandidateConfig(config: WifiDeviceConfig): Promise<number>
添加候选网络配置,使用Promise异步回调。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
config | 是 | WLAN配置信息。 |
返回值:
类型 | 说明 |
Promise<number> | Promise对象。表示网络配置ID。 |
wifi.addCandidateConfig9+
addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void
添加候选网络配置,使用callback异步回调。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
config | 是 | WLAN配置信息。 | |
callback | AsyncCallback<number> | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 |
wifi.removeCandidateConfig9+
removeCandidateConfig(networkId: number): Promise<void>
移除候选网络配置,使用Promise异步回调。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
networkId | number | 是 | 网络配置ID。 |
返回值:
类型 | 说明 |
Promise<void> | Promise对象。 |
wifi.removeCandidateConfig9+
removeCandidateConfig(networkId: number, callback: AsyncCallback<void>): void
移除候选网络配置,使用callback异步回调。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
networkId | number | 是 | 网络配置ID。 |
callback | AsyncCallback<void> | 是 | 回调函数。当操作成功时,err为0。如果error为非0,表示处理出现错误。 |
wifi.getCandidateConfigs9+
getCandidateConfigs(): Array<WifiDeviceConfig>
获取候选网络配置。
需要权限: ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
Array<WifiDeviceConfig> | 候选网络配置数组。 |
wifi.connectToCandidateConfig9+
connectToCandidateConfig(networkId: number): void
连接到候选网络。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
networkId | number | 是 | 候选网络配置的ID。 |
wifi.getSignalLevel9+
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.getLinkedInfo9+
getLinkedInfo(): Promise<WifiLinkedInfo>
获取WLAN连接信息,使用Promise异步回调。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
Promise<WifiLinkedInfo> | Promise对象。表示WLAN连接信息。 |
wifi.getLinkedInfo9+
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");
});
WifiLinkedInfo9+
提供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接入点是否限制数据量。 |
macType9+ | number | 是 | 否 | MAC地址类型。 |
macAddress | string | 是 | 否 | 设备的MAC地址。 |
ipAddress | number | 是 | 否 | WLAN连接的IP地址。 |
connState | 是 | 否 | WLAN连接状态。 |
ConnState9+
表示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.isConnected9+
isConnected(): boolean
查询WLAN是否已连接。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
boolean | true:已连接, false:未连接。 |
wifi.isFeatureSupported9+
isFeatureSupported(featureId: number): boolean
判断设备是否支持相关WLAN特性。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.Core
参数:
参数名 | 类型 | 必填 | 说明 |
featureId | number | 是 | 特性ID值。 |
返回值:
类型 | 说明 |
boolean | true:支持, false:不支持。 |
wifi.getIpInfo9+
getIpInfo(): IpInfo
获取IP信息。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
返回值:
类型 | 说明 |
IpInfo | IP信息。 |
IpInfo9+
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.getCountryCode9+
getCountryCode(): string
获取国家码信息。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.Core
返回值:
类型 | 说明 |
string | 国家码。 |
wifi.on('wifiStateChange')9+
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')9+
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')9+
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')9+
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')9+
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')9+
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')9+
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')9+
off(type: "wifiRssiChange", callback?: Callback<number>): void
取消注册RSSI状态改变事件。
需要权限: ohos.permission.GET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
type | string | 是 | 固定填"wifiRssiChange"字符串。 |
callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 |