# @ohos.wifiManager (WLAN) 该模å—主è¦æä¾›WLANåŸºç¡€åŠŸèƒ½ï¼ˆæ— çº¿æŽ¥å…¥ã€æ— çº¿åŠ å¯†ã€æ— 线漫游ç‰ï¼‰ã€P2P(peer-to-peer)æœåŠ¡çš„基础功能和WLAN消æ¯é€šçŸ¥çš„相应æœåŠ¡ï¼Œè®©åº”用å¯ä»¥é€šè¿‡WLAN和其他设备互è”互通。 > **说明:** > 本模å—首批接å£ä»ŽAPI version 9开始支æŒã€‚åŽç»ç‰ˆæœ¬çš„新增接å£ï¼Œé‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°æŽ¥å£çš„起始版本。 ## å¯¼å…¥æ¨¡å— ```ts import { wifiManager } from '@kit.ConnectivityKit'; ``` ## wifiManager.isWifiActive<sup>9+</sup> isWifiActive(): boolean 查询WLAN开关是å¦å·²ä½¿èƒ½ã€‚ **原å化æœåŠ¡API:** 从API version 11开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true:已使能, false:未使能。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let isWifiActive = wifiManager.isWifiActive(); console.info("isWifiActive:" + isWifiActive); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.scan<sup>9+</sup><sup>(deprecated)</sup> scan(): void å¯åŠ¨WLAN扫æ,使用å‰å…ˆä½¿èƒ½WLAN。 > **说明:** > 从 API version 9开始支æŒï¼Œä»ŽAPI version 10开始废弃。替代接å£ä»…å‘系统应用开放。 **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFOã€ohos.permission.LOCATION å’Œ ohos.permission.APPROXIMATELY_LOCATION **系统能力:** SystemCapability.Communication.WiFi.STA **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { wifiManager.scan(); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> getScanResults(): Promise<Array<WifiScanInfo>> 获å–扫æ结果,使用Promise异æ¥å›žè°ƒã€‚ > **说明:** > 从 API version 9开始支æŒï¼Œä»ŽAPI version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO å’Œ (ohos.permission.GET_WIFI_PEERS_MAC 或(ohos.permission.LOCATION å’Œ ohos.permission.APPROXIMATELY_LOCATION)) ohos.permission.GET_WIFI_PEERS_MACæƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | Promise< Array<[WifiScanInfo](#wifiscaninfo9)> > | Promise对象。返回扫æ到的çƒç‚¹åˆ—表。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| ## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> getScanResults(callback: AsyncCallback<Array<WifiScanInfo>>): void 获å–扫æ结果,使用callback异æ¥å›žè°ƒã€‚ > **说明:** > 从 API version 9开始支æŒï¼Œä»ŽAPI version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO å’Œ (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION å’Œ ohos.permission.APPROXIMATELY_LOCATION)) ohos.permission.GET_WIFI_PEERS_MACæƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo9)>> | 是 | 回调函数。当æˆåŠŸæ—¶ï¼Œerr为0,data为扫æ到的çƒç‚¹ï¼›å¦åˆ™err为éž0值,data为空。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; wifiManager.getScanResults((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); } }); wifiManager.getScanResults().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); } }).catch((err:number) => { console.error("failed:" + JSON.stringify(err)); }); ``` ## wifiManager.getScanResultsSync<sup>9+</sup><sup>(deprecated)</sup> getScanResultsSync(): Array<[WifiScanInfo](#wifiscaninfo9)> 获å–扫æ结果,使用åŒæ¥æ–¹å¼è¿”回结果。 > **说明:** > 从 API version 9开始支æŒï¼Œä»ŽAPI version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO å’Œ (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION å’Œ ohos.permission.APPROXIMATELY_LOCATION)) ohos.permission.GET_WIFI_PEERS_MACæƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | Array<[WifiScanInfo](#wifiscaninfo9)> | 扫æ结果数组。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let scanInfoList = wifiManager.getScanResultsSync(); console.info("scanInfoList:" + JSON.stringify(scanInfoList)); let len = scanInfoList.length; console.log("wifi received scan info: " + len); if(len > 0){ for (let i = 0; i < len; ++i) { console.info("ssid: " + scanInfoList[i].ssid); console.info("bssid: " + scanInfoList[i].bssid); console.info("capabilities: " + scanInfoList[i].capabilities); console.info("securityType: " + scanInfoList[i].securityType); console.info("rssi: " + scanInfoList[i].rssi); console.info("band: " + scanInfoList[i].band); console.info("frequency: " + scanInfoList[i].frequency); console.info("channelWidth: " + scanInfoList[i].channelWidth); console.info("timestamp: " + scanInfoList[i].timestamp); } } }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getScanInfoList<sup>10+</sup> getScanInfoList(): Array<WifiScanInfo> 获å–扫æ结果。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | Array<[WifiScanInfo](#wifiscaninfo9)> | 返回扫æ到的çƒç‚¹åˆ—表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„bssid为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let scanInfoList = wifiManager.getScanInfoList(); console.info("scanInfoList:" + JSON.stringify(scanInfoList)); let len = scanInfoList.length; console.log("wifi received scan info: " + len); if(len > 0){ for (let i = 0; i < len; ++i) { console.info("ssid: " + scanInfoList[i].ssid); console.info("bssid: " + scanInfoList[i].bssid); console.info("capabilities: " + scanInfoList[i].capabilities); console.info("securityType: " + scanInfoList[i].securityType); console.info("rssi: " + scanInfoList[i].rssi); console.info("band: " + scanInfoList[i].band); console.info("frequency: " + scanInfoList[i].frequency); console.info("channelWidth: " + scanInfoList[i].channelWidth); console.info("timestamp: " + scanInfoList[i].timestamp); console.info("supportedWifiCategory: " + scanInfoList[i].supportedWifiCategory); console.info("isHiLinkNetwork: " + scanInfoList[i].isHiLinkNetwork); } } }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## WifiScanInfo<sup>9+</sup> WLANçƒç‚¹ä¿¡æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | ssid | string | 是 | å¦ | çƒç‚¹çš„SSID,最大长度为32å—节,编ç æ ¼å¼ä¸ºUTF-8。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | bssid | string | 是 | å¦ | çƒç‚¹çš„BSSID,例如:00:11:22:33:44:55。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | bssidType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | å¦ | çƒç‚¹çš„BSSID类型。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | capabilities | string | 是 | å¦ | çƒç‚¹èƒ½åŠ›ã€‚ | | securityType | [WifiSecurityType](#wifisecuritytype9) | 是 | å¦ | WLANåŠ å¯†ç±»åž‹ã€‚<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | rssi | number | 是 | å¦ | çƒç‚¹çš„ä¿¡å·å¼ºåº¦(dBm)。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | band | number | 是 | å¦ | WLAN接入点的频段,1表示2.4GHZï¼›2表示5GHZ。 | | frequency | number | 是 | å¦ | WLAN接入点的频率。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | channelWidth | number | 是 | å¦ | WLAN接入点的带宽,具体定义å‚è§[WifiChannelWidth](#wifichannelwidth9)。 | | centerFrequency0 | number | 是 | å¦ | çƒç‚¹çš„ä¸å¿ƒé¢‘率。 | | centerFrequency1 | number | 是 | å¦ | çƒç‚¹çš„ä¸å¿ƒé¢‘率。如果çƒç‚¹ä½¿ç”¨ä¸¤ä¸ªä¸é‡å çš„WLANä¿¡é“,则返回两个ä¸å¿ƒé¢‘率,分别用centerFrequency0å’ŒcenterFrequency1表示。 | | infoElems | Array<[WifiInfoElem](#wifiinfoelem9)> | 是 | å¦ | ä¿¡æ¯å…ƒç´ 。 | | timestamp | number | 是 | å¦ | 时间戳。 | | supportedWifiCategory<sup>12+</sup> | [WifiCategory](#wificategory12) | 是 | å¦ | çƒç‚¹æ”¯æŒçš„最高Wi-Fi级别。 | | isHiLinkNetwork<sup>12+</sup> | boolean | 是 | å¦| çƒç‚¹æ˜¯å¦æ”¯æŒhiLink,true:支æŒï¼Œ false:ä¸æ”¯æŒã€‚ | ## DeviceAddressType<sup>10+</sup> Wi-Fi 设备地å€ï¼ˆMAC/bssid)类型。 **系统能力:** SystemCapability.Communication.WiFi.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | **å称** | **值** | **说明** | | -------- | -------- | -------- | | RANDOM_DEVICE_ADDRESS | 0 | éšæœºè®¾å¤‡åœ°å€ã€‚ | | REAL_DEVICE_ADDRESS | 1 | 真实设备地å€ã€‚ | ## WifiSecurityType<sup>9+</sup> è¡¨ç¤ºåŠ å¯†ç±»åž‹çš„æžšä¸¾ã€‚ **系统能力:** SystemCapability.Communication.WiFi.Core | **å称** | **值** | **说明** | | -------- | -------- | -------- | | WIFI_SEC_TYPE_INVALID | 0 | æ— æ•ˆåŠ å¯†ç±»åž‹ã€‚ | | WIFI_SEC_TYPE_OPEN | 1 | å¼€æ”¾åŠ å¯†ç±»åž‹ã€‚<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | 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_EAP | 5 | EAP authentication (EAP)åŠ å¯†ç±»åž‹ã€‚ | | WIFI_SEC_TYPE_EAP_SUITE_B | 6 | Suite-B 192ä½åŠ 密类型。 | | WIFI_SEC_TYPE_OWE | 7 | Opportunistic Wireless Encryption (OWE)æœºä¼šæ€§æ— çº¿åŠ å¯†ç±»åž‹ã€‚ | | WIFI_SEC_TYPE_WAPI_CERT | 8 | WAPI-CertåŠ å¯†ç±»åž‹ã€‚ | | WIFI_SEC_TYPE_WAPI_PSK | 9 | WAPI-PSKåŠ å¯†ç±»åž‹ã€‚ | ## WifiBandType<sup>10+</sup> 表示WIFI频段类型的枚举。 **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **值** | **说明** | | -------- | -------- | -------- | | WIFI_BAND_NONE | 0 | æ— æ•ˆé¢‘æ®µç±»åž‹ã€‚ | | WIFI_BAND_2G | 1 | 2.4G频段类型。 | | WIFI_BAND_5G | 2 | 5G频段类型。 | | WIFI_BAND_6G | 3 | 6G频段类型。 | | WIFI_BAND_60G | 4 | 60G频段类型。 | ## WifiStandard<sup>10+</sup> 表示WIFIæ ‡å‡†çš„æžšä¸¾ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **值** | **说明** | | -------- | -------- | -------- | | WIFI_STANDARD_UNDEFINED | 0 | æ— æ•ˆWIFIæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11A | 1 | 802.11a WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11B | 2 | 802.11b WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11G | 3 | 802.11g WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11N | 4 | 802.11n WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11AC | 5 | 802.11ac WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11AX | 6 | 802.11ax WiFiæ ‡å‡†ç±»åž‹ã€‚ | | WIFI_STANDARD_11AD | 7 | 802.11ad WiFiæ ‡å‡†ç±»åž‹ã€‚ | ## WifiInfoElem<sup>9+</sup> WLANçƒç‚¹ä¿¡æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | eid | number | 是 | å¦ | å…ƒç´ ID。 | | content | Uint8Array | 是 | å¦ | å…ƒç´ å†…å®¹ã€‚ | ## WifiChannelWidth<sup>9+</sup> 表示带宽类型的枚举。 **系统能力:** 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<sup>+</sup>。 | | WIDTH_INVALID | 5 | æ— æ•ˆå€¼ | ## WifiDeviceConfig<sup>9+</sup> WLANé…置信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | ssid | string | 是 | å¦ | çƒç‚¹çš„SSID,最大长度为32å—节,编ç æ ¼å¼ä¸ºUTF-8。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | bssid | string | 是 | å¦ | çƒç‚¹çš„BSSID,例如:00:11:22:33:44:55。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | bssidType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | å¦ | çƒç‚¹çš„BSSID类型。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | preSharedKey | string | 是 | å¦ | çƒç‚¹çš„密钥,最大长度为64å—节。<br>当securityType为WIFI_SEC_TYPE_OPEN时该å—æ®µéœ€ä¸ºç©ºä¸²ï¼Œå…¶ä»–åŠ å¯†ç±»åž‹ä¸èƒ½ä¸ºç©ºä¸²ã€‚<br>当securityType为WIFI_SEC_TYPE_WEP时,该å—段长度åªå…许为5ã€10ã€13ã€26ã€16å’Œ32å—节其ä¸ä¹‹ä¸€ï¼Œå¹¶ä¸”当å—段长度为å¶æ•°æ—¶ï¼Œè¯¥å—段必须为纯åå…进制数å—æž„æˆã€‚<br>当securityType为WIFI_SEC_TYPE_SAE时,该å—段最å°é•¿åº¦ä¸º1å—节。<br>当securityType为WIFI_SEC_TYPE_PSK时,该å—段最å°é•¿åº¦ä¸º8å—节。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | isHiddenSsid | boolean | 是 | å¦ | 是å¦æ˜¯éšè—网络。 | | securityType | [WifiSecurityType](#wifisecuritytype9)| 是 | å¦ | åŠ å¯†ç±»åž‹ã€‚<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | eapConfig<sup>10+</sup> | [WifiEapConfig](#wifieapconfig10) | 是 | å¦ | å¯æ‰©å±•èº«ä»½éªŒè¯åè®®é…置。åªæœ‰securityType为WIFI_SEC_TYPE_EAP时需è¦å¡«å†™ã€‚ | | wapiConfig<sup>12+</sup> | [WifiWapiConfig](#wifiwapiconfig12) | 是 | å¦ | WAPI身份验è¯åè®®é…置。åªæœ‰securityType为WIFI_SEC_TYPE_WAPI_CERT或WIFI_SEC_TYPE_WAPI_PSK时需è¦å¡«å†™ã€‚ | ## WifiEapConfig<sup>10+</sup> å¯æ‰©å±•èº«ä»½éªŒè¯åè®®é…置信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | eapMethod | [EapMethod](#eapmethod10) | 是 | å¦ | EAP认è¯æ–¹å¼ã€‚ | | phase2Method | [Phase2Method](#phase2method10) | 是 | å¦ | 第二阶段认è¯æ–¹å¼ã€‚åªæœ‰eapMethod为EAP_PEAP或EAP_TTLS时需è¦å¡«å†™ã€‚ | | identity | string | 是 | å¦ | 身份信æ¯ã€‚当eapMethod为EAP_PEAPã€EAP_TLS或EAP_PWD时,该å—段ä¸èƒ½ä¸ºç©ºä¸²ã€‚ | | anonymousIdentity | string | 是 | å¦ | 匿å身份。暂未使用。 | | password | string | 是 | å¦ | 密ç 。当eapMethod为EAP_PEAP或EAP_PWD时,该å—段ä¸èƒ½ä¸ºç©ºä¸²ã€‚ | | caCertAlias | string | 是 | å¦ | CA è¯ä¹¦åˆ«å。 | | caPath | string | 是 | å¦ | CA è¯ä¹¦è·¯å¾„。 | | clientCertAlias | string | 是 | å¦ | 客户端è¯ä¹¦åˆ«å。 | | certEntry | Uint8Array | 是 | 是 | CA è¯ä¹¦å†…容。当eapMethod为EAP_TLS时,如果该å—段为空,则clientCertAliasä¸èƒ½ä¸ºç©ºã€‚ | | certPassword | string | 是 | 是 | CAè¯ä¹¦å¯†ç 。 | | altSubjectMatch | string | 是 | å¦ | 替代主题匹é…。 | | domainSuffixMatch | string | 是 | å¦ | 域åŽç¼€åŒ¹é…。 | | realm | string | 是 | å¦ | 通行è¯å‡è¯çš„领域。 | | plmn | string | 是 | å¦ | 公共陆地移动网的直通å‡è¯æ供商。 | | eapSubId | number | 是 | å¦ | SIMå¡çš„åID。 | ## WifiWapiConfig<sup>12+</sup> WAPI身份验è¯åè®®é…置。 **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | wapiPskType | [WapiPskType](#wapipsktype12)| 是 | 是 | åŠ å¯†ç±»åž‹ã€‚ | | wapiAsCert | string | å¦ | 是 | Asè¯ä¹¦ã€‚ | | wapiUserCert | string | å¦ | 是 | 用户è¯ä¹¦ã€‚ | ## WapiPskType<sup>12+</sup> WAPI认è¯æ–¹å¼çš„枚举。 **系统能力:** SystemCapability.Communication.WiFi.Core | å称 | 值 | 说明 | | -------- | -------- | -------- | | WAPI_PSK_ASCII | 0 | ASCII类型。 | | WAPI_PSK_HEX | 1 | HEX类型。 | ## EapMethod<sup>10+</sup> 表示EAP认è¯æ–¹å¼çš„枚举。 **系统能力:** SystemCapability.Communication.WiFi.STA | å称 | 值 | 说明 | | -------- | -------- | -------- | | EAP_NONE | 0 | ä¸æŒ‡å®šã€‚ | | EAP_PEAP | 1 | PEAP类型。 | | EAP_TLS | 2 | TLS类型。 | | EAP_TTLS | 3 | TTLS类型。 | | EAP_PWD | 4 | PWD类型。 | | EAP_SIM | 5 | SIM类型。 | | EAP_AKA | 6 | AKA类型。 | | EAP_AKA_PRIME | 7 | AKA Prime类型。 | | EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 | ## Phase2Method<sup>10+</sup> 表示第二阶段认è¯æ–¹å¼çš„枚举。 **系统能力:** SystemCapability.Communication.WiFi.STA | å称 | 值 | 说明 | | -------- | -------- | -------- | | PHASE2_NONE | 0 | ä¸æŒ‡å®šã€‚ | | PHASE2_PAP | 1 | PAP类型。 | | PHASE2_MSCHAP | 2 | MSCHAP类型。 | | PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 | | PHASE2_GTC | 4 | GTC类型。 | | PHASE2_SIM | 5 | SIM类型。 | | PHASE2_AKA | 6 | AKA类型。 | | PHASE2_AKA_PRIME | 7 | AKA Prime类型。 | ## WifiCategory<sup>12+</sup> 表示çƒç‚¹æ”¯æŒçš„最高wifi类别。 **系统能力:** SystemCapability.Communication.WiFi.STA | å称 | 值 | 说明 | | -------- | -------- | -------- | | DEFAULT | 1 | Default。Wifi6以下的wifi类别。 | | WIFI6 | 2 | Wifi6。 | | WIFI6_PLUS | 3 | Wifi6+。 | ## wifiManager.addCandidateConfig<sup>9+</sup> addCandidateConfig(config: WifiDeviceConfig): Promise<number> æ·»åŠ å€™é€‰ç½‘ç»œé…置,使用Promise异æ¥å›žè°ƒï¼Œä½¿ç”¨å‰å…ˆä½¿èƒ½WLAN。 **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLANé…置信æ¯ã€‚如果bssidType未指定值,则bssidType默认为éšæœºè®¾å¤‡åœ°å€ç±»åž‹ã€‚ | **返回值:** | **类型** | **说明** | | -------- | -------- | | Promise<number> | Promise对象。表示网络é…ç½®ID。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** `````ts import { wifiManager } from '@kit.ConnectivityKit'; try { let config:wifiManager.WifiDeviceConfig = { ssid : "****", preSharedKey : "****", securityType : 0 } wifiManager.addCandidateConfig(config).then(result => { console.info("result:" + JSON.stringify(result)); }).catch((err:number) => { console.error("failed:" + JSON.stringify(err)); }); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ````` ## wifiManager.addCandidateConfig<sup>9+</sup> addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void æ·»åŠ å€™é€‰ç½‘ç»œé…置,使用callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLANé…置信æ¯ã€‚如果bssidType未指定值,则bssidType默认为éšæœºè®¾å¤‡åœ°å€ç±»åž‹ã€‚ | | callback | AsyncCallback<number> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0,dataä¸ºæ·»åŠ çš„ç½‘ç»œé…ç½®ID,如果data值为-1ï¼Œè¡¨ç¤ºæ·»åŠ å¤±è´¥ã€‚å¦‚æžœæ“作出现错误,err为éž0值。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** `````ts import { wifiManager } from '@kit.ConnectivityKit'; try { let config:wifiManager.WifiDeviceConfig = { ssid : "****", preSharedKey : "****", securityType : 0 } wifiManager.addCandidateConfig(config,(error,result) => { console.info("result:" + JSON.stringify(result)); }); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ````` ## wifiManager.removeCandidateConfig<sup>9+</sup> removeCandidateConfig(networkId: number): Promise<void> 移除候选网络é…置,使用Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | networkId | number | 是 | 网络é…ç½®ID。 | **返回值:** | **类型** | **说明** | | -------- | -------- | | Promise<void> | Promise对象。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let networkId = 0; wifiManager.removeCandidateConfig(networkId).then(result => { console.info("result:" + JSON.stringify(result)); }).catch((err:number) => { console.error("failed:" + JSON.stringify(err)); }); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.removeCandidateConfig<sup>9+</sup> removeCandidateConfig(networkId: number, callback: AsyncCallback<void>): void 移除候选网络é…置,使用callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | networkId | number | 是 | 网络é…ç½®ID。 | | callback | AsyncCallback<void> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0。如果error为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed. | | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let networkId = 0; wifiManager.removeCandidateConfig(networkId,(error,result) => { console.info("result:" + JSON.stringify(result)); }); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getCandidateConfigs<sup>9+</sup> getCandidateConfigs(): Array<WifiDeviceConfig> 获å–候选网络é…置。 **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | Array<[WifiDeviceConfig](#wifideviceconfig9)> | 候选网络é…置数组。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let configs = wifiManager.getCandidateConfigs(); console.info("configs:" + JSON.stringify(configs)); let len = configs.length; console.log("result len: " + len); if(len > 0){ for (let i = 0; i < len; ++i) { console.info("ssid: " + configs[i].ssid); console.info("bssid: " + configs[i].bssid); } } }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.connectToCandidateConfig<sup>9+</sup> connectToCandidateConfig(networkId: number): void 应用使用该接å£è¿žæŽ¥åˆ°è‡ªå·±æ·»åŠ 的候选网络(如果当å‰å·²ç»è¿žæŽ¥åˆ°çƒç‚¹ï¼Œéœ€è¦å…ˆæ–开连接)。 **需è¦æƒé™ï¼š** ohos.permission.SET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | networkId | number | 是 | 候选网络é…置的ID。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed. | | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let networkId = 0; // 实际的候选网络IDï¼Œåœ¨æ·»åŠ å€™é€‰ç½‘ç»œæ—¶ç”Ÿæˆï¼Œå–自WifiDeviceConfig.netId wifiManager.connectToCandidateConfig(networkId); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getSignalLevel<sup>9+</sup> getSignalLevel(rssi: number, band: number): number 查询WLANä¿¡å·å¼ºåº¦ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | rssi | number | 是 | çƒç‚¹çš„ä¿¡å·å¼ºåº¦(dBm)。 | | band | number | 是 | WLAN接入点的频段,1表示2.4GHZï¼›2表示5GHZ。 | **返回值:** | **类型** | **说明** | | -------- | -------- | | number | ä¿¡å·å¼ºåº¦ï¼Œå–值范围为[0, 4]。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let rssi = 0; let band = 0; let level = wifiManager.getSignalLevel(rssi,band); console.info("level:" + JSON.stringify(level)); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getLinkedInfo<sup>9+</sup> getLinkedInfo(): Promise<WifiLinkedInfo> 获å–WLAN连接信æ¯ï¼Œä½¿ç”¨Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO 。 当macType是1 - 设备MAC地å€æ—¶ï¼ŒèŽ·å– macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MACæƒé™ï¼ˆè¯¥æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œæ— 该æƒé™æ—¶ï¼ŒmacAddress 返回éšæœºMAC地å€ã€‚ **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[WifiLinkedInfo](#wifilinkedinfo9)> | Promise对象。表示WLAN连接信æ¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled.| ## wifiManager.getLinkedInfo<sup>9+</sup> getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void 获å–WLAN连接信æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO 。 当macType是1 - 设备MAC地å€æ—¶ï¼ŒèŽ·å– macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MACæƒé™ï¼ˆè¯¥æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œæ— 该æƒé™æ—¶ï¼ŒmacAddress 返回éšæœºMAC地å€ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[WifiLinkedInfo](#wifilinkedinfo9)> | 是 | 回调函数。当获å–æˆåŠŸæ—¶ï¼Œerr为0,data表示WLAN连接信æ¯ã€‚如果err为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; wifiManager.getLinkedInfo((err, data:wifiManager.WifiLinkedInfo) => { if (err) { console.error("get linked info error"); return; } console.info("get wifi linked info: " + JSON.stringify(data)); }); wifiManager.getLinkedInfo().then(data => { console.info("get wifi linked info: " + JSON.stringify(data)); }).catch((error:number) => { console.info("get linked info error"); }); ``` ## WifiLinkedInfo<sup>9+</sup> æä¾›WLAN连接的相关信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | å称 | 类型 | å¯è¯» | å¯å†™ | 说明 | | -------- | -------- | -------- | -------- | -------- | | ssid | string | 是 | å¦ | çƒç‚¹çš„SSID,编ç æ ¼å¼ä¸ºUTF-8。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | bssid | string | 是 | å¦ | çƒç‚¹çš„BSSID。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | rssi | number | 是 | å¦ | çƒç‚¹çš„ä¿¡å·å¼ºåº¦(dBm)。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | band | number | 是 | å¦ | WLAN接入点的频段,1表示2.4GHZï¼›2表示5GHZ。 | | linkSpeed | number | 是 | å¦ | WLAN接入点的上行速度,å•ä½Mbps/s。 | | rxLinkSpeed<sup>10+</sup> | number | 是 | å¦ | WLAN接入点的下行速度,å•ä½Mbps/s。 | | maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | å¦ | 当å‰æ”¯æŒçš„最大上行速率,å•ä½Mbps/s。 | | maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | å¦ | 当å‰æ”¯æŒçš„最大下行速率,å•ä½Mbps/s。 | | frequency | number | 是 | å¦ | WLAN接入点的频率。<br>**原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | | isHidden | boolean | 是 | å¦ | WLAN接入点是å¦æ˜¯éšè—网络。 | | isRestricted | boolean | 是 | å¦ | WLAN接入点是å¦é™åˆ¶æ•°æ®é‡ã€‚ | | macType | number | 是 | å¦ | MAC地å€ç±»åž‹ã€‚0 - éšæœºMAC地å€ï¼Œ1 - 设备MAC地å€ã€‚ | | macAddress | string | 是 | å¦ | 设备的MAC地å€ã€‚ | | ipAddress | number | 是 | å¦ | WLAN连接的IP地å€(wifi连接信æ¯å’Œå…³äºŽæœ¬æœºé‡Œçš„状æ€ä¿¡æ¯å¯ä»¥æŸ¥çœ‹)。| | connState | [ConnState](#connstate9) | 是 | å¦ | WLAN连接状æ€ã€‚ | | channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth9) | 是 | å¦ | 当å‰è¿žæŽ¥çƒç‚¹çš„ä¿¡é“带宽。 | | wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard10) | 是 | å¦ | 当å‰è¿žæŽ¥çƒç‚¹çš„Wi-Fiæ ‡å‡†ã€‚ | | supportedWifiCategory<sup>12+</sup> | [WifiCategory](#wificategory12) | 是 | å¦ | çƒç‚¹æ”¯æŒçš„最高Wi-Fi级别。 | | isHiLinkNetwork<sup>12+</sup> | boolean | 是 | å¦| çƒç‚¹æ˜¯å¦æ”¯æŒhilink,true:支æŒï¼Œ false:ä¸æ”¯æŒã€‚ | ## ConnState<sup>9+</sup> 表示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连接建立失败。 | ## wifiManager.isConnected<sup>9+</sup> isConnected(): boolean 查询WLAN是å¦å·²è¿žæŽ¥ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true:已连接, false:未连接。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let ret = wifiManager.isConnected(); console.info("isConnected:" + ret); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.isFeatureSupported<sup>9+</sup> isFeatureSupported(featureId: number): boolean 判æ–设备是å¦æ”¯æŒç›¸å…³WLAN特性。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.Core **å‚数:** | **å‚æ•°å** | **类型** | å¿…å¡« | **说明** | | -------- | -------- | -------- | -------- | | featureId | number | 是 | 特性ID值。 | **特性ID值枚举:** | 枚举值 | 说明 | | -------- | -------- | | 0x0001 | 基础结构模å¼ç‰¹æ€§ã€‚ | | 0x0002 | 5 GHz带宽特性。 | | 0x0004 | GAS/ANQP特性。 | | 0x0008 | Wifi-Direct特性。 | | 0x0010 | Soft AP特性。 | | 0x0040 | Wi-Fi AWare组网特性。 | | 0x8000 | AP STAå…±å˜ç‰¹æ€§ã€‚ | | 0x8000000 | WPA3-Personal SAE特性。 | | 0x10000000 | WPA3-Enterprise Suite-B | | 0x20000000 | 增强开放特性。 | **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true:支æŒï¼Œ false:ä¸æ”¯æŒã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. | | 801 | Capability not supported. | | 2401000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let featureId = 0; let ret = wifiManager.isFeatureSupported(featureId); console.info("isFeatureSupported:" + ret); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getIpInfo<sup>9+</sup> getIpInfo(): IpInfo 获å–IPV4ä¿¡æ¯ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | [IpInfo](#ipinfo9) | IPä¿¡æ¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let info = wifiManager.getIpInfo(); console.info("info:" + JSON.stringify(info)); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## IpInfo<sup>9+</sup> IPV4ä¿¡æ¯ã€‚ **系统能力:** 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地å€ç§Ÿç”¨æ—¶é•¿ï¼Œå•ä½ï¼šç§’。 | ## wifiManager.getIpv6Info<sup>10+</sup> getIpv6Info(): Ipv6Info 获å–IPV6ä¿¡æ¯ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | [Ipv6Info](#ipv6info10) | Ipv6ä¿¡æ¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let info = wifiManager.getIpv6Info(); console.info("info:" + JSON.stringify(info)); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## Ipv6Info<sup>10+</sup> Ipv6ä¿¡æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA | **å称** | **类型** | **å¯è¯»** | **å¯å†™** | **说明** | | -------- | -------- | -------- | -------- | -------- | | linkIpv6Address | string | 是 | å¦ | 链路Ipv6地å€ã€‚ | | globalIpv6Address | string | 是 | å¦ | 全局Ipv6地å€ã€‚ | | randomGlobalIpv6Address | string | 是 | å¦ | éšæœºå…¨å±€Ipv6地å€ã€‚ 预留å—段,暂ä¸æ”¯æŒã€‚| | uniqueIpv6Address<sup>12+</sup> | string | 是 | å¦ | 唯一本地Ipv6地å€ã€‚ | | randomUniqueIpv6Address<sup>12+</sup> | string | 是 | å¦ | éšæœºå”¯ä¸€æœ¬åœ°Ipv6地å€ã€‚ | | gateway | string | 是 | å¦ | 网关。 | | netmask | string | 是 | å¦ | 网络掩ç 。 | | primaryDNS | string | 是 | å¦ | 主DNSæœåŠ¡å™¨Ipv6地å€ã€‚ | | secondDNS | string | 是 | å¦ | 备DNSæœåŠ¡å™¨Ipv6地å€ã€‚ | ## wifiManager.getCountryCode<sup>9+</sup> getCountryCode(): string 获å–国家ç ä¿¡æ¯ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.Core **返回值:** | **类型** | **说明** | | -------- | -------- | | string | 国家ç 。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2401000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let code = wifiManager.getCountryCode(); console.info("code:" + code); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.isBandTypeSupported<sup>10+</sup> isBandTypeSupported(bandType: WifiBandType): boolean 判æ–当å‰é¢‘段是å¦æ”¯æŒã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO。 **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | bandType | [WifiBandType](#wifibandtype10) | 是 | Wifi 频段类型。 | **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true:支æŒï¼Œ false:ä¸æ”¯æŒã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let type = 0; let isBandTypeSupported = wifiManager.isBandTypeSupported(type); console.info("isBandTypeSupported:" + isBandTypeSupported); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.isMeteredHotspot<sup>11+</sup> isMeteredHotspot(): boolean 查询设备当å‰è¿žæŽ¥çš„wifi是å¦æ˜¯æ‰‹æœºçƒç‚¹ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true:是手机çƒç‚¹ï¼Œ false:ä¸æ˜¯æ‰‹æœºçƒç‚¹ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2501000 | Operation failed.| | 2501001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let isMeteredHotspot = wifiManager.isMeteredHotspot(); console.info("isMeteredHotspot:" + isMeteredHotspot); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.getP2pLinkedInfo<sup>9+</sup> getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> 获å–P2P连接信æ¯ï¼Œä½¿ç”¨Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO èŽ·å– groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MACæƒé™ï¼ˆè¯¥æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œæ— 该æƒé™æ—¶ï¼ŒgroupOwnerAddr 返回全零地å€ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | Promise对象。表示P2P连接信æ¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | P2P module error. | ## wifiManager.getP2pLinkedInfo<sup>9+</sup> getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void 获å–P2P连接信æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO èŽ·å– groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MACæƒé™ï¼ˆè¯¥æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œæ— 该æƒé™æ—¶ï¼ŒgroupOwnerAddr 返回全零地å€ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0,data表示P2P连接信æ¯ã€‚如果err为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; wifiManager.getP2pLinkedInfo((err, data:wifiManager.WifiP2pLinkedInfo) => { if (err) { console.error("get p2p linked info error"); return; } console.info("get wifi p2p linked info: " + JSON.stringify(data)); }); wifiManager.getP2pLinkedInfo().then(data => { console.info("get wifi p2p linked info: " + JSON.stringify(data)); }); ``` ## WifiP2pLinkedInfo<sup>9+</sup> æä¾›WLAN连接的相关信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 类型 | å¯è¯» | å¯å†™ | 说明 | | -------- | -------- | -------- | -------- | -------- | | connectState | [P2pConnectState](#p2pconnectstate9) | 是 | å¦ | P2P连接状æ€ã€‚ | | isGroupOwner | boolean | 是 | å¦ | 是å¦ä¸ºGO。 | | groupOwnerAddr | string | 是 | å¦ | 群组IP地å€ã€‚| ## P2pConnectState<sup>9+</sup> 表示P2P连接状æ€çš„枚举。 **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 值 | 说明 | | -------- | -------- | -------- | | DISCONNECTED | 0 | æ–开状æ€ã€‚ | | CONNECTED | 1 | 连接状æ€ã€‚ | ## wifiManager.getCurrentGroup<sup>9+</sup> getCurrentGroup(): Promise<WifiP2pGroupInfo> 获å–P2P当å‰ç»„ä¿¡æ¯ï¼Œä½¿ç”¨Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | Promise对象。表示当å‰ç»„ä¿¡æ¯ã€‚如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.getCurrentGroup<sup>9+</sup> getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void 获å–P2P当å‰ç»„ä¿¡æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0,data表示当å‰ç»„ä¿¡æ¯ã€‚如果error为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | P2P module error. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; // p2på·²ç»å»ºç»„或者连接æˆåŠŸï¼Œæ‰èƒ½æ£å¸¸èŽ·å–到当å‰ç»„ä¿¡æ¯ wifiManager.getCurrentGroup((err, data:wifiManager.WifiP2pGroupInfo) => { if (err) { console.error("get current P2P group error"); return; } console.info("get current P2P group: " + JSON.stringify(data)); }); wifiManager.getCurrentGroup().then(data => { console.info("get current P2P group: " + JSON.stringify(data)); }); ``` ## wifiManager.getP2pPeerDevices<sup>9+</sup> getP2pPeerDevices(): Promise<WifiP2pDevice[]> 获å–P2P对端设备列表信æ¯ï¼Œä½¿ç”¨Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[WifiP2pDevice[]](#wifip2pdevice9)> | Promise对象。表示对端设备列表信æ¯ã€‚如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.getP2pPeerDevices<sup>9+</sup> getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void 获å–P2P对端设备列表信æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0,data表示对端设备列表信æ¯ã€‚如果err为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | P2P module error. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; // p2på‘现阶段完æˆï¼Œæ‰èƒ½æ£å¸¸èŽ·å–åˆ°å¯¹ç«¯è®¾å¤‡åˆ—è¡¨ä¿¡æ¯ wifiManager.getP2pPeerDevices((err, data:wifiManager.WifiP2pDevice) => { if (err) { console.error("get P2P peer devices error"); return; } console.info("get P2P peer devices: " + JSON.stringify(data)); }); wifiManager.getP2pPeerDevices().then(data => { console.info("get P2P peer devices: " + JSON.stringify(data)); }); ``` ## WifiP2pDevice<sup>9+</sup> 表示P2P设备信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 类型 | å¯è¯» | å¯å†™ | 说明 | | -------- | -------- | -------- | -------- | -------- | | deviceName | string | 是 | å¦ | 设备å称。 | | deviceAddress | string | 是 | å¦ | 设备MAC地å€ã€‚ | | deviceAddressType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | å¦ | 设备MAC地å€ç±»åž‹ã€‚ | | primaryDeviceType | string | 是 | å¦ | 主设备类型。 | | deviceStatus | [P2pDeviceStatus](#p2pdevicestatus9) | 是 | å¦ | 设备状æ€ã€‚ | | groupCapabilities | number | 是 | å¦ | 群组能力。 | ## P2pDeviceStatus<sup>9+</sup> 表示设备状æ€çš„枚举。 **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 值 | 说明 | | -------- | -------- | -------- | | CONNECTED | 0 | 连接状æ€ã€‚ | | INVITED | 1 | 邀请状æ€ã€‚ | | FAILED | 2 | 失败状æ€ã€‚ | | AVAILABLE | 3 | å¯ç”¨çŠ¶æ€ã€‚ | | UNAVAILABLE | 4 | ä¸å¯ç”¨çŠ¶æ€ã€‚ | ## wifiManager.getP2pLocalDevice<sup>9+</sup> getP2pLocalDevice(): Promise<WifiP2pDevice> 获å–P2P本端设备信æ¯ï¼Œä½¿ç”¨Promise异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 11起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[WifiP2pDevice](#wifip2pdevice9)> | Promise对象。表示本端设备信æ¯ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.getP2pLocalDevice<sup>9+</sup> getP2pLocalDevice(callback: AsyncCallback<WifiP2pDevice>): void 获å–P2P本端设备信æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **需è¦æƒé™ï¼š** API 11起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 回调函数。当æ“作æˆåŠŸæ—¶ï¼Œerr为0,data表示本端设备信æ¯ã€‚如果error为éž0,表示处ç†å‡ºçŽ°é”™è¯¯ã€‚ | **错误ç :** | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | P2P module error. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; // p2på·²ç»å»ºç»„或者连接æˆåŠŸï¼Œæ‰èƒ½æ£å¸¸èŽ·å–åˆ°æœ¬ç«¯è®¾å¤‡ä¿¡æ¯ wifiManager.getP2pLocalDevice((err, data:wifiManager.WifiP2pDevice) => { if (err) { console.error("get P2P local device error"); return; } console.info("get P2P local device: " + JSON.stringify(data)); }); wifiManager.getP2pLocalDevice().then(data => { console.info("get P2P local device: " + JSON.stringify(data)); }); ``` ## wifiManager.createGroup<sup>9+</sup> createGroup(config: WifiP2PConfig): void 创建群组。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | å¿…å¡« | **说明** | | -------- | -------- | -------- | -------- | | config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 群组é…置信æ¯ã€‚如果DeviceAddressType未指定值,则DeviceAddressType默认为éšæœºè®¾å¤‡åœ°å€ç±»åž‹ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Incorrect parameter types.<br>2. Parameter verification failed. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { let config:wifiManager.WifiP2PConfig = { deviceAddress: "****", netId: 0, passphrase: "*****", groupName: "****", goBand: 0 } wifiManager.createGroup(config); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## WifiP2PConfig<sup>9+</sup> 表示P2Pé…置信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 类型 | å¯è¯» | å¯å†™ | 说明 | | -------- | -------- | -------- | -------- | -------- | | deviceAddress | string | 是 | å¦ | 设备地å€ã€‚ | | deviceAddressType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | å¦ | 设备地å€ç±»åž‹ã€‚ | | netId | number | 是 | å¦ | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 | | passphrase | string | 是 | å¦ | 群组密钥。 | | groupName | string | 是 | å¦ | 群组å称。 | | goBand | [GroupOwnerBand](#groupownerband9) | 是 | å¦ | 群组带宽。 | ## GroupOwnerBand<sup>9+</sup> 表示群组带宽的枚举。 **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 值 | 说明 | | -------- | -------- | -------- | | GO_BAND_AUTO | 0 | 自动模å¼ã€‚ | | GO_BAND_2GHZ | 1 | 2.4GHZ。 | | GO_BAND_5GHZ | 2 | 5GHZ。 | ## wifiManager.removeGroup<sup>9+</sup> removeGroup(): void 移除群组。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { wifiManager.removeGroup(); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.p2pConnect<sup>9+</sup> p2pConnect(config: WifiP2PConfig): void 执行P2P连接。 **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | å¿…å¡« | **说明** | | -------- | -------- | -------- | -------- | | config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 连接é…置信æ¯ã€‚如果DeviceAddressType未指定值,则DeviceAddressType默认为éšæœºè®¾å¤‡åœ°å€ç±»åž‹ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Incorrect parameter types.<br>2. Parameter verification failed. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { console.info("p2p connection change receive event: " + JSON.stringify(result)); wifiManager.getP2pLinkedInfo((err, data:wifiManager.WifiP2pLinkedInfo) => { if (err) { console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err)); return; } console.info("get getP2pLinkedInfo: " + JSON.stringify(data)); }); } wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { console.info("p2p device change receive event: " + JSON.stringify(result)); } wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { console.info("p2p peer device change receive event: " + JSON.stringify(result)); wifiManager.getP2pPeerDevices((err, data:wifiManager.WifiP2pDevice) => { 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:wifiManager.WifiP2PConfig = { deviceAddress:data[i].deviceAddress, netId:-2, passphrase:"", groupName:"", goBand:0, } wifiManager.p2pConnect(config); } } }); } wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); let recvP2pPersistentGroupChangeFunc = () => { console.info("p2p persistent group change receive event"); wifiManager.getCurrentGroup((err, data:wifiManager.WifiP2pGroupInfo) => { if (err) { console.error('failed to get current group: ' + JSON.stringify(err)); return; } console.info("get current group: " + JSON.stringify(data)); }); } wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); setTimeout(() => {wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000); setTimeout(() => {wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000); setTimeout(() => {wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000); setTimeout(() => {wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000); console.info("start discover devices -> " + wifiManager.startDiscoverDevices()); ``` ## wifiManager.p2pCancelConnect<sup>9+</sup> p2pCancelConnect(): void 在P2P连接过程ä¸ï¼Œå–消P2P连接。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { wifiManager.p2pCancelConnect(); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.startDiscoverDevices<sup>9+</sup> startDiscoverDevices(): void 开始å‘现设备。 **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { wifiManager.startDiscoverDevices(); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## wifiManager.stopDiscoverDevices<sup>9+</sup> stopDiscoverDevices(): void åœæ¢å‘现设备。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | -------- | | 201 | Permission denied. | | 801 | Capability not supported. | | 2801000 | Operation failed. | | 2801001 | Wi-Fi STA disabled. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; try { wifiManager.stopDiscoverDevices(); }catch(error){ console.error("failed:" + JSON.stringify(error)); } ``` ## WifiP2pGroupInfo<sup>9+</sup> 表示P2P群组相关信æ¯ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P | å称 | 类型 | å¯è¯» | å¯å†™ | 说明 | | -------- | -------- | -------- | -------- | -------- | | isP2pGo | boolean | 是 | å¦ | 是å¦æ˜¯ç¾¤ä¸»ã€‚ | | ownerInfo | [WifiP2pDevice](#wifip2pdevice9) | 是 | å¦ | 群组的设备信æ¯ã€‚ | | passphrase | string | 是 | å¦ | 群组密钥。 | | interface | string | 是 | å¦ | 接å£å称。 | | groupName | string | 是 | å¦ | 群组å称。 | | networkId | number | 是 | å¦ | 网络ID。 | | frequency | number | 是 | å¦ | 群组的频率。 | | clientDevices | [WifiP2pDevice[]](#wifip2pdevice9) | 是 | å¦ | 接入的设备列表信æ¯ã€‚ | | goIpAddress | string | 是 | å¦ | 群组IP地å€ã€‚ | ## wifiManager.on('wifiStateChange')<sup>9+</sup> on(type: 'wifiStateChange', callback: Callback<number>): void 注册WLAN状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'wifiStateChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiStateChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **状æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 0 | 未激活。 | | 1 | 已激活。 | | 2 | 激活ä¸ã€‚ | | 3 | 去激活ä¸ã€‚ | ## wifiManager.off('wifiStateChange')<sup>9+</sup> off(type: 'wifiStateChange', callback?: Callback<number>): void å–消注册WLAN状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiStateChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvPowerNotifyFunc = (result:number) => { console.info("Receive power state change event: " + result); } // Register event wifiManager.on("wifiStateChange", recvPowerNotifyFunc); // Unregister event wifiManager.off("wifiStateChange", recvPowerNotifyFunc); ``` ## wifiManager.on('wifiConnectionChange')<sup>9+</sup> on(type: 'wifiConnectionChange', callback: Callback<number>): void 注册WLAN连接状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'wifiConnectionChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiConnectionChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **连接状æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 0 | å·²æ–开。 | | 1 | 已连接。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| ## wifiManager.off('wifiConnectionChange')<sup>9+</sup> off(type: 'wifiConnectionChange', callback?: Callback<number>): void å–消注册WLAN连接状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiConnectionChange"å—符串。 | | callback | Callback<number> | å¦ | 连接状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvWifiConnectionChangeFunc = (result:number) => { console.info("Receive wifi connection change event: " + result); } // Register event wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc); // Unregister event wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc); ``` ## wifiManager.on('wifiScanStateChange')<sup>9+</sup> on(type: 'wifiScanStateChange', callback: Callback<number>): void 注册扫æ状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'wifiScanStateChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiScanStateChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **扫æ状æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 0 | 扫æ失败。 | | 1 | 扫ææˆåŠŸã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| ## wifiManager.off('wifiScanStateChange')<sup>9+</sup> off(type: 'wifiScanStateChange', callback?: Callback<number>): void å–消注册扫æ状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiScanStateChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvWifiScanStateChangeFunc = (result:number) => { console.info("Receive Wifi scan state change event: " + result); } // Register event wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc); // Unregister event wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc); ``` ## wifiManager.on('wifiRssiChange')<sup>9+</sup> on(type: 'wifiRssiChange', callback: Callback<number>): void 注册RSSI状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'wifiRssiChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiRssiChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ï¼Œè¿”回以dBm为å•ä½çš„RSSI值。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| ## wifiManager.off('wifiRssiChange')<sup>9+</sup> off(type: 'wifiRssiChange', callback?: Callback<number>): void å–消注册RSSI状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.STA **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"wifiRssiChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2501000 | Operation failed.| **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvWifiRssiChangeFunc = (result:number) => { console.info("Receive wifi rssi change event: " + result); } // Register event wifiManager.on("wifiRssiChange", recvWifiRssiChangeFunc); // Unregister event wifiManager.off("wifiRssiChange", recvWifiRssiChangeFunc); ``` ## wifiManager.on('hotspotStateChange')<sup>9+</sup> on(type: 'hotspotStateChange', callback: Callback<number>): void 注册çƒç‚¹çŠ¶æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'hotspotStateChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.AP.Core **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"hotspotStateChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **çƒç‚¹çŠ¶æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 0 | 未激活。 | | 1 | 已激活。 | | 2 | 激活ä¸ã€‚ | | 3 | 去激活ä¸ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 202 | System API is not allowed called by Non-system application. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2601000 | Operation failed. | ## wifiManager.off('hotspotStateChange')<sup>9+</sup> off(type: 'hotspotStateChange', callback?: Callback<number>): void å–消注册çƒç‚¹çŠ¶æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.AP.Core **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"hotspotStateChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 202 | System API is not allowed called by Non-system application. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2601000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvHotspotStateChangeFunc = (result:number) => { console.info("Receive hotspot state change event: " + result); } // Register event wifiManager.on("hotspotStateChange", recvHotspotStateChangeFunc); // Unregister event wifiManager.off("hotspotStateChange", recvHotspotStateChangeFunc); ``` ## wifiManager.on('p2pStateChange')<sup>9+</sup> on(type: 'p2pStateChange', callback: Callback<number>): void 注册P2P开关状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pStateChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pStateChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | ** P2P状æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 1 | 空闲。 | | 2 | 打开ä¸ã€‚ | | 3 | 已打开。 | | 4 | å…³é—ä¸ã€‚ | | 5 | 已关é—。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pStateChange')<sup>9+</sup> off(type: 'p2pStateChange', callback?: Callback<number>): void å–消注册P2P开关状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pStateChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pStateChangeFunc = (result:number) => { console.info("Receive p2p state change event: " + result); } // Register event wifiManager.on("p2pStateChange", recvP2pStateChangeFunc); // Unregister event wifiManager.off("p2pStateChange", recvP2pStateChangeFunc); ``` ## wifiManager.on('p2pConnectionChange')<sup>9+</sup> on(type: 'p2pConnectionChange', callback: Callback<WifiP2pLinkedInfo>): void 注册P2P连接状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pConnectionChange', callback?: Callback<WifiP2pLinkedInfo>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pConnectionChange"å—符串。 | | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pConnectionChange')<sup>9+</sup> off(type: 'p2pConnectionChange', callback?: Callback<WifiP2pLinkedInfo>): void å–消注册P2P连接状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pConnectionChange"å—符串。 | | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { console.info("Receive p2p connection change event: " + result); } // Register event wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); // Unregister event wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc); ``` ## wifiManager.on('p2pDeviceChange')<sup>9+</sup> on(type: 'p2pDeviceChange', callback: Callback<WifiP2pDevice>): void 注册P2P设备状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pDeviceChange', callback?: Callback<WifiP2pDevice>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pDeviceChange"å—符串。 | | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pDeviceChange')<sup>9+</sup> off(type: 'p2pDeviceChange', callback?: Callback<WifiP2pDevice>): void å–消注册P2P设备状æ€æ”¹å˜äº‹ä»¶ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pDeviceChange"å—符串。 | | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201<sup>10+</sup> | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { console.info("Receive p2p device change event: " + result); } // Register event wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); // Unregister event wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc); ``` ## wifiManager.on('p2pPeerDeviceChange')<sup>9+</sup> on(type: 'p2pPeerDeviceChange', callback: Callback<WifiP2pDevice[]>): void 注册P2P对端设备状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pPeerDeviceChange', callback?: Callback<WifiP2pDevice[]>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** API 10起:ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pPeerDeviceChange"å—符串。 | | callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pPeerDeviceChange')<sup>9+</sup> off(type: 'p2pPeerDeviceChange', callback?: Callback<WifiP2pDevice[]>): void å–消注册P2P对端设备状æ€æ”¹å˜äº‹ä»¶ã€‚ **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pPeerDeviceChange"å—符串。 | | callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MACæƒé™ï¼ˆä»…系统应用å¯ç”³è¯·ï¼‰ï¼Œåˆ™è¿”回结果ä¸çš„deviceAddress为真实设备地å€ï¼Œå¦åˆ™ä¸ºéšæœºè®¾å¤‡åœ°å€ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201<sup>10+</sup> | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { console.info("Receive p2p peer device change event: " + result); } // Register event wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); // Unregister event wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); ``` ## wifiManager.on('p2pPersistentGroupChange')<sup>9+</sup> on(type: 'p2pPersistentGroupChange', callback: Callback<void>): void 注册P2P永久组状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pPersistentGroupChange', callback?: Callback<void>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pPersistentGroupChange"å—符串。 | | callback | Callback<void> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pPersistentGroupChange')<sup>9+</sup> off(type: 'p2pPersistentGroupChange', callback?: Callback<void>): void å–消注册P2P永久组状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pPersistentGroupChange"å—符串。 | | callback | Callback<void> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pPersistentGroupChangeFunc = (result:void) => { console.info("Receive p2p persistent group change event: " + result); } // Register event wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); // Unregister event wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); ``` ## wifiManager.on('p2pDiscoveryChange')<sup>9+</sup> on(type: 'p2pDiscoveryChange', callback: Callback<number>): void 注册å‘现设备状æ€æ”¹å˜äº‹ä»¶ï¼Œåœ¨ä¸šåŠ¡é€€å‡ºæ—¶ï¼Œè¦è°ƒç”¨off(type: 'p2pDiscoveryChange', callback?: Callback<number>)接å£åŽ»æŽ‰ä¹‹å‰çš„注册回调。 **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pDiscoveryChange"å—符串。 | | callback | Callback<number> | 是 | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚ | **å‘现设备状æ€æ”¹å˜äº‹ä»¶çš„枚举:** | **枚举值** | **说明** | | -------- | -------- | | 0 | åˆå§‹çŠ¶æ€ã€‚ | | 1 | å‘现æˆåŠŸã€‚ | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | ## wifiManager.off('p2pDiscoveryChange')<sup>9+</sup> off(type: 'p2pDiscoveryChange', callback?: Callback<number>): void å–消注册å‘现设备状æ€æ”¹å˜äº‹ä»¶ã€‚ **需è¦æƒé™ï¼š** ohos.permission.GET_WIFI_INFO **系统能力:** SystemCapability.Communication.WiFi.P2P **å‚数:** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"p2pDiscoveryChange"å—符串。 | | callback | Callback<number> | å¦ | 状æ€æ”¹å˜å›žè°ƒå‡½æ•°ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数。 | **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[WIFI错误ç ](errorcode-wifi.md)。 | **错误ç ID** | **错误信æ¯** | | -------- | ---------------------------- | | 201 | Permission denied. | | 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 801 | Capability not supported. | | 2801000 | Operation failed. | **示例:** ```ts import { wifiManager } from '@kit.ConnectivityKit'; let recvP2pDiscoveryChangeFunc = (result:number) => { console.info("Receive p2p discovery change event: " + result); } // Register event wifiManager.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); // Unregister event wifiManager.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); ```