WIFI模块

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

简介

本模块主要提供WLAN基础功能,当前只支持STA的能力,提供给应用通过WLAN连接AP。

导入模块

import wifi from '@ohos.wifi';

enableWifi1+

enableWifi(void): boolean

使能Wi-Fi模块。

返回值:

类型说明
boolean操作结果,true: 使能成功,false: 使能失败。

示例:

var err = wifi.enableWifi();
if (err == true) {
    console.log('enableWifi succ.');
} else {
    console.error('enableWifi fail.');
}

disableWifi1+

disableWifi(void): boolean

关闭Wi-Fi模块。

返回值:

类型说明
boolean操作结果,true: 关闭成功,false: 关闭失败。

示例:

var ret = wifi.disableWifi();
if (ret == true) {
    console.log('disableWifi succ.');
} else {
    console.error('disableWifi fail.');
}

isWifiActive 1+

查询Wi-Fi是否已使能。

isWifiActive(void): boolean

返回值:

类型说明
booleantrue: 已激活,false: 未激活。

示例:

var err = wifi.isWifiActive();
if (err == true) {
    console.log('wifi is active.');
} else {
    console.log('wifi is deactive.');
}

 

isConnected 1+

查询Wi-Fi是否已连接。

isConnected(void): boolean

返回值:

类型说明
booleantrue: 已连接,false: 未连接。

示例:

var err = wifi.isConnected();
if (err == true) {
    console.log('wifi is connected.');
} else {
    console.log('wifi is disconnected.');
}

 

scan1+

启动Wi-Fi扫描。

scan(void): boolean

返回值:

类型说明
booleantrue: 扫描动作执行成功,false: 扫描动作执行失败。

示例:

var err = wifi.scan();
if (err == true) {
    console.log('scan succ.');
} else {
    console.error('scan fail');
}

getScanInfos1+

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

获取Wi-Fi扫描结果。

参数:

参数名类型必填说明
callbackCallback<Array<WifiScanInfo>>扫描到的热点列表结果回调函数。

示例:

wifi.getScanInfos({
    callback: (infos) => {
        console.log('getScanInfoList callback success');
        for (let i = 0; i < infos.length; i++) {
            console.log('getScanInfoList: ssid: ' + infos[i].ssid 
            + ', bssid: ' + infos[i].bssid + ', capabilities: ' + infos[i].capabilities
            + ', securityType: ' + infos[i].securityType + ', rssi: ' + infos[i].rssi
            + ', band: ' + infos[i].band + ', frequency: ' + infos[i].frequency 
            + ', channelWidth: ' + infos[i].channelWidth + ', timestamp: ' + infos[i].timestamp);
        }
    }
});

WifiScanInfo1+

扫描的 Wi-Fi 信息。

参数名类型读写属性说明
ssidstring只读Wi-Fi ssid。
bssidstring只读Wi-Fi bssid。
capabilitiesstring只读热点功能。
securityTypeWifiSecurityType只读安全类型。
rssinumber只读信号强度。
bandnumber只读频段。
frequencynumber只读频率。
channelWidthnumber只读信道带宽。
timestampnumber只读时间戳。

WifiSecurityType1+

枚举,Wi-Fi安全类型。

系统能力:

名称默认值描述
WIFI_SEC_TYPE_INVALID0x00安全类型无效。
WIFI_SEC_TYPE_OPEN0x01开放。
WIFI_SEC_TYPE_WEP0x02有线等效保密 (WEP)。
WIFI_SEC_TYPE_PSK0x03预共享密钥 (PSK)。
WIFI_SEC_TYPE_SAE0x04同时进行等价身份验证 (SAE)。

enableNetwork1+

enableNetwork(networkId: number): boolean

启用设备配置。

参数:

参数名类型必填说明
networkIdnumber设备配置Id号。

返回值:

类型说明
boolean操作结果,true为成功,false为失败。

示例:

var err = wifi.enableNetwork(networkId: 0);
if (err == true) {
    console.log('enableNetwork succ.');
} else {
    console.error('enableNetwork fail.');
}

disableNetwork1+

disableNetwork(networkId: number): boolean

禁用设备配置。

参数:

参数名类型必填说明
networkIdnumber设备配置Id号。

返回值:

