@ohos.wifi (WLAN)

The WLAN module provides basic wireless local area network (WLAN) functions, peer-to-peer (P2P) functions, and WLAN message notification services. It allows applications to communicate with other devices over WLAN.

NOTE

The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. The APIs of this module are no longer maintained since API version 9. You are advised to use @ohos.wifiManager (WLAN).

Modules to Import

import wifi from '@ohos.wifi';

wifi.isWifiActive

isWifiActive(): boolean

Checks whether WLAN is enabled.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
boolean Returns true if WLAN is enabled; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	let isWifiActive = wifi.isWifiActive();
	console.info("isWifiActive:" + isWifiActive);
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.scan

scan(): boolean

Starts a scan for WLAN.

Required permissions: ohos.permission.SET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	wifi.scan();
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.getScanInfos

getScanInfos(): Promise<Array<WifiScanInfo>>

Obtains the scan result. This API uses a promise to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_PEERS_MAC (or ohos.permission.LOCATION)

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
Promise< Array<WifiScanInfo> > Promise used to return the detected hotspots.

wifi.getScanInfos

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

Obtains the scan result. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.GET_WIFI_PEERS_MAC (or ohos.permission.LOCATION)

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
callback AsyncCallback< Array<WifiScanInfo>> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is the detected hotspots. Otherwise, err is a non-zero value and data is empty.

Example

