HarmonyOS API:@ohos.wifi (WLAN)
版本: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 | 是 | 否 | 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 | 是 | 否 | 加密类型。 |
wifi.addUntrustedConfig7+
addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean>
添加不可信网络配置,使用Promise异步回调。
需要权限: ohos.permission.SET_WIFI_INFO
系统能力: SystemCapability.Communication.WiFi.STA
参数:
参数名 | 类型 | 必填 | 说明 |
config | 是 | 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 | 是 | 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 | 是 | 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 | 是 | 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 | 是 | 否 | 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不填,将去注册该事件关联的所有回调函数。 |