类型说明
boolean操作结果,true为成功,false为失败。

示例:

var err = wifi.disableNetwork({
    networkId: 0,
});
if (err == true) {
    console.log('disableNetwork succ.');
} else {
    console.error('disableNetwork fail.');
}

connectToNetwork1+

connectToNetwork(networkId: number): boolean

连接到指定Id的网络。

参数:

参数名类型必填说明
networkIdnumber设备配置Id号。

返回值:

类型说明
boolean操作结果,true为成功,false为失败。

示例:

var err = wifi.connectToNetwork(networkId: networkId);
if (err == true) {
    console.log('connectToNetwork succ.');
} else {
    console.error('connectToNetwork fail');
}

addDeviceConfig1+

addDeviceConfig(config: WifiDeviceConfig): number

添加wlan设备配置。

参数:

参数名类型必填说明
configWifiDeviceConfigWi-Fi配置信息。

返回值:

类型说明
numberWLAN配置存储的ID。

示例:

let networkId = 0;
var dnsServers = new ArrayBuffer(2);
var data = new Int8Array(dnsServers);
for(var i = 0; i < 2; i ++) {
    data[i] = 0x11;
}
var res = wifi.addDeviceConfig({
	config:{
        ssid: '15wifi',
        bssid:'12:34:56:78:9a:bc',
        preSharedKey: 'Rewhl15101',
        securityType: 4,
        ipType:0,
        isHiddenSsid: false,
        netId: 0
            staticIp:{
            ipAddress: 1678420160,
            gateway: 17475776,
            netmask: 16777215,
            dnsServers: dnsServers,
        },
	},
});
if (res >= 0) {
	console.log('AddDeviceConfig succ. result: ' + res);
	networkId = res;
} else {
	console.error('AddDeviceConfig fail');
}

WifiDeviceConfig1+

Wi-Fi 设备配置信息。

参数名类型读写属性说明
ssidstring只读Wi-Fi SSID:最大长度为 32。
bssidstring只读Wi-Fi bssid(MAC):长度为6。
preSharedKeystring只读Wi-Fi 密钥:最大长度为 64。
isHiddenSsidboolean只读隐藏或不隐藏SSID,false(默认):不隐藏。
securityTypeWifiSecurityType只读安全类型:引用定义WifiSecurityType。
creatorUidnumber只读Wi-Fi 配置创建者的 UID。
disableReasonnumber只读禁用原因。
netIdnumber只读分配的网络 ID。
randomMacTypenumber只读随机 Mac 类型。
randomMacAddrstring只读随机MAC地址,长度为6。
ipTypeIpType只读IP类型。
staticIpIpConfig只读静态 IP 配置。

IpConfig1+

Wi-Fi IP配置信息。

参数名类型读写属性说明
ipAddressnumber只读IP地址。
gatewaynumber只读网关。
dnsServersArrayBuffer只读dns服务器。
netmaskboolean只读子网掩码。

IpType1+

枚举,Wi-Fi IP类型。

名称默认值描述
STATIC0x00静态配置的 IP 设置。
DHCP0x01动态配置的 IP 设置。
UNKNOWN0x02未分配 IP 详细信息。

getDeviceConfigs1+

getDeviceConfigs(): Array<WifiDeviceConfig>

获取wlan设备配置。

返回值:

类型说明
Array<WifiDeviceConfig>Wi-Fi配置结果数组。

示例:

var config = Wifi.getDeviceConfigs();
if (config.length > 0) {
    for (let i = 0; i < config.length; i++) {
        console.log('getDeviceConfigs succ. ssid: '+config[i].ssid 
        + ', bssid: ' +config[i].bssid +', preSharedKey: ' + config[i].preSharedKey
        + ', isHiddenSsid: ' + config[i].isHiddenSsid + ', securityType: ' + config[i].securityType 
        + ', creatorUid: ' + config[i].creatorUid + ', disableReason: ' + config[i].disableReason 
        + ', netId: ' + config[i].netId + ', randomMacType: ' + config[i].randomMacType
        + ', randomMacAddr: ' + config[i].randomMacAddr + ', ipType: ' + config[i].ipType
        + ', staticIp.ipAddress: ' + config[i].staticIp.ipAddress 
        +', staticIp.gateway: '+config[i].staticIp.gateway 
        +', netmask: ' + config[i].staticIp.netmask);
    }
} else {
    console.error('getDeviceConfigs fail.');
}