import wifi from '@ohos.wifi';

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

    let len = result.length;
    console.log("wifi received scan info: " + len);
    for (let 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 => {
    let len = result.length;
    console.log("wifi received scan info: " + len);
    for (let 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

Represents WLAN hotspot information.

System capability: SystemCapability.Communication.WiFi.STA

Name Type Readable Writable Description
ssid string Yes No Service set identifier (SSID) of the hotspot, in UTF-8 format. The maximum length is 32 bytes.
bssid string Yes No Basic service set identifier (BSSID) of the hotspot, for example, 00:11:22:33:44:55.
capabilities string Yes No Hotspot capabilities.
securityType WifiSecurityType Yes No WLAN security type.
rssi number Yes No Received signal strength indicator (RSSI) of the hotspot, in dBm.
band number Yes No Frequency band of the WLAN access point (AP).
frequency number Yes No Frequency of the WLAN AP.
channelWidth number Yes No Channel width of the WLAN AP.
timestamp number Yes No Timestamp.

WifiSecurityType

Enumerates the WLAN security types.

System capability: SystemCapability.Communication.WiFi.Core

Name Value Description
WIFI_SEC_TYPE_INVALID 0 Invalid security type.
WIFI_SEC_TYPE_OPEN 1 Open security type.
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

Represents the WLAN configuration.

System capability: SystemCapability.Communication.WiFi.STA

Name Type Readable Writable Description
ssid string Yes No Hotspot SSID in UTF-8 format. The maximum length is 32 bytes.
bssid string Yes No Hotspot BSSID, for example, 00:11:22:33:44:55.
preSharedKey string Yes No PSK of the hotspot. The maximum length is 64 bytes.
isHiddenSsid boolean Yes No Whether the network is hidden.
securityType WifiSecurityType Yes No Security type.

wifi.addUntrustedConfig7+

addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean>

Adds the configuration of an untrusted network. This API uses a promise to return the result.

Required permissions: ohos.permission.SET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
config WifiDeviceConfig Yes WLAN configuration to add.

Return value

Type Description
Promise<boolean> Promise used to return the result. If the operation is successful, true is returned; otherwise, false is returned.

Example

import wifi from '@ohos.wifi';

try {
	let config:wifi.WifiDeviceConfig = {
		ssid : "****",
		bssid:  "****",
		preSharedKey: "****",
		isHiddenSsid: false,
		securityType: 0,
		creatorUid: 0,
		disableReason: 0,
		netId: 0,
		randomMacType: 0,
		randomMacAddr:  "****",
		ipType: 0,
		staticIp: {
			ipAddress: 0,
			gateway: 0,
			dnsServers: [],
			domains: []
		}
	}
	wifi.addUntrustedConfig(config).then(result => {
		console.info("result:" + JSON.stringify(result));
	});	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.addUntrustedConfig7+

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

Adds the configuration of an untrusted network. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.SET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
config WifiDeviceConfig Yes WLAN configuration to add.
callback AsyncCallback<boolean> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is true. If the operation fails, data is false. If err is not 0, an error has occurred.

Example

import wifi from '@ohos.wifi';

try {
	let config:wifi.WifiDeviceConfig = {
		ssid : "****",
		bssid:  "****",
		preSharedKey: "****",
		isHiddenSsid: false,
		securityType: 0,
		creatorUid: 0,
		disableReason: 0,
		netId: 0,
		randomMacType: 0,
		randomMacAddr:  "****",
		ipType: 0,
		staticIp: {
			ipAddress: 0,
			gateway: 0,
			dnsServers: [],
			domains: []
		}
	}
	wifi.addUntrustedConfig(config,(error,result) => {
		console.info("result:" + JSON.stringify(result));
	});	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.removeUntrustedConfig7+

removeUntrustedConfig(config: WifiDeviceConfig): Promise<boolean>

Removes the configuration of an untrusted network. This API uses a promise to return the result.

Required permissions: ohos.permission.SET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
config WifiDeviceConfig Yes WLAN configuration to remove.

Return value

Type Description
Promise<boolean> Promise used to return the result. If the operation is successful, true is returned; otherwise, false is returned.

Example

import wifi from '@ohos.wifi';

try {
	let config:wifi.WifiDeviceConfig = {
		ssid : "****",
		bssid:  "****",
		preSharedKey: "****",
		isHiddenSsid: false,
		securityType: 0,
		creatorUid: 0,
		disableReason: 0,
		netId: 0,
		randomMacType: 0,
		randomMacAddr:  "****",
		ipType: 0,
		staticIp: {
			ipAddress: 0,
			gateway: 0,
			dnsServers: [],
			domains: []
		}
	}
	wifi.removeUntrustedConfig(config).then(result => {
		console.info("result:" + JSON.stringify(result));
	});	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.removeUntrustedConfig7+

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

Removes the configuration of an untrusted network. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.SET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
config WifiDeviceConfig Yes WLAN configuration to remove.
callback AsyncCallback<boolean> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is true. If the operation fails, data is false. If err is not 0, an error has occurred.

Example

import wifi from '@ohos.wifi';

try {
	let config:wifi.WifiDeviceConfig = {
		ssid : "****",
		bssid:  "****",
		preSharedKey: "****",
		isHiddenSsid: false,
		securityType: 0,
		creatorUid: 0,
		disableReason: 0,
		netId: 0,
		randomMacType: 0,
		randomMacAddr:  "****",
		ipType: 0,
		staticIp: {
			ipAddress: 0,
			gateway: 0,
			dnsServers: [],
			domains: []
		}
	}
	wifi.removeUntrustedConfig(config,(error,result) => {
	console.info("result:" + JSON.stringify(result));
	});	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.getSignalLevel

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

Obtains the WLAN signal level.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
rssi number Yes RSSI of the hotspot, in dBm.
band number Yes Frequency band of the WLAN AP.

Return value

Type Description
number Signal level obtained. The value range is [0, 4].

Example

import wifi from '@ohos.wifi';

try {
	let rssi = 0;
	let band = 0;
	let level = wifi.getSignalLevel(rssi,band);
	console.info("level:" + JSON.stringify(level));
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.getLinkedInfo

getLinkedInfo(): Promise<WifiLinkedInfo>

Obtains WLAN connection information. This API uses a promise to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
Promise<WifiLinkedInfo> Promise used to return the WLAN connection information.

wifi.getLinkedInfo

getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void

Obtains WLAN connection information. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
callback AsyncCallback<WifiLinkedInfo> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is the WLAN connection information obtained. If err is not 0, an error has occurred.

Example

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:number) => {
    console.info("get linked info error");
});

WifiLinkedInfo

Represents the WLAN connection information.

System capability: SystemCapability.Communication.WiFi.STA

Name Type Readable Writable Description
ssid string Yes No Hotspot SSID in UTF-8 format. The maximum length is 32 bytes.
bssid string Yes No Hotspot BSSID, for example, 00:11:22:33:44:55.
rssi number Yes No RSSI of the hotspot, in dBm.
band number Yes No Frequency band of the WLAN AP.
linkSpeed number Yes No Speed of the WLAN AP.
frequency number Yes No Frequency of the WLAN AP.
isHidden boolean Yes No Whether to hide the WLAN AP.
isRestricted boolean Yes No Whether to restrict data volume at the WLAN AP.
macAddress string Yes No MAC address of the device.
ipAddress number Yes No IP address of the device that sets up the WLAN connection.
connState ConnState Yes No WLAN connection state.

ConnState

Enumerates the WLAN connection states.

System capability: SystemCapability.Communication.WiFi.STA

Name Value Description
SCANNING 0 The device is scanning for available APs.
CONNECTING 1 A WLAN connection is being established.
AUTHENTICATING 2 An authentication is being performed for a WLAN connection.
OBTAINING_IPADDR 3 The IP address of the WLAN connection is being acquired.
CONNECTED 4 A WLAN connection is established.
DISCONNECTING 5 The WLAN connection is being disconnected.
DISCONNECTED 6 The WLAN connection is disconnected.
UNKNOWN 7 Failed to set up the WLAN connection.

wifi.isConnected7+

isConnected(): boolean

Checks whether the WLAN is connected.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
boolean Returns true if the WLAN is connected; returns false otherwise.

wifi.isFeatureSupported7+

isFeatureSupported(featureId: number): boolean

Checks whether the device supports the specified WLAN feature.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.Core

Parameters

Name Type Mandatory Description
featureId number Yes Feature ID.

Return value

Type Description
boolean Returns true if the feature is supported; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	let featureId = 0;
	let ret = wifi.isFeatureSupported(featureId);
	console.info("isFeatureSupported:" + ret);
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.getIpInfo7+

getIpInfo(): IpInfo

Obtains IP information.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Return value

Type Description
IpInfo IP information obtained.

Example

import wifi from '@ohos.wifi';

try {
	let info = wifi.getIpInfo();
	console.info("info:" + JSON.stringify(info));
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

IpInfo7+

Represents IP information.

System capability: SystemCapability.Communication.WiFi.AP.Core

Name Type Readable Writable Description
ipAddress number Yes No IP address.
gateway number Yes No Gateway.
netmask number Yes No Subnet mask.
primaryDns number Yes No IP address of the preferred DNS server.
secondDns number Yes No IP address of the alternate DNS server.
serverIp number Yes No IP address of the DHCP server.
leaseDuration number Yes No Lease duration of the IP address.

wifi.getCountryCode7+

getCountryCode(): string

Obtains the country code.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.Core

Return value

Type Description
string Country code obtained.

Example

import wifi from '@ohos.wifi';

try {
	let code = wifi.getCountryCode();
	console.info("code:" + code);
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.getP2pLinkedInfo8+

getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo>

Obtains P2P link information. This API uses a promise to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
Promise<WifiP2pLinkedInfo> Promise used to return the P2P link information obtained.

WifiP2pLinkedInfo8+

Represents the P2P link information.

System capability: SystemCapability.Communication.WiFi.P2P

Name Type Readable Writable Description
connectState P2pConnectState Yes No P2P connection state.
isGroupOwner boolean Yes No Whether the device is the group owner.
groupOwnerAddr string Yes No MAC address of the group.

P2pConnectState8+

Enumerates the P2P connection states.

System capability: SystemCapability.Communication.WiFi.P2P

Name Value Description
DISCONNECTED 0 Disconnected.
CONNECTED 1 Connected.

wifi.getP2pLinkedInfo8+

getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void

Obtains P2P link information. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
callback AsyncCallback<WifiP2pLinkedInfo> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is the P2P link information. If err is not 0, an error has occurred.

Example

import wifi from '@ohos.wifi';

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

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

wifi.getCurrentGroup8+

getCurrentGroup(): Promise<WifiP2pGroupInfo>

Obtains the current P2P group information. This API uses a promise to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
Promise<WifiP2pGroupInfo> Promise used to return the P2P group information obtained.

wifi.getCurrentGroup8+

getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void

Obtains the current P2P group information. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
callback AsyncCallback<WifiP2pGroupInfo> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is the group information obtained. If err is not 0, an error has occurred.

Example

import wifi from '@ohos.wifi';

wifi.getCurrentGroup((err, data) => {
   if (err) {
       console.error("get current P2P group error");
       return;
   }
	console.info("get current P2P group: " + JSON.stringify(data));
});

wifi.getCurrentGroup().then(data => {
	console.info("get current P2P group: " + JSON.stringify(data));
});

wifi.getP2pPeerDevices8+

getP2pPeerDevices(): Promise<WifiP2pDevice[]>

Obtains the peer device list in the P2P connection. This API uses a promise to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
Promise<WifiP2pDevice[]> Promise used to return the peer device list.

wifi.getP2pPeerDevices8+

getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void

Obtains the peer device list in the P2P connection. This API uses an asynchronous callback to return the result.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
callback AsyncCallback<WifiP2pDevice[]> Yes Callback invoked to return the result. If the operation is successful, err is 0 and data is the peer device list obtained. If err is not 0, an error has occurred.

Example

import wifi from '@ohos.wifi';

wifi.getP2pPeerDevices((err, data) => {
   if (err) {
       console.error("get P2P peer devices error");
       return;
   }
	console.info("get P2P peer devices: " + JSON.stringify(data));
});

wifi.getP2pPeerDevices().then(data => {
	console.info("get P2P peer devices: " + JSON.stringify(data));
});

WifiP2pDevice8+

Represents the P2P device information.

System capability: SystemCapability.Communication.WiFi.P2P

Name Type Readable Writable Description
deviceName string Yes No Device name.
deviceAddress string Yes No MAC address of the device.
primaryDeviceType string Yes No Type of the primary device.
deviceStatus P2pDeviceStatus Yes No Device status.
groupCapabilitys number Yes No Group capabilities.

P2pDeviceStatus8+

Enumerates the P2P device states.

System capability: SystemCapability.Communication.WiFi.P2P

Name Value Description
CONNECTED 0 Connected.
INVITED 1 Invited.
FAILED 2 Failed.
AVAILABLE 3 Available.
UNAVAILABLE 4 Unavailable.

wifi.createGroup8+

createGroup(config: WifiP2PConfig): boolean

Creates a P2P group.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
config WifiP2PConfig Yes Group configuration.

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	let config:wifi.WifiP2PConfig = {
		deviceAddress: "****",
		netId: 0,
		passphrase: "*****",
		groupName: "****",
		goBand: 0
	}
	wifi.createGroup(config);	
	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

WifiP2PConfig8+

Represents P2P group configuration.

System capability: SystemCapability.Communication.WiFi.P2P

Name Type Readable Writable Description
deviceAddress string Yes No Device address.
netId number Yes No Network ID. The value -1 indicates a temporary group, and -2 indicates a persistent group.
passphrase string Yes No Passphrase of the group.
groupName string Yes No Name of the group.
goBand GroupOwnerBand Yes No Frequency band of the group.

GroupOwnerBand8+

Enumerates the P2P group frequency bands.

System capability: SystemCapability.Communication.WiFi.P2P

Name Value Description
GO_BAND_AUTO 0 Auto.
GO_BAND_2GHZ 1 2 GHz.
GO_BAND_5GHZ 2 5 GHz.

wifi.removeGroup8+

removeGroup(): boolean

Removes this P2P group.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	wifi.removeGroup();	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.p2pConnect8+

p2pConnect(config: WifiP2PConfig): boolean

Sets up a P2P connection.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
config WifiP2PConfig Yes P2P group configuration.

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

let recvP2pConnectionChangeFunc = (result:wifi.WifiP2pLinkedInfo) => {
    console.info("p2p connection change receive event: " + JSON.stringify(result));
    wifi.getP2pLinkedInfo((err, data) => {
        if (err) {
            console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err));
            return;
        }
        console.info("get getP2pLinkedInfo: " + JSON.stringify(data));
    });
}
wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc);

let recvP2pDeviceChangeFunc = (result:wifi.WifiP2pDevice) => {
    console.info("p2p device change receive event: " + JSON.stringify(result));
}
wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc);

let recvP2pPeerDeviceChangeFunc = (result:wifi.WifiP2pDevice[]) => {
    console.info("p2p peer device change receive event: " + JSON.stringify(result));
    wifi.getP2pPeerDevices((err, data) => {
        if (err) {
            console.error('failed to get peer devices: ' + JSON.stringify(err));
            return;
        }
        console.info("get peer devices: " + JSON.stringify(data));
        let len = data.length;
        for (let i = 0; i < len; ++i) {
            if (data[i].deviceName === "my_test_device") {
                console.info("p2p connect to test device: " + data[i].deviceAddress);
                let config:wifi.WifiP2PConfig = {
                    deviceAddress:data[i].deviceAddress,
                    netId:-2,
                    passphrase:"",
                    groupName:"",
                    goBand:0,
                }
                wifi.p2pConnect(config);
            }
        }
    });
}
wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);

let recvP2pPersistentGroupChangeFunc = () => {
    console.info("p2p persistent group change receive event");

    wifi.getCurrentGroup((err, data) => {
        if (err) {
            console.error('failed to get current group: ' + JSON.stringify(err));
            return;
        }
        console.info("get current group: " + JSON.stringify(data));
    });
}
wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);

setTimeout(() => {wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000);
setTimeout(() => {wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000);
setTimeout(() => {wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000);
setTimeout(() => {wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000);
console.info("start discover devices -> " + wifi.startDiscoverDevices());

wifi.p2pCancelConnect8+

p2pCancelConnect(): boolean

Cancels this P2P connection.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	wifi.p2pCancelConnect();	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.startDiscoverDevices8+

startDiscoverDevices(): boolean

Starts to discover devices.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	wifi.startDiscoverDevices();	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

wifi.stopDiscoverDevices8+

stopDiscoverDevices(): boolean

Stops discovering devices.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Return value

Type Description
boolean Returns true if the operation is successful; returns false otherwise.

Example

import wifi from '@ohos.wifi';

try {
	wifi.stopDiscoverDevices();	
}catch(error){
	console.error("failed:" + JSON.stringify(error));
}

WifiP2pGroupInfo8+

Represents the P2P group information.

System capability: SystemCapability.Communication.WiFi.P2P

Name Type Readable Writable Description
isP2pGo boolean Yes No Whether the device is the group owner.
ownerInfo WifiP2pDevice Yes No Device information of the group.
passphrase string Yes No Passphrase of the group.
interface string Yes No Interface name.
groupName string Yes No Group name.
networkId number Yes No Network ID.
frequency number Yes No Frequency of the group.
clientDevices WifiP2pDevice[] Yes No List of connected devices.
goIpAddress string Yes No IP address of the group.

wifi.on('wifiStateChange')7+

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

Subscribes to WLAN state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiStateChange.
callback Callback<number> Yes Callback invoked to return the WLAN state.

WLAN states

Value Description
0 Deactivated
1 Activated
2 Activating
3 Deactivating

wifi.off('wifiStateChange')7+

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

Unsubscribes from WLAN state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiStateChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

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

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

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

wifi.on('wifiConnectionChange')7+

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

Subscribes to WLAN connection state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiConnectionChange.
callback Callback<number> Yes Callback invoked to return the WLAN connection state.

WLAN connection states

Value Description
0 Disconnected.
1 Connected.

wifi.off('wifiConnectionChange')7+

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

Unsubscribes from WLAN connection state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiConnectionChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvWifiConnectionChangeFunc = (result:number) => {
    console.info("Receive wifi connection change event: " + result);
}

// Register an event.
wifi.on("wifiConnectionChange", recvWifiConnectionChangeFunc);

// Unregister an event.
wifi.off("wifiConnectionChange", recvWifiConnectionChangeFunc);

wifi.on('wifiScanStateChange')7+

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

Subscribes to WLAN scan state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiScanStateChange.
callback Callback<number> Yes Callback invoked to return the WLAN scan state.

WLAN scan states

Value Description
0 Scan failed.
1 Scan successful.

wifi.off('wifiScanStateChange')7+

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

Unsubscribes from WLAN scan state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiScanStateChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvWifiScanStateChangeFunc = (result:number) => {
    console.info("Receive Wifi scan state change event: " + result);
}

// Register an event.
wifi.on("wifiScanStateChange", recvWifiScanStateChangeFunc);

// Unregister an event.
wifi.off("wifiScanStateChange", recvWifiScanStateChangeFunc);

wifi.on('wifiRssiChange')7+

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

Subscribes to RSSI changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiRssiChange.
callback Callback<number> Yes Callback invoked to return the RSSI, in dBm.

wifi.off('wifiRssiChange')7+

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

Unsubscribes from RSSI changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.STA

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of wifiRssiChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvWifiRssiChangeFunc = (result:number) => {
    console.info("Receive wifi rssi change event: " + result);
}

// Register an event.
wifi.on("wifiRssiChange", recvWifiRssiChangeFunc);

// Unregister an event.
wifi.off("wifiRssiChange", recvWifiRssiChangeFunc);

wifi.on('hotspotStateChange')7+

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

Subscribes to hotspot state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.AP.Core

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of hotspotStateChange.
callback Callback<number> Yes Callback invoked to return the hotspot state.

Hotspot states

Value Description
0 Deactivated
1 Activated
2 Activating
3 Deactivating

Example

import wifi from '@ohos.wifi';

let recvHotspotStateChangeFunc = (result:number) => {
    console.info("Receive hotspot state change event: " + result);
}

// Register an event.
wifi.on("hotspotStateChange", recvHotspotStateChangeFunc);

// Unregister an event.
wifi.off("hotspotStateChange", recvHotspotStateChangeFunc);

wifi.off('hotspotStateChange')7+

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

Unsubscribes from hotspot state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.AP.Core

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of hotspotStateChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

wifi.on('p2pStateChange')8+

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

Subscribes to P2P state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pStateChange.
callback Callback<number> Yes Callback invoked to return the P2P state.

P2P states

Value Description
1 Available
2 Opening
3 Opened
4 Closing
5 Closed

wifi.off('p2pStateChange')8+

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

Unsubscribes from P2P state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pStateChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pStateChangeFunc = (result:number) => {
    console.info("Receive p2p state change event: " + result);
}

// Register an event.
wifi.on("p2pStateChange", recvP2pStateChangeFunc);

// Unregister an event.
wifi.off("p2pStateChange", recvP2pStateChangeFunc);

wifi.on('p2pConnectionChange')8+

on(type: "p2pConnectionChange", callback: Callback<WifiP2pLinkedInfo>): void

Subscribes to P2P connection state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pConnectionChange.
callback Callback<WifiP2pLinkedInfo> Yes Callback invoked to return the P2P connection state.

wifi.off('p2pConnectionChange')8+

off(type: "p2pConnectionChange", callback?: Callback<WifiP2pLinkedInfo>): void

Unsubscribes from P2P connection state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pConnectionChange.
callback Callback<WifiP2pLinkedInfo> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pConnectionChangeFunc = (result:wifi.WifiP2pLinkedInfo) => {
    console.info("Receive p2p connection change event: " + result);
}

// Register an event.
wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc);

// Unregister an event.
wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);

wifi.on('p2pDeviceChange')8+

on(type: "p2pDeviceChange", callback: Callback<WifiP2pDevice>): void

Subscribes to P2P device state changes.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pDeviceChange.
callback Callback<WifiP2pDevice> Yes Callback invoked to return the P2P device state.

wifi.off('p2pDeviceChange')8+

off(type: "p2pDeviceChange", callback?: Callback<WifiP2pDevice>): void

Unsubscribes from P2P device state changes.

Required permissions: ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pDeviceChange.
callback Callback<WifiP2pDevice> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pDeviceChangeFunc = (result:wifi.WifiP2pDevice) => {
    console.info("Receive p2p device change event: " + result);
}

// Register an event.
wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc);

// Unregister an event.
wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);

wifi.on('p2pPeerDeviceChange')8+

on(type: "p2pPeerDeviceChange", callback: Callback<WifiP2pDevice[]>): void

Subscribes to P2P peer device state changes.

Required permissions: ohos.permission.GET_WIFI_INFO and ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pPeerDeviceChange.
callback Callback<WifiP2pDevice[]> Yes Callback invoked to return the P2P peer device state.

wifi.off('p2pPeerDeviceChange')8+

off(type: "p2pPeerDeviceChange", callback?: Callback<WifiP2pDevice[]>): void

Unsubscribes from P2P peer device state changes.

Required permissions: ohos.permission.LOCATION

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pPeerDeviceChange.
callback Callback<WifiP2pDevice[]> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pPeerDeviceChangeFunc = (result:wifi.WifiP2pDevice[]) => {
    console.info("Receive p2p peer device change event: " + result);
}

// Register an event.
wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);

// Unregister an event.
wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);

