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

返回值:

类型 说明
boolean true: 已激活,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

返回值:

类型 说明
boolean true: 已连接,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

返回值:

类型 说明
boolean true: 扫描动作执行成功,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扫描结果。

参数:

参数名 类型 必填 说明
callback Callback<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 信息。

参数名 类型 读写属性 说明
ssid string 只读 Wi-Fi ssid。
bssid string 只读 Wi-Fi bssid。
capabilities string 只读 热点功能。
securityType WifiSecurityType 只读 安全类型。
rssi number 只读 信号强度。
band number 只读 频段。
frequency number 只读 频率。
channelWidth number 只读 信道带宽。
timestamp number 只读 时间戳。

WifiSecurityType1+

枚举,Wi-Fi安全类型。

系统能力:

名称 默认值 描述
WIFI_SEC_TYPE_INVALID 0x00 安全类型无效。
WIFI_SEC_TYPE_OPEN 0x01 开放。
WIFI_SEC_TYPE_WEP 0x02 有线等效保密 (WEP)。
WIFI_SEC_TYPE_PSK 0x03 预共享密钥 (PSK)。
WIFI_SEC_TYPE_SAE 0x04 同时进行等价身份验证 (SAE)。

enableNetwork1+

enableNetwork(networkId: number): boolean

启用设备配置。

参数:

参数名 类型 必填 说明
networkId number 设备配置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

禁用设备配置。

参数:

参数名 类型 必填 说明
networkId number 设备配置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的网络。

参数:

参数名 类型 必填 说明
networkId number 设备配置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设备配置。

参数:

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

返回值:

类型 说明
number WLAN配置存储的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 设备配置信息。

参数名 类型 读写属性 说明
ssid string 只读 Wi-Fi SSID:最大长度为 32。
bssid string 只读 Wi-Fi bssid(MAC):长度为6。
preSharedKey string 只读 Wi-Fi 密钥:最大长度为 64。
isHiddenSsid boolean 只读 隐藏或不隐藏SSID,false(默认):不隐藏。
securityType WifiSecurityType 只读 安全类型:引用定义WifiSecurityType。
creatorUid number 只读 Wi-Fi 配置创建者的 UID。
disableReason number 只读 禁用原因。
netId number 只读 分配的网络 ID。
randomMacType number 只读 随机 Mac 类型。
randomMacAddr string 只读 随机MAC地址,长度为6。
ipType IpType 只读 IP类型。
staticIp IpConfig 只读 静态 IP 配置。

IpConfig1+

Wi-Fi IP配置信息。

参数名 类型 读写属性 说明
ipAddress number 只读 IP地址。
gateway number 只读 网关。
dnsServers ArrayBuffer 只读 dns服务器。
netmask boolean 只读 子网掩码。

IpType1+

枚举,Wi-Fi IP类型。

名称 默认值 描述
STATIC 0x00 静态配置的 IP 设置。
DHCP 0x01 动态配置的 IP 设置。
UNKNOWN 0x02 未分配 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设备配置。

参数:

参数名 类型 必填 说明
networkId number 设备配置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

连接到指定配置的网络。

参数:

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

返回值:

类型 说明
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连接信息。

参数:

参数名 类型 必填 说明
callback Callback<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连接信息。

参数名 类型 读写属性 说明
ssid string 只读 Wi-Fi 热点的 SSID。
bssid string 只读 热点的BSSID。
networkId number 只读 Wi-Fi连接的ID。
rssi number 只读 热点的信号强度(dBm)。
band number 只读 WLAN接入点的频段。
linkSpeed number 只读 WLAN接入点的频段。
frequency number 只读 WLAN接入点的频率。
isHidden boolean 只读 Wi-Fi 连接的接入点 (AP) 的 SSID 是否隐藏。
isRestricted boolean 只读 Wi-Fi 连接是否限制数据量。
chload number 只读 Wi-Fi 连接的负载值。值越大表示负载越高。
snr number 只读 Wi-Fi 连接的信噪比 (SNR)。
macAddress string 只读 设备的 Wi-Fi MAC 地址。
ipAddress number 只读 Wi-Fi 连接的 IP 地址。
suppState SuppState 只读 Wi-Fi 连接的请求方的状态。
connState ConnState 只读 Wi-Fi 连接的状态。

SuppState1+

枚举,supplicant状态。

名称 默认值 描述
DISCONNECTED 0x00 请求方已从ap端断开连接。
INTERFACE_DISABLED 0x01 网络接口已禁用。
INACTIVE 0x02 请求方已禁用。
SCANNING 0x03 请求方正在扫描 Wi-Fi 连接。
AUTHENTICATING 0x04 请求方正在使用指定的 AP 进行身份验证。
ASSOCIATING 0x05 请求方正在与指定的 AP 关联。
ASSOCIATED 0x06 请求方与指定的 AP 关联
FOUR_WAY_HANDSHAKE 0x07 四方握手正在进行中
GROUP_HANDSHAKE 0x08 组握手正在进行中
COMPLETED 0x09 所有身份验证已完成
UNINITIALIZED 0x0a 无法与请求方建立连接
INVALID 0x0b 请求方处于未知或无效状态

ConnState1+

枚举, 连接状态。

名称 默认值 描述
SCANNING 0x00 请求方已从ap端断开连接。
CONNECTING 0x01 网络接口已禁用。
AUTHENTICATING 0x02 请求方已禁用。
OBTAINING_IPADDR 0x03 正在获取 Wi-Fi 连接的 IP 地址。
CONNECTED 0x04 无线网络连接已设置。
DISCONNECTING 0x05 Wi-Fi 连接正在断开中。
DISCONNECTED 0x06 断开。
UNKNOWN 0x07 无法设置 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信息。

返回值:

类型 说明
IpInfo ip信息。

示例:

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 信息。

参数名 类型 读写属性 说明
ipAddress number 只读 Wi-Fi 连接的IP地址。
gateway number 只读 Wi-Fi 连接的网关。
netmask number 只读 Wi-Fi 连接的子网掩码。
primaryDns number 只读 Wi-Fi 连接的主 DNS 服务器 IP 地址。
secondDns number 只读 Wi-Fi 连接的辅助 DNS 服务器 IP 地址。
serverIp number 只读 Wi-Fi 连接的 DHCP 服务器 IP 地址。
leaseDuration number 只读 Wi-Fi 连接的 IP 地址租用持续时间。

getSignalLevel1+

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

查询WLAN信号强度。

参数:

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

返回值:

类型 说明
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扫描状态改变事件回调。

参数:

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

示例:

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

wifiScanStateChangedInfo1+

扫描状态改变信息。

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

off('wifiScanStateChanged')1+

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

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

参数:

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

示例:

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

on('wifiConnectionChanged')1+

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

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

参数:

参数名 类型 必填 说明
type string 固定填"wifiConnectionChanged"字符串。
callback Callback<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+

连接状态改变信息。

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

off('wifiConnectionChanged')1+

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

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

参数:

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

示例:

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

on('hotspotStateChanged')1+

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

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

参数:

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

示例:

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

off('hotspotStateChanged')1+

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

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

参数:

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

示例:

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

on('hotspotStaJoin')1+

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

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

参数:

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

示例:

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

StationInfo1+

Wi-Fi sta 信息。

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

off('hotspotStaJoin')1+

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

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

参数:

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

示例:

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

on('hotspotStaLeave')1+

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

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

参数:

参数名 类型 必填 说明
type string 固定填"hotspotStaLeave"字符串。
callback Callback<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断开改变事件回调。

参数:

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

示例:

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

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

更多推荐