removeDevice1+

removeDevice(networkId: number): boolean

移除Wi-Fi设备配置。

参数:

参数名类型必填说明
networkIdnumber设备配置Id号。

返回值:

类型说明
boolean操作结果,true为成功,false为失败。

示例:

var err = Wifi.removeDevice({
	networkId: 0,
});
if (err == true) {
	console.log('removeDevice succ.');
} else {
	console.error('removeDevice fail.');
}

connectToDevice1+

connectToDevice(config: WifiDeviceConfig): boolean

连接到指定配置的网络。

参数:

参数名类型必填说明
configWifiDeviceConfig设备配置。

返回值:

类型说明
boolean操作结果,true为成功,false为失败

示例:

var dnsServers = new ArrayBuffer(2);
var data = new Int8Array(dnsServers);
for(var i = 0; i < 2; i ++) {
    data[i] = 0x11;
}
var err = wifi.connectToDevice({
    config: {
        ssid: '15wifi',
        bssid:'12:34:56:78:9a:bc',
        preSharedKey: 'Rewhl15101',
        isHiddenSsid: false,
        securityType: 4,
        netId:0,
        ipType:0,
        staticIp:{
            ipAddress:1678420160,
            gateway:17475776,
            netmask:16777215,
            dnsServers:dnsServers,
        },
    },
});
if (err == true) {
    console.log('connectToDevice succ.');
} else {
    console.error('connectToDevice fail.');
}

disconnect1+

disconnect(void): boolean

断开当前连接。

返回值:

类型说明
boolean操作结果,true为成功,false为失败

示例:

var err = wifi.disconnect();
if (err == true) {
    console.log('disconnect succ.');
} else {
    console.log('disconnect fail.');
}

getLinkedInfo1+

getLinkedInfo(callback: Callback<WifiLinkedInfo>): void

获取Wi-Fi连接信息。

参数:

参数名类型必填说明
callbackCallback<WifiLinkedInfo>连接信息的回调。

示例:

wifi.getLinkedInfo({callback: (info) => {
		console.log(TAG + 'getLinkedInfo success. ssid: ' + info.ssid + ', bssid: ' + info.bssid 
			+ ', networkId: ' + info.networkId + ', rssi: ' + info.rssi + ', band: ' + info.band 
			+ ', linkSpeed: ' + info.linkSpeed + ', frequency: ' + info.frequency
			+ ', isHidden: ' + info.isHidden + ', isRestricted: ' + info.isRestricted 
			+ ', chload: ' + info.chload + ', snr: ' + info.snr + ', macAddress: ' + info.macAddress
			+ ', ipAddress: ' + info.ipAddress + ', suppState: ' + info.suppState 
			+ ', connState: ' + info.connState);
		}
});

WifiLinkedInfo1+

WLAN连接信息。

参数名类型读写属性说明
ssidstring只读Wi-Fi 热点的 SSID。
bssidstring只读热点的BSSID。
networkIdnumber只读Wi-Fi连接的ID。
rssinumber只读热点的信号强度(dBm)。
bandnumber只读WLAN接入点的频段。
linkSpeednumber只读WLAN接入点的频段。
frequencynumber只读WLAN接入点的频率。
isHiddenboolean只读Wi-Fi 连接的接入点 (AP) 的 SSID 是否隐藏。
isRestrictedboolean只读Wi-Fi 连接是否限制数据量。
chloadnumber只读Wi-Fi 连接的负载值。值越大表示负载越高。
snrnumber只读Wi-Fi 连接的信噪比 (SNR)。
macAddressstring只读设备的 Wi-Fi MAC 地址。
ipAddressnumber只读Wi-Fi 连接的 IP 地址。
suppStateSuppState只读Wi-Fi 连接的请求方的状态。
connStateConnState只读Wi-Fi 连接的状态。

SuppState1+

枚举,supplicant状态。