wifi.on('p2pPersistentGroupChange')8+

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

Subscribes to P2P persistent group state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pPersistentGroupChange.
callback Callback<void> Yes Callback invoked to return the P2P persistent group state.

wifi.off('p2pPersistentGroupChange')8+

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

Unsubscribes from P2P persistent group state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pPersistentGroupChange.
callback Callback<void> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pPersistentGroupChangeFunc = (result:void) => {
    console.info("Receive p2p persistent group change event: " + result);
}

// Register an event.
wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);

// Unregister an event.
wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);

wifi.on('p2pDiscoveryChange')8+

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

Subscribes to P2P device discovery state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pDiscoveryChange.
callback Callback<number> Yes Callback invoked to return the P2P device discovery state.

P2P discovered device states

Value Description
0 Initial state.
1 Discovered.

wifi.off('p2pDiscoveryChange')8+

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

Unsubscribes from P2P device discovery state changes.

Required permissions: ohos.permission.GET_WIFI_INFO

System capability: SystemCapability.Communication.WiFi.P2P

Parameters

Name Type Mandatory Description
type string Yes Event type, which has a fixed value of p2pDiscoveryChange.
callback Callback<number> No Callback to unregister. If this parameter is not specified, all callbacks for the specified event will be unregistered.

Example

import wifi from '@ohos.wifi';

let recvP2pDiscoveryChangeFunc = (result:number) => {
    console.info("Receive p2p discovery change event: " + result);
}

// Register an event.
wifi.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);

// Unregister an event.
wifi.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);