名称默认值描述
DISCONNECTED0x00请求方已从ap端断开连接。
INTERFACE_DISABLED0x01网络接口已禁用。
INACTIVE0x02请求方已禁用。
SCANNING0x03请求方正在扫描 Wi-Fi 连接。
AUTHENTICATING0x04请求方正在使用指定的 AP 进行身份验证。
ASSOCIATING0x05请求方正在与指定的 AP 关联。
ASSOCIATED0x06请求方与指定的 AP 关联
FOUR_WAY_HANDSHAKE0x07四方握手正在进行中
GROUP_HANDSHAKE0x08组握手正在进行中
COMPLETED0x09所有身份验证已完成
UNINITIALIZED0x0a无法与请求方建立连接
INVALID0x0b请求方处于未知或无效状态

ConnState1+

枚举, 连接状态。

名称默认值描述
SCANNING0x00请求方已从ap端断开连接。
CONNECTING0x01网络接口已禁用。
AUTHENTICATING0x02请求方已禁用。
OBTAINING_IPADDR0x03正在获取 Wi-Fi 连接的 IP 地址。
CONNECTED0x04无线网络连接已设置。
DISCONNECTING0x05Wi-Fi 连接正在断开中。
DISCONNECTED0x06断开。
UNKNOWN0x07无法设置 Wi-Fi 连接。

getDeviceMacAddress1+

getDeviceMacAddress(): string

获取设备mac地址。

返回值:

类型说明
string设备mac地址。

示例:

var mac = wifi.getDeviceMacAddress();
if (mac == null) {
    console.error('getDeviceMacAddress fail.');
} else {
    console.log('getDeviceMacAddress succ. mac: ' + mac);
}

 

getIpInfo1+

getIpInfo(): IpInfo

获取IP信息。

返回值:

类型说明
IpInfoip信息。

示例:

var info = wifi.getIpInfo();
if (info == null) {
    console.error('getIpInfo fail.');
} else {
    console.log('getIpInfo succ. ipAddress: ' + info.ipAddress + ', gateway: ' + info.gateway 
    	+ ', netmask: ' + info.netmask + ', primaryDns: ' + info.primaryDns 
    	+ ', secondDns: ' + info.secondDns + ', serverIp: ' + info.serverIp 
    	+ ', leaseDuration: ' + info.leaseDuration);
}

IpInfo1+

无线网络 IP 信息。

参数名类型读写属性说明
ipAddressnumber只读Wi-Fi 连接的IP地址。
gatewaynumber只读Wi-Fi 连接的网关。
netmasknumber只读Wi-Fi 连接的子网掩码。
primaryDnsnumber只读Wi-Fi 连接的主 DNS 服务器 IP 地址。
secondDnsnumber只读Wi-Fi 连接的辅助 DNS 服务器 IP 地址。
serverIpnumber只读Wi-Fi 连接的 DHCP 服务器 IP 地址。
leaseDurationnumber只读Wi-Fi 连接的 IP 地址租用持续时间。

getSignalLevel1+

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

查询WLAN信号强度。

参数:

参数名类型必填说明
rssinumber热点的信号强度(dBm)。
bandnumberWLAN接入点的频段。

返回值:

类型说明
number信号强度,取值范围为[0, 4]。

示例:

var signalLevel = wifi.getSignalLevel(rssi: 1, band: 2);
console.log('getSignalLevel succ. signalLevel: ' + signalLevel);

on('wifiScanStateChanged')1+

on(type: "wifiScanStateChanged", callback: Callback<wifiScanStateChangedInfo>): void

注册Wi-Fi扫描状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"wifiScanStateChanged"字符串。
callbackCallback<wifiScanStateChangedInfo>状态改变回调函数。

示例:

wifi.on({type: 'wifiScanStateChanged'}, {(data) => {
		console.log('RegisterScanStateChangedCb state: ' + data.state + ', size: ' + data.size);
    }
});

wifiScanStateChangedInfo1+

扫描状态改变信息。

参数名类型必填说明
stateboolean扫描状态,false为失败,true为成功。
sizenumber扫描到的数量。

off('wifiScanStateChanged')1+

off(type: "wifiScanStateChanged", callback?: Callback<wifiScanStateChangedInfo>): void

注销Wi-Fi扫描状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"wifiScanStateChanged"字符串。
callbackCallback<wifiScanStateChangedInfo>状态改变回调函数。

示例:

wifi.off({type: 'wifiScanStateChanged'});

on('wifiConnectionChanged')1+

on(type: "wifiConnectionChanged", callback: Callback<wifiConnectionChangedInfo>): void

注册Wi-Fi连接状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"wifiConnectionChanged"字符串。
callbackCallback<wifiConnectionChangedInfo>状态改变回调函数。

示例:

wifi.on({type:'wifiConnectionChanged'}, {callback: (data) => {
		console.log('registerConnectionChangedCb state: ' + data.state 
		+ ', ssid: ' + data.info.ssid + ', bssid: ' + data.info.bssid 
		+ ', networkId: ' + data.info.networkId +', rssi: ' + data.info.rssi 
		+ ', band: ' + data.info.band + ', linkSpeed: ' + data.info.linkSpeed 
		+ ', frequency: ' + data.info.frequency + ', isHidden: ' + data.info.isHidden 
		+ ', isRestricted: ' + data.info.isRestricted + ', chload: ' + data.info.chload 
		+ ', snr: ' + data.info.snr + ', macAddress: ' + data.info.macAddress 
		+ ', ipAddress: ' + data.info.ipAddress + ', suppState: ' + data.info.suppState 
		+', connState: '+data.info.connState );
	},}
);

wifiScanStateChangedInfo1+

连接状态改变信息。

参数名类型读写属性说明
statenumber只读扫描状态,0为失败,1为成功。
infoWifiLinkedInfo只读连接信息。

off('wifiConnectionChanged')1+

off(type: "wifiConnectionChanged", callback?: Callback<wifiConnectionChangedInfo>): void

注销Wi-Fi连接状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"wifiConnectionChanged"字符串。
callbackCallback<wifiConnectionChangedInfo>状态改变回调函数。

示例:

wifi.off({type: 'wifiConnectionChanged'});

on('hotspotStateChanged')1+

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

注册热点状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStateChanged"字符串。
callbackCallback<number>状态改变回调函数。

示例:

wifi.on({type: 'hotspotStateChanged'}, {callback: (data) => {
		console.log('RegisterHotspotStateChangedCb state: ' + data);
	},}
);

off('hotspotStateChanged')1+

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

注销热点状态改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStateChanged"字符串。
callbackCallback<number>状态改变回调函数。

示例:

wifi.off({type: 'hotspotStateChanged'});

on('hotspotStaJoin')1+

on(type: "hotspotStaJoin", callback: Callback<StationInfo>): void

注册Wi-Fi sta连接改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStaJoin"字符串。
callbackCallback<StationInfo>状态改变回调函数。

示例:

wifi.on({type: 'hotspotStaJoin'}, {callback: (data) => {
	console.log('registerHotspotStaJoinCb name: ' + data.name 
			+ ', macAddress: ' + data.macAddress + ', ipAddress: ' + data.ipAddress);
	},}
);

StationInfo1+

Wi-Fi sta 信息。

参数名类型读写属性说明
namestring只读Wi-Fi 客户端的网络名称。
macAddressstring只读Wi-Fi 客户端的 MAC 地址。
ipAddressstring只读无线网络客户端的 IP 地址。

off('hotspotStaJoin')1+

off(type: "hotspotStaJoin", callback?: Callback<StationInfo>): void

注销Wi-Fi sta连接改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStaJoin"字符串。
callbackCallback<StationInfo>状态改变回调函数。

示例:

wifi.off({type: 'hotspotStaJoin'});

on('hotspotStaLeave')1+

on(type: "hotspotStaLeave", callback: Callback<StationInfo>): void

注册Wi-Fi sta断开改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStaLeave"字符串。
callbackCallback<StationInfo>状态改变回调函数。

示例:

wifi.on({type: 'hotspotStaLeave'}, {callback: (data) => {
	console.log('registerHotspotStaLeaveCb name: ' + data.name 
			+ ', macAddress: ' + data.macAddress + ', ipAddress: ' + data.ipAddress);
	},}
);

off('hotspotStaLeave')1+

off(type: "hotspotStaLeave", callback?: Callback<StationInfo>): void

注销Wi-Fi sta断开改变事件回调。

参数:

参数名类型必填说明
typestring固定填"hotspotStaLeave"字符串。
callbackCallback<StationInfo>状态改变回调函数。

示例:

wifi.off({type: 'hotspotStaLeave'});
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