1# @ohos.wifiManager (WLAN) 2该模块主要提供WLAN基础功能(无线接入、无限加密、无限漫游等)、P2P(peer-to-peer)服务的基础功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。 3 4> **说明:** 5> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6 7 8## 导入模块 9 10```ts 11import { wifiManager } from '@kit.ConnectivityKit'; 12``` 13 14 15## wifiManager.isWifiActive<sup>9+</sup> 16 17isWifiActive(): boolean 18 19查询WLAN是否已使能。 20 21**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 22 23**系统能力:** SystemCapability.Communication.WiFi.STA 24 25**返回值:** 26 27 | **类型** | **说明** | 28 | -------- | -------- | 29 | boolean | true:已使能, false:未使能。 | 30 31**错误码:** 32 33以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 34 35| **错误码ID** | **错误信息** | 36| -------- | -------- | 37| 801 | Capability not supported. | 38| 2501000 | Operation failed.| 39 40**示例:** 41 42```ts 43 import { wifiManager } from '@kit.ConnectivityKit'; 44 45 try { 46 let isWifiActive = wifiManager.isWifiActive(); 47 console.info("isWifiActive:" + isWifiActive); 48 }catch(error){ 49 console.error("failed:" + JSON.stringify(error)); 50 } 51``` 52 53## wifiManager.scan<sup>9+</sup><sup>(deprecated)</sup> 54 55scan(): void 56 57启动WLAN扫描。 58 59> **说明:** 60> 从 API version 9开始支持,从API version 10开始废弃。替代接口仅向系统应用开放。 61 62**需要权限:** ohos.permission.SET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 63 64**系统能力:** SystemCapability.Communication.WiFi.STA 65 66**错误码:** 67 68以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 69 70| **错误码ID** | **错误信息** | 71| -------- | -------- | 72| 201 | Permission denied. | 73| 801 | Capability not supported. | 74| 2501000 | Operation failed.| 75 76**示例:** 77 78```ts 79 import { wifiManager } from '@kit.ConnectivityKit'; 80 81 try { 82 wifiManager.scan(); 83 }catch(error){ 84 console.error("failed:" + JSON.stringify(error)); 85 } 86``` 87 88 89## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> 90 91getScanResults(): Promise<Array<WifiScanInfo>> 92 93获取扫描结果,使用Promise异步回调。 94 95> **说明:** 96> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 97 98**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或(ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 99ohos.permission.GET_WIFI_PEERS_MAC权限仅系统应用可申请。 100 101**系统能力:** SystemCapability.Communication.WiFi.STA 102 103**返回值:** 104 105| **类型** | **说明** | 106| -------- | -------- | 107| Promise< Array<[WifiScanInfo](#wifiscaninfo9)> > | Promise对象。返回扫描到的热点列表。 | 108 109**错误码:** 110 111以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 112 113| **错误码ID** | **错误信息** | 114| -------- | -------- | 115| 201 | Permission denied. | 116| 801 | Capability not supported. | 117| 2501000 | Operation failed.| 118 119## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> 120 121getScanResults(callback: AsyncCallback<Array<WifiScanInfo>>): void 122 123获取扫描结果,使用callback异步回调。 124 125> **说明:** 126> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 127 128**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 129ohos.permission.GET_WIFI_PEERS_MAC权限仅系统应用可申请。 130 131**系统能力:** SystemCapability.Communication.WiFi.STA 132 133**参数:** 134| **参数名** | **类型** | **必填** | **说明** | 135| -------- | -------- | -------- | -------- | 136| callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo9)>> | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 | 137 138**错误码:** 139 140以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 141 142| **错误码ID** | **错误信息** | 143| -------- | -------- | 144| 201 | Permission denied. | 145| 801 | Capability not supported. | 146| 2501000 | Operation failed.| 147 148**示例:** 149```ts 150 import { wifiManager } from '@kit.ConnectivityKit'; 151 152 wifiManager.getScanResults((err, result) => { 153 if (err) { 154 console.error("get scan info error"); 155 return; 156 } 157 158 let len = result.length; 159 console.log("wifi received scan info: " + len); 160 for (let i = 0; i < len; ++i) { 161 console.info("ssid: " + result[i].ssid); 162 console.info("bssid: " + result[i].bssid); 163 console.info("capabilities: " + result[i].capabilities); 164 console.info("securityType: " + result[i].securityType); 165 console.info("rssi: " + result[i].rssi); 166 console.info("band: " + result[i].band); 167 console.info("frequency: " + result[i].frequency); 168 console.info("channelWidth: " + result[i].channelWidth); 169 console.info("timestamp: " + result[i].timestamp); 170 } 171 }); 172 173 wifiManager.getScanResults().then(result => { 174 let len = result.length; 175 console.log("wifi received scan info: " + len); 176 for (let i = 0; i < len; ++i) { 177 console.info("ssid: " + result[i].ssid); 178 console.info("bssid: " + result[i].bssid); 179 console.info("capabilities: " + result[i].capabilities); 180 console.info("securityType: " + result[i].securityType); 181 console.info("rssi: " + result[i].rssi); 182 console.info("band: " + result[i].band); 183 console.info("frequency: " + result[i].frequency); 184 console.info("channelWidth: " + result[i].channelWidth); 185 console.info("timestamp: " + result[i].timestamp); 186 } 187 }).catch((err:number) => { 188 console.error("failed:" + JSON.stringify(err)); 189 }); 190``` 191 192## wifiManager.getScanResultsSync<sup>9+</sup><sup>(deprecated)</sup> 193 194getScanResultsSync(): Array<[WifiScanInfo](#wifiscaninfo9)> 195 196获取扫描结果,使用同步方式返回结果。 197 198> **说明:** 199> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 200 201**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 202ohos.permission.GET_WIFI_PEERS_MAC权限仅系统应用可申请。 203 204**系统能力:** SystemCapability.Communication.WiFi.STA 205 206**返回值:** 207 208| **类型** | **说明** | 209| -------- | -------- | 210| Array<[WifiScanInfo](#wifiscaninfo9)> | 扫描结果数组。 | 211 212**错误码:** 213 214以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 215 216| **错误码ID** | **错误信息** | 217| -------- | -------- | 218| 201 | Permission denied. | 219| 801 | Capability not supported. | 220| 2501000 | Operation failed.| 221 222**示例:** 223 224```ts 225 import { wifiManager } from '@kit.ConnectivityKit'; 226 227 try { 228 let scanInfoList = wifiManager.getScanResultsSync(); 229 console.info("scanInfoList:" + JSON.stringify(scanInfoList)); 230 let len = scanInfoList.length; 231 console.log("wifi received scan info: " + len); 232 if(len > 0){ 233 for (let i = 0; i < len; ++i) { 234 console.info("ssid: " + scanInfoList[i].ssid); 235 console.info("bssid: " + scanInfoList[i].bssid); 236 console.info("capabilities: " + scanInfoList[i].capabilities); 237 console.info("securityType: " + scanInfoList[i].securityType); 238 console.info("rssi: " + scanInfoList[i].rssi); 239 console.info("band: " + scanInfoList[i].band); 240 console.info("frequency: " + scanInfoList[i].frequency); 241 console.info("channelWidth: " + scanInfoList[i].channelWidth); 242 console.info("timestamp: " + scanInfoList[i].timestamp); 243 } 244 } 245 }catch(error){ 246 console.error("failed:" + JSON.stringify(error)); 247 } 248 249``` 250 251## wifiManager.getScanInfoList<sup>10+</sup> 252 253getScanInfoList(): Array<WifiScanInfo> 254 255获取扫描结果。 256 257**需要权限:** ohos.permission.GET_WIFI_INFO 258 259**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 260 261**系统能力:** SystemCapability.Communication.WiFi.STA 262 263**返回值:** 264 265| **类型** | **说明** | 266| -------- | -------- | 267| Array<[WifiScanInfo](#wifiscaninfo9)> | 返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的bssid为真实设备地址,否则为随机设备地址。 | 268 269**错误码:** 270 271以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 272 273| **错误码ID** | **错误信息** | 274| -------- | -------- | 275| 201 | Permission denied. | 276| 801 | Capability not supported. | 277| 2501000 | Operation failed.| 278 279**示例:** 280 281```ts 282 import { wifiManager } from '@kit.ConnectivityKit'; 283 284 try { 285 let scanInfoList = wifiManager.getScanInfoList(); 286 console.info("scanInfoList:" + JSON.stringify(scanInfoList)); 287 let len = scanInfoList.length; 288 console.log("wifi received scan info: " + len); 289 if(len > 0){ 290 for (let i = 0; i < len; ++i) { 291 console.info("ssid: " + scanInfoList[i].ssid); 292 console.info("bssid: " + scanInfoList[i].bssid); 293 console.info("capabilities: " + scanInfoList[i].capabilities); 294 console.info("securityType: " + scanInfoList[i].securityType); 295 console.info("rssi: " + scanInfoList[i].rssi); 296 console.info("band: " + scanInfoList[i].band); 297 console.info("frequency: " + scanInfoList[i].frequency); 298 console.info("channelWidth: " + scanInfoList[i].channelWidth); 299 console.info("timestamp: " + scanInfoList[i].timestamp); 300 console.info("supportedWifiCategory: " + scanInfoList[i].supportedWifiCategory); 301 console.info("isHiLinkNetwork: " + scanInfoList[i].isHiLinkNetwork); 302 } 303 } 304 }catch(error){ 305 console.error("failed:" + JSON.stringify(error)); 306 } 307 308``` 309 310## WifiScanInfo<sup>9+</sup> 311 312WLAN热点信息。 313 314**系统能力:** SystemCapability.Communication.WiFi.STA 315 316 317| **名称** | **类型** | **可读** | **可写** | **说明** | 318| -------- | -------- | -------- | -------- | -------- | 319| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 320| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 321| bssidType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 热点的BSSID类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 322| capabilities | string | 是 | 否 | 热点能力。 | 323| securityType | [WifiSecurityType](#wifisecuritytype9) | 是 | 否 | WLAN加密类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 324| rssi | number | 是 | 否 | 热点的信号强度(dBm)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 325| band | number | 是 | 否 | WLAN接入点的频段,1表示2.4GHZ;2表示5GHZ。 | 326| frequency | number | 是 | 否 | WLAN接入点的频率。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 327| channelWidth | number | 是 | 否 | WLAN接入点的带宽,具体定义参见[WifiChannelWidth](#wifichannelwidth9)。 | 328| centerFrequency0 | number | 是 | 否 | 热点的中心频率。 | 329| centerFrequency1 | number | 是 | 否 | 热点的中心频率。如果热点使用两个不重叠的WLAN信道,则返回两个中心频率,分别用centerFrequency0和centerFrequency1表示。 | 330| infoElems | Array<[WifiInfoElem](#wifiinfoelem9)> | 是 | 否 | 信息元素。 | 331| timestamp | number | 是 | 否 | 时间戳。 | 332| supportedWifiCategory<sup>12+</sup> | [WifiCategory](#wificategory12) | 是 | 否 | 热点支持的最高wifi级别。 | 333| isHiLinkNetwork<sup>12+</sup> | boolean | 是 | 否| 热点是否支持hiLink,true:支持, false:不支持。 | 334 335## DeviceAddressType<sup>10+</sup> 336 337wifi 设备地址(mac/bssid)类型。 338 339**系统能力:** SystemCapability.Communication.WiFi.Core 340 341**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 342 343| **名称** | **值** | **说明** | 344| -------- | -------- | -------- | 345| RANDOM_DEVICE_ADDRESS | 0 | 随机设备地址。 | 346| REAL_DEVICE_ADDRESS | 1 | 真实设备地址。 | 347 348## WifiSecurityType<sup>9+</sup> 349 350表示加密类型的枚举。 351 352**系统能力:** SystemCapability.Communication.WiFi.Core 353 354 355| **名称** | **值** | **说明** | 356| -------- | -------- | -------- | 357| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 | 358| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 359| WIFI_SEC_TYPE_WEP | 2 | Wired Equivalent Privacy (WEP)加密类型。候选网络配置不支持该加密类型。 | 360| WIFI_SEC_TYPE_PSK | 3 | Pre-shared key (PSK)加密类型。 | 361| WIFI_SEC_TYPE_SAE | 4 | Simultaneous Authentication of Equals (SAE)加密类型。 | 362| WIFI_SEC_TYPE_EAP | 5 | EAP加密类型。 | 363| WIFI_SEC_TYPE_EAP_SUITE_B | 6 | Suite-B 192位加密类型。 | 364| WIFI_SEC_TYPE_OWE | 7 | 机会性无线加密类型。 | 365| WIFI_SEC_TYPE_WAPI_CERT | 8 | WAPI-Cert加密类型。 | 366| WIFI_SEC_TYPE_WAPI_PSK | 9 | WAPI-PSK加密类型。 | 367 368 369## WifiBandType<sup>10+</sup> 370 371表示WIFI频段类型的枚举。 372 373**系统能力:** SystemCapability.Communication.WiFi.STA 374 375| **名称** | **值** | **说明** | 376| -------- | -------- | -------- | 377| WIFI_BAND_NONE | 0 | 无效频段类型。 | 378| WIFI_BAND_2G | 1 | 2.4G频段类型。 | 379| WIFI_BAND_5G | 2 | 5G频段类型。 | 380| WIFI_BAND_6G | 3 | 6G频段类型。 | 381| WIFI_BAND_60G | 4 | 60G频段类型。 | 382 383## WifiStandard<sup>10+</sup> 384 385表示WIFI标准的枚举。 386 387**系统能力:** SystemCapability.Communication.WiFi.STA 388 389| **名称** | **值** | **说明** | 390| -------- | -------- | -------- | 391| WIFI_STANDARD_UNDEFINED | 0 | 无效WIFI标准类型。 | 392| WIFI_STANDARD_11A | 1 | 802.11a WiFi标准类型。 | 393| WIFI_STANDARD_11B | 2 | 802.11b WiFi标准类型。 | 394| WIFI_STANDARD_11G | 3 | 802.11g WiFi标准类型。 | 395| WIFI_STANDARD_11N | 4 | 802.11n WiFi标准类型。 | 396| WIFI_STANDARD_11AC | 5 | 802.11ac WiFi标准类型。 | 397| WIFI_STANDARD_11AX | 6 | 802.11ax WiFi标准类型。 | 398| WIFI_STANDARD_11AD | 7 | 802.11ad WiFi标准类型。 | 399 400## WifiInfoElem<sup>9+</sup> 401 402WLAN热点信息。 403 404**系统能力:** SystemCapability.Communication.WiFi.STA 405 406 407| **名称** | **类型** | **可读** | **可写** | **说明** | 408| -------- | -------- | -------- | -------- | -------- | 409| eid | number | 是 | 否 | 元素ID。 | 410| content | Uint8Array | 是 | 否 | 元素内容。 | 411 412 413## WifiChannelWidth<sup>9+</sup> 414 415表示带宽类型的枚举。 416 417**系统能力:** SystemCapability.Communication.WiFi.STA 418 419 420| **名称** | **值** | **说明** | 421| -------- | -------- | -------- | 422| WIDTH_20MHZ | 0 | 20MHZ。 | 423| WIDTH_40MHZ | 1 | 40MHZ。 | 424| WIDTH_80MHZ | 2 | 80MHZ。 | 425| WIDTH_160MHZ | 3 | 160MHZ。 | 426| WIDTH_80MHZ_PLUS | 4 | 80MHZ<sup>+</sup>。 | 427| WIDTH_INVALID | 5 | 无效值 | 428 429 430## WifiDeviceConfig<sup>9+</sup> 431 432WLAN配置信息。 433 434**系统能力:** SystemCapability.Communication.WiFi.STA 435 436 437| **名称** | **类型** | **可读** | **可写** | **说明** | 438| -------- | -------- | -------- | -------- | -------- | 439| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 440| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 441| bssidType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 热点的BSSID类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 442| 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开始,该接口支持在原子化服务中使用。 | 443| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 | 444| securityType | [WifiSecurityType](#wifisecuritytype9)| 是 | 否 | 加密类型。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 445| eapConfig<sup>10+</sup> | [WifiEapConfig](#wifieapconfig10) | 是 | 否 | 可扩展身份验证协议配置。只有securityType为WIFI_SEC_TYPE_EAP时需要填写。 | 446| wapiConfig<sup>12+</sup> | [WifiWapiConfig](#wifiwapiconfig12) | 是 | 否 | WAPI身份验证协议配置。只有securityType为WIFI_SEC_TYPE_WAPI_CERT或WIFI_SEC_TYPE_WAPI_PSK时需要填写。 | 447 448## WifiEapConfig<sup>10+</sup> 449 450可扩展身份验证协议配置信息。 451 452**系统能力:** SystemCapability.Communication.WiFi.STA 453 454| **名称** | **类型** | **可读** | **可写** | **说明** | 455| -------- | -------- | -------- | -------- | -------- | 456| eapMethod | [EapMethod](#eapmethod10) | 是 | 否 | EAP认证方式。 | 457| phase2Method | [Phase2Method](#phase2method10) | 是 | 否 | 第二阶段认证方式。只有eapMethod为EAP_PEAP或EAP_TTLS时需要填写。 | 458| identity | string | 是 | 否 | 身份信息。当eapMethod为EAP_PEAP、EAP_TLS或EAP_PWD时,该字段不能为空串。 | 459| anonymousIdentity | string | 是 | 否 | 匿名身份。暂未使用。 | 460| password | string | 是 | 否 | 密码。当eapMethod为EAP_PEAP或EAP_PWD时,该字段不能为空串。 | 461| caCertAlias | string | 是 | 否 | CA 证书别名。 | 462| caPath | string | 是 | 否 | CA 证书路径。 | 463| clientCertAlias | string | 是 | 否 | 客户端证书别名。 | 464| certEntry | Uint8Array | 是 | 是 | CA 证书内容。当eapMethod为EAP_TLS时,如果该字段为空,则clientCertAlias不能为空。 | 465| certPassword | string | 是 | 是 | CA证书密码。 | 466| altSubjectMatch | string | 是 | 否 | 替代主题匹配。 | 467| domainSuffixMatch | string | 是 | 否 | 域后缀匹配。 | 468| realm | string | 是 | 否 | 通行证凭证的领域。 | 469| plmn | string | 是 | 否 | 公共陆地移动网的直通凭证提供商。 | 470| eapSubId | number | 是 | 否 | SIM卡的子ID。 | 471 472 473## WifiWapiConfig<sup>12+</sup> 474 475WAPI身份验证协议配置。 476 477**系统能力:** SystemCapability.Communication.WiFi.STA 478 479| **名称** | **类型** | **可读** | **可写** | **说明** | 480| -------- | -------- | -------- | -------- | -------- | 481| wapiPskType | [WapiPskType](#wapipsktype12)| 是 | 是 | 加密类型。 | 482| wapiAsCert | string | 否 | 是 | As证书。 | 483| wapiUserCert | string | 否 | 是 | 用户证书。 | 484 485## WapiPskType<sup>12+</sup> 486 487WAPI认证方式的枚举。 488 489**系统能力:** SystemCapability.Communication.WiFi.Core 490 491| 名称 | 值 | 说明 | 492| -------- | -------- | -------- | 493| WAPI_PSK_ASCII | 0 | ASCII类型。 | 494| WAPI_PSK_HEX | 1 | HEX类型。 | 495 496## EapMethod<sup>10+</sup> 497 498表示EAP认证方式的枚举。 499 500**系统能力:** SystemCapability.Communication.WiFi.STA 501 502| 名称 | 值 | 说明 | 503| -------- | -------- | -------- | 504| EAP_NONE | 0 | 不指定。 | 505| EAP_PEAP | 1 | PEAP类型。 | 506| EAP_TLS | 2 | TLS类型。 | 507| EAP_TTLS | 3 | TTLS类型。 | 508| EAP_PWD | 4 | PWD类型。 | 509| EAP_SIM | 5 | SIM类型。 | 510| EAP_AKA | 6 | AKA类型。 | 511| EAP_AKA_PRIME | 7 | AKA Prime类型。 | 512| EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 | 513 514## Phase2Method<sup>10+</sup> 515 516表示第二阶段认证方式的枚举。 517 518**系统能力:** SystemCapability.Communication.WiFi.STA 519 520| 名称 | 值 | 说明 | 521| -------- | -------- | -------- | 522| PHASE2_NONE | 0 | 不指定。 | 523| PHASE2_PAP | 1 | PAP类型。 | 524| PHASE2_MSCHAP | 2 | MSCHAP类型。 | 525| PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 | 526| PHASE2_GTC | 4 | GTC类型。 | 527| PHASE2_SIM | 5 | SIM类型。 | 528| PHASE2_AKA | 6 | AKA类型。 | 529| PHASE2_AKA_PRIME | 7 | AKA Prime类型。 | 530 531## WifiCategory<sup>12+</sup> 532 533表示热点支持的最高wifi类别。 534 535**系统能力:** SystemCapability.Communication.WiFi.STA 536 537| 名称 | 值 | 说明 | 538| -------- | -------- | -------- | 539| DEFAULT | 1 | Default。Wifi6以下的wifi类别。 | 540| WIFI6 | 2 | Wifi6。 | 541| WIFI6_PLUS | 3 | Wifi6+。 | 542 543## wifiManager.addCandidateConfig<sup>9+</sup> 544 545addCandidateConfig(config: WifiDeviceConfig): Promise<number> 546 547添加候选网络配置,使用Promise异步回调。 548 549**需要权限:** ohos.permission.SET_WIFI_INFO 550 551**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 552 553**系统能力:** SystemCapability.Communication.WiFi.STA 554 555**参数:** 556 557| **参数名** | **类型** | **必填** | **说明** | 558| -------- | -------- | -------- | -------- | 559| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 560 561**返回值:** 562 563 | **类型** | **说明** | 564 | -------- | -------- | 565 | Promise<number> | Promise对象。表示网络配置ID。 | 566 567**错误码:** 568 569以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 570 571| **错误码ID** | **错误信息** | 572| -------- | ---------------------------- | 573| 201 | Permission denied. | 574| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| 575| 801 | Capability not supported. | 576| 2501000 | Operation failed.| 577 578**示例:** 579`````ts 580 import { wifiManager } from '@kit.ConnectivityKit'; 581 582 try { 583 let config:wifiManager.WifiDeviceConfig = { 584 ssid : "****", 585 preSharedKey : "****", 586 securityType : 0 587 } 588 wifiManager.addCandidateConfig(config).then(result => { 589 console.info("result:" + JSON.stringify(result)); 590 }).catch((err:number) => { 591 console.error("failed:" + JSON.stringify(err)); 592 }); 593 }catch(error){ 594 console.error("failed:" + JSON.stringify(error)); 595 } 596````` 597 598## wifiManager.addCandidateConfig<sup>9+</sup> 599 600addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void 601 602添加候选网络配置,使用callback异步回调。 603 604**需要权限:** ohos.permission.SET_WIFI_INFO 605 606**系统能力:** SystemCapability.Communication.WiFi.STA 607 608**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 609 610**参数:** 611 612| **参数名** | **类型** | **必填** | **说明** | 613| -------- | -------- | -------- | -------- | 614| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 615| callback | AsyncCallback<number> | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 | 616 617**错误码:** 618 619以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 620 621| **错误码ID** | **错误信息** | 622| -------- | ---------------------------- | 623| 201 | Permission denied. | 624| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| 625| 801 | Capability not supported. | 626| 2501000 | Operation failed.| 627 628**示例:** 629`````ts 630 import { wifiManager } from '@kit.ConnectivityKit'; 631 632 try { 633 let config:wifiManager.WifiDeviceConfig = { 634 ssid : "****", 635 preSharedKey : "****", 636 securityType : 0 637 } 638 wifiManager.addCandidateConfig(config,(error,result) => { 639 console.info("result:" + JSON.stringify(result)); 640 }); 641 }catch(error){ 642 console.error("failed:" + JSON.stringify(error)); 643 } 644````` 645 646## wifiManager.removeCandidateConfig<sup>9+</sup> 647 648removeCandidateConfig(networkId: number): Promise<void> 649 650移除候选网络配置,使用Promise异步回调。 651 652**需要权限:** ohos.permission.SET_WIFI_INFO 653 654**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 655 656**系统能力:** SystemCapability.Communication.WiFi.STA 657 658**参数:** 659 660 | **参数名** | **类型** | **必填** | **说明** | 661 | -------- | -------- | -------- | -------- | 662 | networkId | number | 是 | 网络配置ID。 | 663 664**返回值:** 665 666 | **类型** | **说明** | 667 | -------- | -------- | 668 | Promise<void> | Promise对象。 | 669 670**错误码:** 671 672以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 673 674| **错误码ID** | **错误信息** | 675| -------- | ---------------------------- | 676| 201 | Permission denied. | 677| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed.| 678| 801 | Capability not supported. | 679| 2501000 | Operation failed.| 680| 2501001 | Wi-Fi STA disabled. | 681 682**示例:** 683 684```ts 685 import { wifiManager } from '@kit.ConnectivityKit'; 686 687 try { 688 let networkId = 0; 689 wifiManager.removeCandidateConfig(networkId).then(result => { 690 console.info("result:" + JSON.stringify(result)); 691 }).catch((err:number) => { 692 console.error("failed:" + JSON.stringify(err)); 693 }); 694 }catch(error){ 695 console.error("failed:" + JSON.stringify(error)); 696 } 697``` 698 699## wifiManager.removeCandidateConfig<sup>9+</sup> 700 701removeCandidateConfig(networkId: number, callback: AsyncCallback<void>): void 702 703移除候选网络配置,使用callback异步回调。 704 705**需要权限:** ohos.permission.SET_WIFI_INFO 706 707**系统能力:** SystemCapability.Communication.WiFi.STA 708 709**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 710 711**参数:** 712 713 | **参数名** | **类型** | **必填** | **说明** | 714 | -------- | -------- | -------- | -------- | 715 | networkId | number | 是 | 网络配置ID。 | 716 | callback | AsyncCallback<void> | 是 | 回调函数。当操作成功时,err为0。如果error为非0,表示处理出现错误。 | 717 718**错误码:** 719 720以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 721 722| **错误码ID** | **错误信息** | 723| -------- | ---------------------------- | 724| 201 | Permission denied. | 725| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed. | 726| 801 | Capability not supported. | 727| 2501000 | Operation failed.| 728| 2501001 | Wi-Fi STA disabled. | 729 730**示例:** 731```ts 732 import { wifiManager } from '@kit.ConnectivityKit'; 733 734 try { 735 let networkId = 0; 736 wifiManager.removeCandidateConfig(networkId,(error,result) => { 737 console.info("result:" + JSON.stringify(result)); 738 }); 739 }catch(error){ 740 console.error("failed:" + JSON.stringify(error)); 741 } 742``` 743 744## wifiManager.getCandidateConfigs<sup>9+</sup> 745 746getCandidateConfigs(): Array<WifiDeviceConfig> 747 748获取候选网络配置。 749 750**需要权限:** 751 752API 10起:ohos.permission.GET_WIFI_INFO 753 754**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 755 756**系统能力:** SystemCapability.Communication.WiFi.STA 757 758**返回值:** 759 760 | **类型** | **说明** | 761 | -------- | -------- | 762 | Array<[WifiDeviceConfig](#wifideviceconfig9)> | 候选网络配置数组。 | 763 764**错误码:** 765 766以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 767 768| **错误码ID** | **错误信息** | 769| -------- | ---------------------------- | 770| 201 | Permission denied. | 771| 801 | Capability not supported. | 772| 2501000 | Operation failed.| 773 774**示例:** 775 776```ts 777 import { wifiManager } from '@kit.ConnectivityKit'; 778 779 try { 780 let configs = wifiManager.getCandidateConfigs(); 781 console.info("configs:" + JSON.stringify(configs)); 782 let len = configs.length; 783 console.log("result len: " + len); 784 if(len > 0){ 785 for (let i = 0; i < len; ++i) { 786 console.info("ssid: " + configs[i].ssid); 787 console.info("bssid: " + configs[i].bssid); 788 } 789 } 790 }catch(error){ 791 console.error("failed:" + JSON.stringify(error)); 792 } 793 794``` 795 796## wifiManager.connectToCandidateConfig<sup>9+</sup> 797 798connectToCandidateConfig(networkId: number): void 799 800应用使用该接口连接到自己添加的候选网络(如果当前已经连接到热点,需要先断开连接)。 801 802**需要权限:** ohos.permission.SET_WIFI_INFO 803 804**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 805 806**系统能力:** SystemCapability.Communication.WiFi.STA 807 808**参数:** 809 810 | **参数名** | **类型** | **必填** | **说明** | 811 | -------- | -------- | -------- | -------- | 812 | networkId | number | 是 | 候选网络配置的ID。 | 813 814**错误码:** 815 816以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 817 818| **错误码ID** | **错误信息** | 819| -------- | ---------------------------- | 820| 201 | Permission denied. | 821| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed. | 822| 801 | Capability not supported. | 823| 2501000 | Operation failed.| 824| 2501001 | Wi-Fi STA disabled.| 825 826**示例:** 827```ts 828 import { wifiManager } from '@kit.ConnectivityKit'; 829 830 try { 831 let networkId = 0; // 实际的候选网络ID,在添加候选网络时生成,取自WifiDeviceConfig.netId 832 wifiManager.connectToCandidateConfig(networkId); 833 }catch(error){ 834 console.error("failed:" + JSON.stringify(error)); 835 } 836 837``` 838 839 840## wifiManager.getSignalLevel<sup>9+</sup> 841 842getSignalLevel(rssi: number, band: number): number 843 844查询WLAN信号强度。 845 846**需要权限:** ohos.permission.GET_WIFI_INFO 847 848**系统能力:** SystemCapability.Communication.WiFi.STA 849 850**参数:** 851 852 | **参数名** | **类型** | **必填** | **说明** | 853 | -------- | -------- | -------- | -------- | 854 | rssi | number | 是 | 热点的信号强度(dBm)。 | 855 | band | number | 是 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 | 856 857**返回值:** 858 859 | **类型** | **说明** | 860 | -------- | -------- | 861 | number | 信号强度,取值范围为[0, 4]。 | 862 863**错误码:** 864 865以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 866 867| **错误码ID** | **错误信息** | 868| -------- | -------- | 869| 201 | Permission denied. | 870| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. | 871| 801 | Capability not supported. | 872| 2501000 | Operation failed.| 873 874**示例:** 875```ts 876 import { wifiManager } from '@kit.ConnectivityKit'; 877 878 try { 879 let rssi = 0; 880 let band = 0; 881 let level = wifiManager.getSignalLevel(rssi,band); 882 console.info("level:" + JSON.stringify(level)); 883 }catch(error){ 884 console.error("failed:" + JSON.stringify(error)); 885 } 886 887``` 888 889## wifiManager.getLinkedInfo<sup>9+</sup> 890 891getLinkedInfo(): Promise<WifiLinkedInfo> 892 893获取WLAN连接信息,使用Promise异步回调。 894 895**需要权限:** ohos.permission.GET_WIFI_INFO 。 896 897当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限(该权限仅系统应用可申请),无该权限时,macAddress 返回空字符串。 898 899**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 900 901**系统能力:** SystemCapability.Communication.WiFi.STA 902 903**返回值:** 904 905 | 类型 | 说明 | 906 | -------- | -------- | 907 | Promise<[WifiLinkedInfo](#wifilinkedinfo9)> | Promise对象。表示WLAN连接信息。 | 908 909**错误码:** 910 911以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 912 913| **错误码ID** | **错误信息** | 914| -------- | -------- | 915| 201 | Permission denied. | 916| 801 | Capability not supported. | 917| 2501000 | Operation failed.| 918| 2501001 | Wi-Fi STA disabled.| 919 920## wifiManager.getLinkedInfo<sup>9+</sup> 921 922getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void 923 924获取WLAN连接信息,使用callback异步回调。 925 926**需要权限:** ohos.permission.GET_WIFI_INFO 。 927 928当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限(该权限仅系统应用可申请),无该权限时,macAddress 返回空字符串。 929 930**系统能力:** SystemCapability.Communication.WiFi.STA 931 932**参数:** 933 934 | 参数名 | 类型 | 必填 | 说明 | 935 | -------- | -------- | -------- | -------- | 936 | callback | AsyncCallback<[WifiLinkedInfo](#wifilinkedinfo9)> | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果err为非0,表示处理出现错误。 | 937 938**错误码:** 939 940以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 941 942| **错误码ID** | **错误信息** | 943| -------- | -------- | 944| 201 | Permission denied. | 945| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 946| 801 | Capability not supported. | 947| 2501000 | Operation failed.| 948| 2501001 | Wi-Fi STA disabled.| 949 950**示例:** 951```ts 952 import { wifiManager } from '@kit.ConnectivityKit'; 953 954 wifiManager.getLinkedInfo((err, data:wifiManager.WifiLinkedInfo) => { 955 if (err) { 956 console.error("get linked info error"); 957 return; 958 } 959 console.info("get wifi linked info: " + JSON.stringify(data)); 960 }); 961 962 wifiManager.getLinkedInfo().then(data => { 963 console.info("get wifi linked info: " + JSON.stringify(data)); 964 }).catch((error:number) => { 965 console.info("get linked info error"); 966 }); 967``` 968 969 970## WifiLinkedInfo<sup>9+</sup> 971 972提供WLAN连接的相关信息。 973 974**系统能力:** SystemCapability.Communication.WiFi.STA 975 976| 名称 | 类型 | 可读 | 可写 | 说明 | 977| -------- | -------- | -------- | -------- | -------- | 978| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 979| bssid | string | 是 | 否 | 热点的BSSID。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 980| rssi | number | 是 | 否 | 热点的信号强度(dBm)。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 981| band | number | 是 | 否 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 | 982| linkSpeed | number | 是 | 否 | WLAN接入点的上行速度。 | 983| rxLinkSpeed<sup>10+</sup> | number | 是 | 否 | WLAN接入点的下行速度。 | 984| maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大上行速率。 | 985| maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大下行速率。 | 986| frequency | number | 是 | 否 | WLAN接入点的频率。<br>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 | 987| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 | 988| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 | 989| macType | number | 是 | 否 | MAC地址类型。0 - 随机MAC地址,1 - 设备MAC地址。 | 990| macAddress | string | 是 | 否 | 设备的MAC地址。 | 991| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 | 992| connState | [ConnState](#connstate9) | 是 | 否 | WLAN连接状态。 | 993| channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth9) | 是 | 否 | 当前连接热点的信道带宽。 | 994| wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard10) | 是 | 否 | 当前连接热点的WiFi标准。 | 995| supportedWifiCategory<sup>12+</sup> | [WifiCategory](#wificategory12) | 是 | 否 | 热点支持的最高wifi级别。 | 996| isHiLinkNetwork<sup>12+</sup> | boolean | 是 | 否| 热点是否支持hilink,true:支持, false:不支持。 | 997 998## ConnState<sup>9+</sup> 999 1000表示WLAN连接状态的枚举。 1001 1002**系统能力:** SystemCapability.Communication.WiFi.STA 1003 1004| 名称 | 值 | 说明 | 1005| -------- | -------- | -------- | 1006| SCANNING | 0 | 设备正在搜索可用的AP。 | 1007| CONNECTING | 1 | 正在建立WLAN连接。 | 1008| AUTHENTICATING | 2 | WLAN连接正在认证中。 | 1009| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 | 1010| CONNECTED | 4 | WLAN连接已建立。 | 1011| DISCONNECTING | 5 | WLAN连接正在断开。 | 1012| DISCONNECTED | 6 | WLAN连接已断开。 | 1013| UNKNOWN | 7 | WLAN连接建立失败。 | 1014 1015 1016## wifiManager.isConnected<sup>9+</sup> 1017 1018isConnected(): boolean 1019 1020查询WLAN是否已连接。 1021 1022**需要权限:** ohos.permission.GET_WIFI_INFO 1023 1024**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1025 1026**系统能力:** SystemCapability.Communication.WiFi.STA 1027 1028**返回值:** 1029 1030 | **类型** | **说明** | 1031 | -------- | -------- | 1032 | boolean | true:已连接, false:未连接。 | 1033 1034**错误码:** 1035 1036以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1037 1038| **错误码ID** | **错误信息** | 1039| -------- | -------- | 1040| 201 | Permission denied. | 1041| 801 | Capability not supported. | 1042| 2501000 | Operation failed.| 1043 1044**示例:** 1045```ts 1046 import { wifiManager } from '@kit.ConnectivityKit'; 1047 1048 try { 1049 let ret = wifiManager.isConnected(); 1050 console.info("isConnected:" + ret); 1051 }catch(error){ 1052 console.error("failed:" + JSON.stringify(error)); 1053 } 1054 1055``` 1056 1057 1058## wifiManager.isFeatureSupported<sup>9+</sup> 1059 1060isFeatureSupported(featureId: number): boolean 1061 1062判断设备是否支持相关WLAN特性。 1063 1064**需要权限:** ohos.permission.GET_WIFI_INFO 1065 1066**系统能力:** SystemCapability.Communication.WiFi.Core 1067 1068**参数:** 1069 1070 | **参数名** | **类型** | 必填 | **说明** | 1071 | -------- | -------- | -------- | -------- | 1072 | featureId | number | 是 | 特性ID值。 | 1073 1074**特性ID值枚举:** 1075 1076| 枚举值 | 说明 | 1077| -------- | -------- | 1078| 0x0001 | 基础结构模式特性。 | 1079| 0x0002 | 5 GHz带宽特性。 | 1080| 0x0004 | GAS/ANQP特性。 | 1081| 0x0008 | Wifi-Direct特性。 | 1082| 0x0010 | Soft AP特性。 | 1083| 0x0040 | Wi-Fi AWare组网特性。 | 1084| 0x8000 | AP STA共存特性。 | 1085| 0x8000000 | WPA3-Personal SAE特性。 | 1086| 0x10000000 | WPA3-Enterprise Suite-B | 1087| 0x20000000 | 增强开放特性。 | 1088 1089**返回值:** 1090 1091 | **类型** | **说明** | 1092 | -------- | -------- | 1093 | boolean | true:支持, false:不支持。 | 1094 1095**错误码:** 1096 1097以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1098 1099| **错误码ID** | **错误信息** | 1100 | -------- | -------- | 1101| 201 | Permission denied. | 1102| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. | 1103| 801 | Capability not supported. | 1104| 2401000 | Operation failed.| 1105 1106**示例:** 1107```ts 1108 import { wifiManager } from '@kit.ConnectivityKit'; 1109 1110 try { 1111 let featureId = 0; 1112 let ret = wifiManager.isFeatureSupported(featureId); 1113 console.info("isFeatureSupported:" + ret); 1114 }catch(error){ 1115 console.error("failed:" + JSON.stringify(error)); 1116 } 1117 1118``` 1119 1120 1121## wifiManager.getIpInfo<sup>9+</sup> 1122 1123getIpInfo(): IpInfo 1124 1125获取IP信息。 1126 1127**需要权限:** ohos.permission.GET_WIFI_INFO 1128 1129**系统能力:** SystemCapability.Communication.WiFi.STA 1130 1131**返回值:** 1132 1133 | **类型** | **说明** | 1134 | -------- | -------- | 1135 | [IpInfo](#ipinfo9) | IP信息。 | 1136 1137**错误码:** 1138 1139以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1140 1141| **错误码ID** | **错误信息** | 1142| -------- | -------- | 1143| 201 | Permission denied. | 1144| 801 | Capability not supported. | 1145| 2501000 | Operation failed.| 1146 1147**示例:** 1148```ts 1149 import { wifiManager } from '@kit.ConnectivityKit'; 1150 1151 try { 1152 let info = wifiManager.getIpInfo(); 1153 console.info("info:" + JSON.stringify(info)); 1154 }catch(error){ 1155 console.error("failed:" + JSON.stringify(error)); 1156 } 1157``` 1158 1159## IpInfo<sup>9+</sup> 1160 1161IP信息。 1162 1163**系统能力:** SystemCapability.Communication.WiFi.STA 1164 1165| **名称** | **类型** | **可读** | **可写** | **说明** | 1166| -------- | -------- | -------- | -------- | -------- | 1167| ipAddress | number | 是 | 否 | IP地址。 | 1168| gateway | number | 是 | 否 | 网关。 | 1169| netmask | number | 是 | 否 | 掩码。 | 1170| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 | 1171| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 | 1172| serverIp | number | 是 | 否 | DHCP服务端IP地址。 | 1173| leaseDuration | number | 是 | 否 | IP地址租用时长,单位:秒。 | 1174 1175 1176## wifiManager.getIpv6Info<sup>10+</sup> 1177 1178getIpv6Info(): Ipv6Info 1179 1180获取IPV6信息。 1181 1182**需要权限:** ohos.permission.GET_WIFI_INFO 1183 1184**系统能力:** SystemCapability.Communication.WiFi.STA 1185 1186**返回值:** 1187 1188| **类型** | **说明** | 1189| -------- | -------- | 1190| [Ipv6Info](#ipv6info10) | Ipv6信息。 | 1191 1192**错误码:** 1193 1194以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1195 1196| **错误码ID** | **错误信息** | 1197| -------- | -------- | 1198| 201 | Permission denied. | 1199| 801 | Capability not supported. | 1200| 2501000 | Operation failed.| 1201 1202**示例:** 1203```ts 1204 import { wifiManager } from '@kit.ConnectivityKit'; 1205 1206 try { 1207 let info = wifiManager.getIpv6Info(); 1208 console.info("info:" + JSON.stringify(info)); 1209 }catch(error){ 1210 console.error("failed:" + JSON.stringify(error)); 1211 } 1212``` 1213## Ipv6Info<sup>10+</sup> 1214 1215Ipv6信息。 1216 1217**系统能力:** SystemCapability.Communication.WiFi.STA 1218 1219| **名称** | **类型** | **可读** | **可写** | **说明** | 1220| -------- | -------- | -------- | -------- | -------- | 1221| linkIpv6Address | string | 是 | 否 | 链路Ipv6地址。 | 1222| globalIpv6Address | string | 是 | 否 | 全局Ipv6地址。 | 1223| randomGlobalIpv6Address | string | 是 | 否 | 随机全局Ipv6地址。 预留字段,暂不支持。| 1224| uniqueIpv6Address<sup>12+</sup> | string | 是 | 否 | 唯一本地Ipv6地址。 | 1225| randomUniqueIpv6Address<sup>12+</sup> | string | 是 | 否 | 随机唯一本地Ipv6地址。 | 1226| gateway | string | 是 | 否 | 网关。 | 1227| netmask | string | 是 | 否 | 网络掩码。 | 1228| primaryDNS | string | 是 | 否 | 主DNS服务器Ipv6地址。 | 1229| secondDNS | string | 是 | 否 | 备DNS服务器Ipv6地址。 | 1230 1231## wifiManager.getCountryCode<sup>9+</sup> 1232 1233getCountryCode(): string 1234 1235获取国家码信息。 1236 1237**需要权限:** ohos.permission.GET_WIFI_INFO 1238 1239**系统能力:** SystemCapability.Communication.WiFi.Core 1240 1241**返回值:** 1242 1243 | **类型** | **说明** | 1244 | -------- | -------- | 1245 | string | 国家码。 | 1246 1247**错误码:** 1248 1249以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1250 1251| **错误码ID** | **错误信息** | 1252| -------- | -------- | 1253| 201 | Permission denied. | 1254| 801 | Capability not supported. | 1255| 2401000 | Operation failed.| 1256 1257**示例:** 1258```ts 1259 import { wifiManager } from '@kit.ConnectivityKit'; 1260 1261 try { 1262 let code = wifiManager.getCountryCode(); 1263 console.info("code:" + code); 1264 }catch(error){ 1265 console.error("failed:" + JSON.stringify(error)); 1266 } 1267``` 1268 1269 1270 1271 1272## wifiManager.isBandTypeSupported<sup>10+</sup> 1273 1274isBandTypeSupported(bandType: WifiBandType): boolean 1275 1276判断当前频段是否支持。 1277 1278**需要权限:** ohos.permission.GET_WIFI_INFO。 1279 1280**系统能力:** SystemCapability.Communication.WiFi.STA 1281 1282**参数:** 1283 1284 | **参数名** | **类型** | **必填** | **说明** | 1285 | -------- | -------- | -------- | -------- | 1286 | bandType | [WifiBandType](#wifibandtype10) | 是 | Wifi 频段类型。 | 1287 1288**返回值:** 1289 1290 | **类型** | **说明** | 1291 | -------- | -------- | 1292 | boolean | true:支持, false:不支持。 | 1293 1294**错误码:** 1295 1296以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1297 1298| **错误码ID** | **错误信息** | 1299| -------- | -------- | 1300| 201 | Permission denied. | 1301| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified.<br>2. Incorrect parameter types. 3. Parameter verification failed. | 1302| 801 | Capability not supported. | 1303| 2501000 | Operation failed.| 1304 1305**示例:** 1306```ts 1307 import { wifiManager } from '@kit.ConnectivityKit'; 1308 1309 try { 1310 let type = 0; 1311 let isBandTypeSupported = wifiManager.isBandTypeSupported(type); 1312 console.info("isBandTypeSupported:" + isBandTypeSupported); 1313 }catch(error){ 1314 console.error("failed:" + JSON.stringify(error)); 1315 } 1316``` 1317 1318 1319## wifiManager.isMeteredHotspot<sup>11+</sup> 1320 1321isMeteredHotspot(): boolean 1322 1323查询设备当前连接的wifi是否是手机热点。 1324 1325**需要权限:** ohos.permission.GET_WIFI_INFO 1326 1327**系统能力:** SystemCapability.Communication.WiFi.STA 1328 1329**返回值:** 1330 1331 | **类型** | **说明** | 1332 | -------- | -------- | 1333 | boolean | true:是手机热点, false:不是手机热点。 | 1334 1335**错误码:** 1336 1337以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1338 1339| **错误码ID** | **错误信息** | 1340| -------- | -------- | 1341| 201 | Permission denied. | 1342| 801 | Capability not supported. | 1343| 2501000 | Operation failed.| 1344| 2501001 | Wi-Fi STA disabled. | 1345 1346**示例:** 1347 1348```ts 1349 import { wifiManager } from '@kit.ConnectivityKit'; 1350 1351 try { 1352 let isMeteredHotspot = wifiManager.isMeteredHotspot(); 1353 console.info("isMeteredHotspot:" + isMeteredHotspot); 1354 }catch(error){ 1355 console.error("failed:" + JSON.stringify(error)); 1356 } 1357``` 1358 1359 1360 1361## wifiManager.getP2pLinkedInfo<sup>9+</sup> 1362 1363getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> 1364 1365获取P2P连接信息,使用Promise异步回调。 1366 1367**需要权限:** ohos.permission.GET_WIFI_INFO 1368 1369获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限(该权限仅系统应用可申请),无该权限时,groupOwnerAddr 返回全零地址。 1370 1371**系统能力:** SystemCapability.Communication.WiFi.P2P 1372 1373**返回值:** 1374 1375 | 类型 | 说明 | 1376 | -------- | -------- | 1377 | Promise<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | Promise对象。表示P2P连接信息。 | 1378 1379**错误码:** 1380 1381以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1382 1383| **错误码ID** | **错误信息** | 1384| -------- | -------- | 1385| 201 | Permission denied. | 1386| 801 | Capability not supported. | 1387| 2801000 | Operation failed. | 1388 1389 1390## wifiManager.getP2pLinkedInfo<sup>9+</sup> 1391 1392getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void 1393 1394获取P2P连接信息,使用callback异步回调。 1395 1396**需要权限:** ohos.permission.GET_WIFI_INFO 1397 1398获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限(该权限仅系统应用可申请),无该权限时,groupOwnerAddr 返回全零地址。 1399 1400**系统能力:** SystemCapability.Communication.WiFi.P2P 1401 1402**参数:** 1403 1404 | 参数名 | 类型 | 必填 | 说明 | 1405 | -------- | -------- | -------- | -------- | 1406 | callback | AsyncCallback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果err为非0,表示处理出现错误。 | 1407 1408**错误码:** 1409 1410以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1411 1412| **错误码ID** | **错误信息** | 1413| -------- | -------- | 1414| 201 | Permission denied. | 1415| 801 | Capability not supported. | 1416| 2801000 | Operation failed. | 1417| 2801001 | Wi-Fi STA disabled. | 1418 1419**示例:** 1420```ts 1421 import { wifiManager } from '@kit.ConnectivityKit'; 1422 1423 wifiManager.getP2pLinkedInfo((err, data:wifiManager.WifiP2pLinkedInfo) => { 1424 if (err) { 1425 console.error("get p2p linked info error"); 1426 return; 1427 } 1428 console.info("get wifi p2p linked info: " + JSON.stringify(data)); 1429 }); 1430 1431 wifiManager.getP2pLinkedInfo().then(data => { 1432 console.info("get wifi p2p linked info: " + JSON.stringify(data)); 1433 }); 1434``` 1435 1436 1437## WifiP2pLinkedInfo<sup>9+</sup> 1438 1439提供WLAN连接的相关信息。 1440 1441**系统能力:** SystemCapability.Communication.WiFi.P2P 1442 1443| 名称 | 类型 | 可读 | 可写 | 说明 | 1444| -------- | -------- | -------- | -------- | -------- | 1445| connectState | [P2pConnectState](#p2pconnectstate9) | 是 | 否 | P2P连接状态。 | 1446| isGroupOwner | boolean | 是 | 否 | 是否是群主。 | 1447| groupOwnerAddr | string | 是 | 否 | 群组IP地址。 1448 1449 1450## P2pConnectState<sup>9+</sup> 1451 1452表示P2P连接状态的枚举。 1453 1454**系统能力:** SystemCapability.Communication.WiFi.P2P 1455 1456| 名称 | 值 | 说明 | 1457| -------- | -------- | -------- | 1458| DISCONNECTED | 0 | 断开状态。 | 1459| CONNECTED | 1 | 连接状态。 | 1460 1461## wifiManager.getCurrentGroup<sup>9+</sup> 1462 1463getCurrentGroup(): Promise<WifiP2pGroupInfo> 1464 1465获取P2P当前组信息,使用Promise异步回调。 1466 1467**需要权限:** 1468 1469API 10起:ohos.permission.GET_WIFI_INFO 1470 1471**系统能力:** SystemCapability.Communication.WiFi.P2P 1472 1473**返回值:** 1474 1475| 类型 | 说明 | 1476| -------- | -------- | 1477| Promise<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | Promise对象。表示当前组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 1478 1479**错误码:** 1480 1481以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1482 1483| **错误码ID** | **错误信息** | 1484| -------- | -------- | 1485| 201 | Permission denied. | 1486| 801 | Capability not supported. | 1487| 2801000 | Operation failed. | 1488 1489## wifiManager.getCurrentGroup<sup>9+</sup> 1490 1491getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void 1492 1493获取P2P当前组信息,使用callback异步回调。 1494 1495**需要权限:** 1496 1497API 10起:ohos.permission.GET_WIFI_INFO 1498 1499**系统能力:** SystemCapability.Communication.WiFi.P2P 1500 1501**参数:** 1502 1503| 参数名 | 类型 | 必填 | 说明 | 1504| -------- | -------- | -------- | -------- | 1505| callback | AsyncCallback<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 1506 1507**错误码:** 1508 1509以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1510 1511| **错误码ID** | **错误信息** | 1512| -------- | -------- | 1513| 201 | Permission denied. | 1514| 801 | Capability not supported. | 1515| 2801000 | Operation failed. | 1516 1517**示例:** 1518```ts 1519 import { wifiManager } from '@kit.ConnectivityKit'; 1520 // p2p已经建组或者连接成功,才能正常获取到当前组信息 1521 wifiManager.getCurrentGroup((err, data:wifiManager.WifiP2pGroupInfo) => { 1522 if (err) { 1523 console.error("get current P2P group error"); 1524 return; 1525 } 1526 console.info("get current P2P group: " + JSON.stringify(data)); 1527 }); 1528 1529 wifiManager.getCurrentGroup().then(data => { 1530 console.info("get current P2P group: " + JSON.stringify(data)); 1531 }); 1532``` 1533 1534## wifiManager.getP2pPeerDevices<sup>9+</sup> 1535 1536getP2pPeerDevices(): Promise<WifiP2pDevice[]> 1537 1538获取P2P对端设备列表信息,使用Promise异步回调。 1539 1540**需要权限:** 1541 1542API 10起:ohos.permission.GET_WIFI_INFO 1543 1544**系统能力:** SystemCapability.Communication.WiFi.P2P 1545 1546**返回值:** 1547 1548| 类型 | 说明 | 1549| -------- | -------- | 1550| Promise<[WifiP2pDevice[]](#wifip2pdevice9)> | Promise对象。表示对端设备列表信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 1551 1552**错误码:** 1553 1554以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1555 1556| **错误码ID** | **错误信息** | 1557| -------- | -------- | 1558| 201 | Permission denied. | 1559| 801 | Capability not supported. | 1560| 2801000 | Operation failed. | 1561 1562## wifiManager.getP2pPeerDevices<sup>9+</sup> 1563 1564getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void 1565 1566获取P2P对端设备列表信息,使用callback异步回调。 1567 1568**需要权限:** 1569 1570API 10起:ohos.permission.GET_WIFI_INFO 1571 1572**系统能力:** SystemCapability.Communication.WiFi.P2P 1573 1574**参数:** 1575 1576| 参数名 | 类型 | 必填 | 说明 | 1577| -------- | -------- | -------- | -------- | 1578| callback | AsyncCallback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果err为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 1579 1580**错误码:** 1581 1582以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1583 1584| **错误码ID** | **错误信息** | 1585| -------- | -------- | 1586| 201 | Permission denied. | 1587| 801 | Capability not supported. | 1588| 2801000 | Operation failed. | 1589| 2801001 | Wi-Fi STA disabled. | 1590 1591**示例:** 1592```ts 1593 import { wifiManager } from '@kit.ConnectivityKit'; 1594 // p2p发现阶段完成,才能正常获取到对端设备列表信息 1595 wifiManager.getP2pPeerDevices((err, data:wifiManager.WifiP2pDevice) => { 1596 if (err) { 1597 console.error("get P2P peer devices error"); 1598 return; 1599 } 1600 console.info("get P2P peer devices: " + JSON.stringify(data)); 1601 }); 1602 1603 wifiManager.getP2pPeerDevices().then(data => { 1604 console.info("get P2P peer devices: " + JSON.stringify(data)); 1605 }); 1606``` 1607 1608## WifiP2pDevice<sup>9+</sup> 1609 1610表示P2P设备信息。 1611 1612**系统能力:** SystemCapability.Communication.WiFi.P2P 1613 1614| 名称 | 类型 | 可读 | 可写 | 说明 | 1615| -------- | -------- | -------- | -------- | -------- | 1616| deviceName | string | 是 | 否 | 设备名称。 | 1617| deviceAddress | string | 是 | 否 | 设备MAC地址。 | 1618| deviceAddressType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 设备MAC地址类型。 | 1619| primaryDeviceType | string | 是 | 否 | 主设备类型。 | 1620| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus9) | 是 | 否 | 设备状态。 | 1621| groupCapabilities | number | 是 | 否 | 群组能力。 | 1622 1623 1624## P2pDeviceStatus<sup>9+</sup> 1625 1626表示设备状态的枚举。 1627 1628**系统能力:** SystemCapability.Communication.WiFi.P2P 1629 1630| 名称 | 值 | 说明 | 1631| -------- | -------- | -------- | 1632| CONNECTED | 0 | 连接状态。 | 1633| INVITED | 1 | 邀请状态。 | 1634| FAILED | 2 | 失败状态。 | 1635| AVAILABLE | 3 | 可用状态。 | 1636| UNAVAILABLE | 4 | 不可用状态。 | 1637 1638 1639## wifiManager.getP2pLocalDevice<sup>9+</sup> 1640 1641getP2pLocalDevice(): Promise<WifiP2pDevice> 1642 1643获取P2P本端设备信息,使用Promise异步回调。 1644 1645**需要权限:** 1646 1647API 11起:ohos.permission.GET_WIFI_INFO 1648 1649**系统能力:** SystemCapability.Communication.WiFi.P2P 1650 1651**返回值:** 1652 1653 | 类型 | 说明 | 1654 | -------- | -------- | 1655 | Promise<[WifiP2pDevice](#wifip2pdevice9)> | Promise对象。表示本端设备信息。 | 1656 1657**错误码:** 1658 1659以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1660 1661| **错误码ID** | **错误信息** | 1662| -------- | -------- | 1663| 201 | Permission denied. | 1664| 801 | Capability not supported. | 1665| 2801000 | Operation failed. | 1666 1667## wifiManager.getP2pLocalDevice<sup>9+</sup> 1668 1669getP2pLocalDevice(callback: AsyncCallback<WifiP2pDevice>): void 1670 1671获取P2P本端设备信息,使用callback异步回调。 1672 1673**需要权限:** 1674 1675API 11起:ohos.permission.GET_WIFI_INFO 1676 1677**系统能力:** SystemCapability.Communication.WiFi.P2P 1678 1679**参数:** 1680 1681 | 参数名 | 类型 | 必填 | 说明 | 1682 | -------- | -------- | -------- | -------- | 1683 | callback | AsyncCallback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 回调函数。当操作成功时,err为0,data表示本端设备信息。如果error为非0,表示处理出现错误。 | 1684 1685**错误码:** 1686 1687| **错误码ID** | **错误信息** | 1688| -------- | -------- | 1689| 201 | Permission denied. | 1690| 801 | Capability not supported. | 1691| 2801000 | Operation failed. | 1692| 2801001 | Wi-Fi STA disabled. | 1693 1694**示例:** 1695```ts 1696 import { wifiManager } from '@kit.ConnectivityKit'; 1697 // p2p已经建组或者连接成功,才能正常获取到本端设备信息 1698 wifiManager.getP2pLocalDevice((err, data:wifiManager.WifiP2pDevice) => { 1699 if (err) { 1700 console.error("get P2P local device error"); 1701 return; 1702 } 1703 console.info("get P2P local device: " + JSON.stringify(data)); 1704 }); 1705 1706 wifiManager.getP2pLocalDevice().then(data => { 1707 console.info("get P2P local device: " + JSON.stringify(data)); 1708 }); 1709``` 1710 1711## wifiManager.createGroup<sup>9+</sup> 1712 1713createGroup(config: WifiP2PConfig): void 1714 1715创建群组。 1716 1717**需要权限:** ohos.permission.GET_WIFI_INFO 1718 1719**系统能力:** SystemCapability.Communication.WiFi.P2P 1720 1721**参数:** 1722 1723| **参数名** | **类型** | 必填 | **说明** | 1724| -------- | -------- | -------- | -------- | 1725| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 群组配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 | 1726 1727**错误码:** 1728 1729以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1730 1731| **错误码ID** | **错误信息** | 1732| -------- | -------- | 1733| 201 | Permission denied. | 1734| 401 | Invalid parameters. Possible causes: 1. Incorrect parameter types.<br>2. Parameter verification failed. | 1735| 801 | Capability not supported. | 1736| 2801000 | Operation failed. | 1737| 2801001 | Wi-Fi STA disabled. | 1738 1739**示例:** 1740```ts 1741 import { wifiManager } from '@kit.ConnectivityKit'; 1742 1743 try { 1744 let config:wifiManager.WifiP2PConfig = { 1745 deviceAddress: "****", 1746 netId: 0, 1747 passphrase: "*****", 1748 groupName: "****", 1749 goBand: 0 1750 } 1751 wifiManager.createGroup(config); 1752 1753 }catch(error){ 1754 console.error("failed:" + JSON.stringify(error)); 1755 } 1756``` 1757 1758## WifiP2PConfig<sup>9+</sup> 1759 1760表示P2P配置信息。 1761 1762**系统能力:** SystemCapability.Communication.WiFi.P2P 1763 1764| 名称 | 类型 | 可读 | 可写 | 说明 | 1765| -------- | -------- | -------- | -------- | -------- | 1766| deviceAddress | string | 是 | 否 | 设备地址。 | 1767| deviceAddressType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 设备地址类型。 | 1768| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 | 1769| passphrase | string | 是 | 否 | 群组密钥。 | 1770| groupName | string | 是 | 否 | 群组名称。 | 1771| goBand | [GroupOwnerBand](#groupownerband9) | 是 | 否 | 群组带宽。 | 1772 1773 1774## GroupOwnerBand<sup>9+</sup> 1775 1776表示群组带宽的枚举。 1777 1778**系统能力:** SystemCapability.Communication.WiFi.P2P 1779 1780| 名称 | 值 | 说明 | 1781| -------- | -------- | -------- | 1782| GO_BAND_AUTO | 0 | 自动模式。 | 1783| GO_BAND_2GHZ | 1 | 2.4GHZ。 | 1784| GO_BAND_5GHZ | 2 | 5GHZ。 | 1785 1786 1787## wifiManager.removeGroup<sup>9+</sup> 1788 1789removeGroup(): void 1790 1791移除群组。 1792 1793**需要权限:** ohos.permission.GET_WIFI_INFO 1794 1795**系统能力:** SystemCapability.Communication.WiFi.P2P 1796 1797**错误码:** 1798 1799以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1800 1801| **错误码ID** | **错误信息** | 1802| -------- | -------- | 1803| 201 | Permission denied. | 1804| 801 | Capability not supported. | 1805| 2801000 | Operation failed. | 1806| 2801001 | Wi-Fi STA disabled. | 1807 1808**示例:** 1809```ts 1810 import { wifiManager } from '@kit.ConnectivityKit'; 1811 1812 try { 1813 wifiManager.removeGroup(); 1814 }catch(error){ 1815 console.error("failed:" + JSON.stringify(error)); 1816 } 1817``` 1818 1819## wifiManager.p2pConnect<sup>9+</sup> 1820 1821p2pConnect(config: WifiP2PConfig): void 1822 1823执行P2P连接。 1824 1825**需要权限:** 1826 1827API 10起:ohos.permission.GET_WIFI_INFO 1828 1829**系统能力:** SystemCapability.Communication.WiFi.P2P 1830 1831**参数:** 1832 1833| **参数名** | **类型** | 必填 | **说明** | 1834| -------- | -------- | -------- | -------- | 1835| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 连接配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 | 1836 1837**错误码:** 1838 1839以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1840 1841| **错误码ID** | **错误信息** | 1842| -------- | -------- | 1843| 201 | Permission denied. | 1844| 401 | Invalid parameters. Possible causes: 1. Incorrect parameter types.<br>2. Parameter verification failed. | 1845| 801 | Capability not supported. | 1846| 2801000 | Operation failed. | 1847| 2801001 | Wi-Fi STA disabled. | 1848 1849**示例:** 1850```ts 1851 import { wifiManager } from '@kit.ConnectivityKit'; 1852 1853 let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { 1854 console.info("p2p connection change receive event: " + JSON.stringify(result)); 1855 wifiManager.getP2pLinkedInfo((err, data:wifiManager.WifiP2pLinkedInfo) => { 1856 if (err) { 1857 console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err)); 1858 return; 1859 } 1860 console.info("get getP2pLinkedInfo: " + JSON.stringify(data)); 1861 }); 1862 } 1863 wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 1864 1865 let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { 1866 console.info("p2p device change receive event: " + JSON.stringify(result)); 1867 } 1868 wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 1869 1870 let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { 1871 console.info("p2p peer device change receive event: " + JSON.stringify(result)); 1872 wifiManager.getP2pPeerDevices((err, data:wifiManager.WifiP2pDevice) => { 1873 if (err) { 1874 console.error('failed to get peer devices: ' + JSON.stringify(err)); 1875 return; 1876 } 1877 console.info("get peer devices: " + JSON.stringify(data)); 1878 let len = data.length; 1879 for (let i = 0; i < len; ++i) { 1880 if (data[i].deviceName === "my_test_device") { 1881 console.info("p2p connect to test device: " + data[i].deviceAddress); 1882 let config:wifiManager.WifiP2PConfig = { 1883 deviceAddress:data[i].deviceAddress, 1884 netId:-2, 1885 passphrase:"", 1886 groupName:"", 1887 goBand:0, 1888 } 1889 wifiManager.p2pConnect(config); 1890 } 1891 } 1892 }); 1893 } 1894 wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 1895 1896 let recvP2pPersistentGroupChangeFunc = () => { 1897 console.info("p2p persistent group change receive event"); 1898 1899 wifiManager.getCurrentGroup((err, data:wifiManager.WifiP2pGroupInfo) => { 1900 if (err) { 1901 console.error('failed to get current group: ' + JSON.stringify(err)); 1902 return; 1903 } 1904 console.info("get current group: " + JSON.stringify(data)); 1905 }); 1906 } 1907 wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 1908 1909 setTimeout(() => {wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000); 1910 setTimeout(() => {wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000); 1911 setTimeout(() => {wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000); 1912 setTimeout(() => {wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000); 1913 console.info("start discover devices -> " + wifiManager.startDiscoverDevices()); 1914``` 1915 1916## wifiManager.p2pCancelConnect<sup>9+</sup> 1917 1918p2pCancelConnect(): void 1919 1920在P2P连接过程中,取消P2P连接。 1921 1922**需要权限:** ohos.permission.GET_WIFI_INFO 1923 1924**系统能力:** SystemCapability.Communication.WiFi.P2P 1925 1926**错误码:** 1927 1928以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1929 1930| **错误码ID** | **错误信息** | 1931| -------- | -------- | 1932| 201 | Permission denied. | 1933| 801 | Capability not supported. | 1934| 2801000 | Operation failed. | 1935| 2801001 | Wi-Fi STA disabled. | 1936 1937**示例:** 1938```ts 1939 import { wifiManager } from '@kit.ConnectivityKit'; 1940 1941 try { 1942 wifiManager.p2pCancelConnect(); 1943 }catch(error){ 1944 console.error("failed:" + JSON.stringify(error)); 1945 } 1946``` 1947 1948## wifiManager.startDiscoverDevices<sup>9+</sup> 1949 1950startDiscoverDevices(): void 1951 1952开始发现设备。 1953 1954**需要权限:** 1955 1956API 10起:ohos.permission.GET_WIFI_INFO 1957 1958**系统能力:** SystemCapability.Communication.WiFi.P2P 1959 1960**错误码:** 1961 1962以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1963 1964| **错误码ID** | **错误信息** | 1965| -------- | -------- | 1966| 201 | Permission denied. | 1967| 801 | Capability not supported. | 1968| 2801000 | Operation failed. | 1969| 2801001 | Wi-Fi STA disabled. | 1970 1971**示例:** 1972```ts 1973 import { wifiManager } from '@kit.ConnectivityKit'; 1974 1975 try { 1976 wifiManager.startDiscoverDevices(); 1977 }catch(error){ 1978 console.error("failed:" + JSON.stringify(error)); 1979 } 1980``` 1981 1982## wifiManager.stopDiscoverDevices<sup>9+</sup> 1983 1984stopDiscoverDevices(): void 1985 1986停止发现设备。 1987 1988**需要权限:** ohos.permission.GET_WIFI_INFO 1989 1990**系统能力:** SystemCapability.Communication.WiFi.P2P 1991 1992**错误码:** 1993 1994以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 1995 1996| **错误码ID** | **错误信息** | 1997| -------- | -------- | 1998| 201 | Permission denied. | 1999| 801 | Capability not supported. | 2000| 2801000 | Operation failed. | 2001| 2801001 | Wi-Fi STA disabled. | 2002 2003**示例:** 2004```ts 2005 import { wifiManager } from '@kit.ConnectivityKit'; 2006 2007 try { 2008 wifiManager.stopDiscoverDevices(); 2009 }catch(error){ 2010 console.error("failed:" + JSON.stringify(error)); 2011 } 2012``` 2013 2014 2015 2016## WifiP2pGroupInfo<sup>9+</sup> 2017 2018表示P2P群组相关信息。 2019 2020**系统能力:** SystemCapability.Communication.WiFi.P2P 2021 2022| 名称 | 类型 | 可读 | 可写 | 说明 | 2023| -------- | -------- | -------- | -------- | -------- | 2024| isP2pGo | boolean | 是 | 否 | 是否是群主。 | 2025| ownerInfo | [WifiP2pDevice](#wifip2pdevice9) | 是 | 否 | 群组的设备信息。 | 2026| passphrase | string | 是 | 否 | 群组密钥。 | 2027| interface | string | 是 | 否 | 接口名称。 | 2028| groupName | string | 是 | 否 | 群组名称。 | 2029| networkId | number | 是 | 否 | 网络ID。 | 2030| frequency | number | 是 | 否 | 群组的频率。 | 2031| clientDevices | [WifiP2pDevice[]](#wifip2pdevice9) | 是 | 否 | 接入的设备列表信息。 | 2032| goIpAddress | string | 是 | 否 | 群组IP地址。 | 2033 2034 2035## wifiManager.on('wifiStateChange')<sup>9+</sup> 2036 2037on(type: 'wifiStateChange', callback: Callback<number>): void 2038 2039注册WLAN状态改变事件。 2040 2041**需要权限:** ohos.permission.GET_WIFI_INFO 2042 2043**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2044 2045**系统能力:** SystemCapability.Communication.WiFi.STA 2046 2047**参数:** 2048 2049 | **参数名** | **类型** | **必填** | **说明** | 2050 | -------- | -------- | -------- | -------- | 2051 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 2052 | callback | Callback<number> | 是 | 状态改变回调函数。 | 2053 2054**错误码:** 2055 2056以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2057 2058| **错误码ID** | **错误信息** | 2059| -------- | ---------------------------- | 2060| 201 | Permission denied. | 2061| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2062| 801 | Capability not supported. | 2063| 2501000 | Operation failed.| 2064 2065**状态改变事件的枚举:** 2066 2067| **枚举值** | **说明** | 2068| -------- | -------- | 2069| 0 | 未激活。 | 2070| 1 | 已激活。 | 2071| 2 | 激活中。 | 2072| 3 | 去激活中。 | 2073 2074 2075## wifiManager.off('wifiStateChange')<sup>9+</sup> 2076 2077off(type: 'wifiStateChange', callback?: Callback<number>): void 2078 2079取消注册WLAN状态改变事件。 2080 2081**需要权限:** ohos.permission.GET_WIFI_INFO 2082 2083**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2084 2085**系统能力:** SystemCapability.Communication.WiFi.STA 2086 2087**参数:** 2088 2089 | **参数名** | **类型** | **必填** | **说明** | 2090 | -------- | -------- | -------- | -------- | 2091 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 2092 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2093 2094**错误码:** 2095 2096以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2097 2098| **错误码ID** | **错误信息** | 2099| -------- | ---------------------------- | 2100| 201 | Permission denied. | 2101| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2102| 801 | Capability not supported. | 2103| 2501000 | Operation failed.| 2104 2105**示例:** 2106```ts 2107 import { wifiManager } from '@kit.ConnectivityKit'; 2108 2109 let recvPowerNotifyFunc = (result:number) => { 2110 console.info("Receive power state change event: " + result); 2111 } 2112 2113 // Register event 2114 wifiManager.on("wifiStateChange", recvPowerNotifyFunc); 2115 2116 // Unregister event 2117 wifiManager.off("wifiStateChange", recvPowerNotifyFunc); 2118``` 2119 2120 2121## wifiManager.on('wifiConnectionChange')<sup>9+</sup> 2122 2123on(type: 'wifiConnectionChange', callback: Callback<number>): void 2124 2125注册WLAN连接状态改变事件。 2126 2127**需要权限:** ohos.permission.GET_WIFI_INFO 2128 2129**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2130 2131**系统能力:** SystemCapability.Communication.WiFi.STA 2132 2133**参数:** 2134 2135 | **参数名** | **类型** | **必填** | **说明** | 2136 | -------- | -------- | -------- | -------- | 2137 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 2138 | callback | Callback<number> | 是 | 状态改变回调函数。 | 2139 2140**连接状态改变事件的枚举:** 2141 2142| **枚举值** | **说明** | 2143| -------- | -------- | 2144| 0 | 已断开。 | 2145| 1 | 已连接。 | 2146 2147**错误码:** 2148 2149以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2150 2151| **错误码ID** | **错误信息** | 2152| -------- | ---------------------------- | 2153| 201 | Permission denied. | 2154| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2155| 801 | Capability not supported. | 2156| 2501000 | Operation failed.| 2157 2158## wifiManager.off('wifiConnectionChange')<sup>9+</sup> 2159 2160off(type: 'wifiConnectionChange', callback?: Callback<number>): void 2161 2162取消注册WLAN连接状态改变事件。 2163 2164**需要权限:** ohos.permission.GET_WIFI_INFO 2165 2166**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2167 2168**系统能力:** SystemCapability.Communication.WiFi.STA 2169 2170**参数:** 2171 2172 | **参数名** | **类型** | **必填** | **说明** | 2173 | -------- | -------- | -------- | -------- | 2174 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 2175 | callback | Callback<number> | 否 | 连接状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2176 2177**错误码:** 2178 2179以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2180 2181| **错误码ID** | **错误信息** | 2182| -------- | ---------------------------- | 2183| 201 | Permission denied. | 2184| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2185| 801 | Capability not supported. | 2186| 2501000 | Operation failed.| 2187 2188**示例:** 2189```ts 2190 import { wifiManager } from '@kit.ConnectivityKit'; 2191 2192 let recvWifiConnectionChangeFunc = (result:number) => { 2193 console.info("Receive wifi connection change event: " + result); 2194 } 2195 2196 // Register event 2197 wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc); 2198 2199 // Unregister event 2200 wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc); 2201``` 2202 2203## wifiManager.on('wifiScanStateChange')<sup>9+</sup> 2204 2205on(type: 'wifiScanStateChange', callback: Callback<number>): void 2206 2207注册扫描状态改变事件。 2208 2209**需要权限:** ohos.permission.GET_WIFI_INFO 2210 2211**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2212 2213**系统能力:** SystemCapability.Communication.WiFi.STA 2214 2215**参数:** 2216 2217 | **参数名** | **类型** | **必填** | **说明** | 2218 | -------- | -------- | -------- | -------- | 2219 | type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 2220 | callback | Callback<number> | 是 | 状态改变回调函数。 | 2221 2222**扫描状态改变事件的枚举:** 2223 2224| **枚举值** | **说明** | 2225| -------- | -------- | 2226| 0 | 扫描失败。 | 2227| 1 | 扫描成功。 | 2228 2229**错误码:** 2230 2231以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2232 2233| **错误码ID** | **错误信息** | 2234| -------- | ---------------------------- | 2235| 201 | Permission denied. | 2236| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2237| 801 | Capability not supported. | 2238| 2501000 | Operation failed.| 2239 2240## wifiManager.off('wifiScanStateChange')<sup>9+</sup> 2241 2242off(type: 'wifiScanStateChange', callback?: Callback<number>): void 2243 2244取消注册扫描状态改变事件。 2245 2246**需要权限:** ohos.permission.GET_WIFI_INFO 2247 2248**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2249 2250**系统能力:** SystemCapability.Communication.WiFi.STA 2251 2252**参数:** 2253 2254| **参数名** | **类型** | **必填** | **说明** | 2255| -------- | -------- | -------- | -------- | 2256| type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 2257| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2258 2259**错误码:** 2260 2261以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2262 2263| **错误码ID** | **错误信息** | 2264| -------- | ---------------------------- | 2265| 201 | Permission denied. | 2266| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2267| 801 | Capability not supported. | 2268| 2501000 | Operation failed.| 2269 2270**示例:** 2271```ts 2272 import { wifiManager } from '@kit.ConnectivityKit'; 2273 2274 let recvWifiScanStateChangeFunc = (result:number) => { 2275 console.info("Receive Wifi scan state change event: " + result); 2276 } 2277 2278 // Register event 2279 wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc); 2280 2281 // Unregister event 2282 wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc); 2283``` 2284 2285## wifiManager.on('wifiRssiChange')<sup>9+</sup> 2286 2287on(type: 'wifiRssiChange', callback: Callback<number>): void 2288 2289注册RSSI状态改变事件。 2290 2291**需要权限:** ohos.permission.GET_WIFI_INFO 2292 2293**系统能力:** SystemCapability.Communication.WiFi.STA 2294 2295**参数:** 2296 2297 | **参数名** | **类型** | **必填** | **说明** | 2298 | -------- | -------- | -------- | -------- | 2299 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 2300 | callback | Callback<number> | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 | 2301 2302**错误码:** 2303 2304以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2305 2306| **错误码ID** | **错误信息** | 2307| -------- | ---------------------------- | 2308| 201 | Permission denied. | 2309| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2310| 801 | Capability not supported. | 2311| 2501000 | Operation failed.| 2312 2313## wifiManager.off('wifiRssiChange')<sup>9+</sup> 2314 2315off(type: 'wifiRssiChange', callback?: Callback<number>): void 2316 2317取消注册RSSI状态改变事件。 2318 2319**需要权限:** ohos.permission.GET_WIFI_INFO 2320 2321**系统能力:** SystemCapability.Communication.WiFi.STA 2322 2323**参数:** 2324 2325| **参数名** | **类型** | **必填** | **说明** | 2326| -------- | -------- | -------- | -------- | 2327| type | string | 是 | 固定填"wifiRssiChange"字符串。 | 2328| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2329 2330**错误码:** 2331 2332以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2333 2334| **错误码ID** | **错误信息** | 2335| -------- | ---------------------------- | 2336| 201 | Permission denied. | 2337| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2338| 801 | Capability not supported. | 2339| 2501000 | Operation failed.| 2340 2341**示例:** 2342```ts 2343 import { wifiManager } from '@kit.ConnectivityKit'; 2344 2345 let recvWifiRssiChangeFunc = (result:number) => { 2346 console.info("Receive wifi rssi change event: " + result); 2347 } 2348 2349 // Register event 2350 wifiManager.on("wifiRssiChange", recvWifiRssiChangeFunc); 2351 2352 // Unregister event 2353 wifiManager.off("wifiRssiChange", recvWifiRssiChangeFunc); 2354``` 2355 2356## wifiManager.on('hotspotStateChange')<sup>9+</sup> 2357 2358on(type: 'hotspotStateChange', callback: Callback<number>): void 2359 2360注册热点状态改变事件。 2361 2362**需要权限:** ohos.permission.GET_WIFI_INFO 2363 2364**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2365 2366**参数:** 2367 2368| **参数名** | **类型** | **必填** | **说明** | 2369| -------- | -------- | -------- | -------- | 2370| type | string | 是 | 固定填"hotspotStateChange"字符串。 | 2371| callback | Callback<number> | 是 | 状态改变回调函数。 | 2372 2373**热点状态改变事件的枚举:** 2374 2375| **枚举值** | **说明** | 2376| -------- | -------- | 2377| 0 | 未激活。 | 2378| 1 | 已激活。 | 2379| 2 | 激活中。 | 2380| 3 | 去激活中。 | 2381 2382**错误码:** 2383 2384以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2385 2386| **错误码ID** | **错误信息** | 2387| -------- | ---------------------------- | 2388| 201 | Permission denied. | 2389| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2390| 801 | Capability not supported. | 2391| 2601000 | Operation failed. | 2392 2393## wifiManager.off('hotspotStateChange')<sup>9+</sup> 2394 2395off(type: 'hotspotStateChange', callback?: Callback<number>): void 2396 2397取消注册热点状态改变事件。 2398 2399**需要权限:** ohos.permission.GET_WIFI_INFO 2400 2401**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2402 2403**参数:** 2404 2405| **参数名** | **类型** | **必填** | **说明** | 2406| -------- | -------- | -------- | -------- | 2407| type | string | 是 | 固定填"hotspotStateChange"字符串。 | 2408| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2409 2410**错误码:** 2411 2412以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2413 2414| **错误码ID** | **错误信息** | 2415| -------- | ---------------------------- | 2416| 201 | Permission denied. | 2417| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2418| 801 | Capability not supported. | 2419| 2601000 | Operation failed. | 2420 2421**示例:** 2422```ts 2423 import { wifiManager } from '@kit.ConnectivityKit'; 2424 2425 let recvHotspotStateChangeFunc = (result:number) => { 2426 console.info("Receive hotspot state change event: " + result); 2427 } 2428 2429 // Register event 2430 wifiManager.on("hotspotStateChange", recvHotspotStateChangeFunc); 2431 2432 // Unregister event 2433 wifiManager.off("hotspotStateChange", recvHotspotStateChangeFunc); 2434``` 2435 2436 2437## wifiManager.on('p2pStateChange')<sup>9+</sup> 2438 2439on(type: 'p2pStateChange', callback: Callback<number>): void 2440 2441注册P2P开关状态改变事件。 2442 2443**需要权限:** ohos.permission.GET_WIFI_INFO 2444 2445**系统能力:** SystemCapability.Communication.WiFi.P2P 2446 2447**参数:** 2448 2449| **参数名** | **类型** | **必填** | **说明** | 2450| -------- | -------- | -------- | -------- | 2451| type | string | 是 | 固定填"p2pStateChange"字符串。 | 2452| callback | Callback<number> | 是 | 状态改变回调函数。 | 2453 2454** P2P状态改变事件的枚举:** 2455 2456| **枚举值** | **说明** | 2457| -------- | -------- | 2458| 1 | 空闲。 | 2459| 2 | 打开中。 | 2460| 3 | 已打开。 | 2461| 4 | 关闭中。 | 2462| 5 | 已关闭。 | 2463 2464**错误码:** 2465 2466以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2467 2468| **错误码ID** | **错误信息** | 2469| -------- | ---------------------------- | 2470| 201 | Permission denied. | 2471| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2472| 801 | Capability not supported. | 2473| 2801000 | Operation failed. | 2474 2475## wifiManager.off('p2pStateChange')<sup>9+</sup> 2476 2477off(type: 'p2pStateChange', callback?: Callback<number>): void 2478 2479取消注册P2P开关状态改变事件。 2480 2481**需要权限:** ohos.permission.GET_WIFI_INFO 2482 2483**系统能力:** SystemCapability.Communication.WiFi.P2P 2484 2485**参数:** 2486 2487 | **参数名** | **类型** | **必填** | **说明** | 2488 | -------- | -------- | -------- | -------- | 2489 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 2490 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2491 2492**错误码:** 2493 2494以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2495 2496| **错误码ID** | **错误信息** | 2497| -------- | ---------------------------- | 2498| 201 | Permission denied. | 2499| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2500| 801 | Capability not supported. | 2501| 2801000 | Operation failed. | 2502 2503**示例:** 2504```ts 2505 import { wifiManager } from '@kit.ConnectivityKit'; 2506 2507 let recvP2pStateChangeFunc = (result:number) => { 2508 console.info("Receive p2p state change event: " + result); 2509 } 2510 2511 // Register event 2512 wifiManager.on("p2pStateChange", recvP2pStateChangeFunc); 2513 2514 // Unregister event 2515 wifiManager.off("p2pStateChange", recvP2pStateChangeFunc); 2516``` 2517 2518## wifiManager.on('p2pConnectionChange')<sup>9+</sup> 2519 2520on(type: 'p2pConnectionChange', callback: Callback<WifiP2pLinkedInfo>): void 2521 2522注册P2P连接状态改变事件。 2523 2524**需要权限:** ohos.permission.GET_WIFI_INFO 2525 2526**系统能力:** SystemCapability.Communication.WiFi.P2P 2527 2528**参数:** 2529 2530 | **参数名** | **类型** | **必填** | **说明** | 2531 | -------- | -------- | -------- | -------- | 2532 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 2533 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 状态改变回调函数。 | 2534 2535**错误码:** 2536 2537以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2538 2539| **错误码ID** | **错误信息** | 2540| -------- | ---------------------------- | 2541| 201 | Permission denied. | 2542| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2543| 801 | Capability not supported. | 2544| 2801000 | Operation failed. | 2545 2546## wifiManager.off('p2pConnectionChange')<sup>9+</sup> 2547 2548off(type: 'p2pConnectionChange', callback?: Callback<WifiP2pLinkedInfo>): void 2549 2550取消注册P2P连接状态改变事件。 2551 2552**需要权限:** ohos.permission.GET_WIFI_INFO 2553 2554**系统能力:** SystemCapability.Communication.WiFi.P2P 2555 2556**参数:** 2557 2558 | **参数名** | **类型** | **必填** | **说明** | 2559 | -------- | -------- | -------- | -------- | 2560 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 2561 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2562 2563**错误码:** 2564 2565以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2566 2567| **错误码ID** | **错误信息** | 2568| -------- | ---------------------------- | 2569| 201 | Permission denied. | 2570| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2571| 801 | Capability not supported. | 2572| 2801000 | Operation failed. | 2573 2574**示例:** 2575```ts 2576 import { wifiManager } from '@kit.ConnectivityKit'; 2577 2578 let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { 2579 console.info("Receive p2p connection change event: " + result); 2580 } 2581 2582 // Register event 2583 wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 2584 2585 // Unregister event 2586 wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc); 2587``` 2588 2589## wifiManager.on('p2pDeviceChange')<sup>9+</sup> 2590 2591on(type: 'p2pDeviceChange', callback: Callback<WifiP2pDevice>): void 2592 2593注册P2P设备状态改变事件。 2594 2595**需要权限:** 2596 2597API 10起:ohos.permission.GET_WIFI_INFO 2598 2599**系统能力:** SystemCapability.Communication.WiFi.P2P 2600 2601**参数:** 2602 2603 | **参数名** | **类型** | **必填** | **说明** | 2604 | -------- | -------- | -------- | -------- | 2605 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 2606 | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 状态改变回调函数。 | 2607 2608**错误码:** 2609 2610以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2611 2612| **错误码ID** | **错误信息** | 2613| -------- | ---------------------------- | 2614| 201 | Permission denied. | 2615| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2616| 801 | Capability not supported. | 2617| 2801000 | Operation failed. | 2618 2619## wifiManager.off('p2pDeviceChange')<sup>9+</sup> 2620 2621off(type: 'p2pDeviceChange', callback?: Callback<WifiP2pDevice>): void 2622 2623取消注册P2P设备状态改变事件。 2624 2625**系统能力:** SystemCapability.Communication.WiFi.P2P 2626 2627**参数:** 2628 2629 | **参数名** | **类型** | **必填** | **说明** | 2630 | -------- | -------- | -------- | -------- | 2631 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 2632 | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2633 2634**错误码:** 2635 2636以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2637 2638| **错误码ID** | **错误信息** | 2639| -------- | ---------------------------- | 2640| 201<sup>10+</sup> | Permission denied. | 2641| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2642| 801 | Capability not supported. | 2643| 2801000 | Operation failed. | 2644 2645**示例:** 2646```ts 2647 import { wifiManager } from '@kit.ConnectivityKit'; 2648 2649 let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { 2650 console.info("Receive p2p device change event: " + result); 2651 } 2652 2653 // Register event 2654 wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 2655 2656 // Unregister event 2657 wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc); 2658``` 2659 2660## wifiManager.on('p2pPeerDeviceChange')<sup>9+</sup> 2661 2662on(type: 'p2pPeerDeviceChange', callback: Callback<WifiP2pDevice[]>): void 2663 2664注册P2P对端设备状态改变事件。 2665 2666**需要权限:** 2667 2668API 10起:ohos.permission.GET_WIFI_INFO 2669 2670**系统能力:** SystemCapability.Communication.WiFi.P2P 2671 2672**参数:** 2673 2674| **参数名** | **类型** | **必填** | **说明** | 2675| -------- | -------- | -------- | -------- | 2676| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 2677| callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 状态改变回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2678 2679**错误码:** 2680 2681以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2682 2683| **错误码ID** | **错误信息** | 2684| -------- | ---------------------------- | 2685| 201 | Permission denied. | 2686| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2687| 801 | Capability not supported. | 2688| 2801000 | Operation failed. | 2689 2690## wifiManager.off('p2pPeerDeviceChange')<sup>9+</sup> 2691 2692off(type: 'p2pPeerDeviceChange', callback?: Callback<WifiP2pDevice[]>): void 2693 2694取消注册P2P对端设备状态改变事件。 2695 2696**系统能力:** SystemCapability.Communication.WiFi.P2P 2697 2698**参数:** 2699 2700| **参数名** | **类型** | **必填** | **说明** | 2701| -------- | -------- | -------- | -------- | 2702| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 2703| callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限(仅系统应用可申请),则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2704 2705**错误码:** 2706 2707以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2708 2709| **错误码ID** | **错误信息** | 2710| -------- | ---------------------------- | 2711| 201<sup>10+</sup> | Permission denied. | 2712| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2713| 801 | Capability not supported. | 2714| 2801000 | Operation failed. | 2715 2716**示例:** 2717```ts 2718 import { wifiManager } from '@kit.ConnectivityKit'; 2719 2720 let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { 2721 console.info("Receive p2p peer device change event: " + result); 2722 } 2723 2724 // Register event 2725 wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 2726 2727 // Unregister event 2728 wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 2729``` 2730 2731## wifiManager.on('p2pPersistentGroupChange')<sup>9+</sup> 2732 2733on(type: 'p2pPersistentGroupChange', callback: Callback<void>): void 2734 2735注册P2P永久组状态改变事件。 2736 2737**需要权限:** ohos.permission.GET_WIFI_INFO 2738 2739**系统能力:** SystemCapability.Communication.WiFi.P2P 2740 2741**参数:** 2742 2743 | **参数名** | **类型** | **必填** | **说明** | 2744 | -------- | -------- | -------- | -------- | 2745 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 2746 | callback | Callback<void> | 是 | 状态改变回调函数。 | 2747 2748**错误码:** 2749 2750以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2751 2752| **错误码ID** | **错误信息** | 2753| -------- | ---------------------------- | 2754| 201 | Permission denied. | 2755| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2756| 801 | Capability not supported. | 2757| 2801000 | Operation failed. | 2758 2759## wifiManager.off('p2pPersistentGroupChange')<sup>9+</sup> 2760 2761off(type: 'p2pPersistentGroupChange', callback?: Callback<void>): void 2762 2763取消注册P2P永久组状态改变事件。 2764 2765**需要权限:** ohos.permission.GET_WIFI_INFO 2766 2767**系统能力:** SystemCapability.Communication.WiFi.P2P 2768 2769**参数:** 2770 2771| **参数名** | **类型** | **必填** | **说明** | 2772| -------- | -------- | -------- | -------- | 2773| type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 2774| callback | Callback<void> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2775 2776**错误码:** 2777 2778以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2779 2780| **错误码ID** | **错误信息** | 2781| -------- | ---------------------------- | 2782| 201 | Permission denied. | 2783| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2784| 801 | Capability not supported. | 2785| 2801000 | Operation failed. | 2786 2787**示例:** 2788```ts 2789 import { wifiManager } from '@kit.ConnectivityKit'; 2790 2791 let recvP2pPersistentGroupChangeFunc = (result:void) => { 2792 console.info("Receive p2p persistent group change event: " + result); 2793 } 2794 2795 // Register event 2796 wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 2797 2798 // Unregister event 2799 wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 2800``` 2801 2802## wifiManager.on('p2pDiscoveryChange')<sup>9+</sup> 2803 2804on(type: 'p2pDiscoveryChange', callback: Callback<number>): void 2805 2806注册发现设备状态改变事件。 2807 2808**需要权限:** ohos.permission.GET_WIFI_INFO 2809 2810**系统能力:** SystemCapability.Communication.WiFi.P2P 2811 2812**参数:** 2813 2814 | **参数名** | **类型** | **必填** | **说明** | 2815 | -------- | -------- | -------- | -------- | 2816 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 2817 | callback | Callback<number> | 是 | 状态改变回调函数。 | 2818 2819**发现设备状态改变事件的枚举:** 2820 2821| **枚举值** | **说明** | 2822| -------- | -------- | 2823| 0 | 初始状态。 | 2824| 1 | 发现成功。 | 2825 2826**错误码:** 2827 2828以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2829 2830| **错误码ID** | **错误信息** | 2831| -------- | ---------------------------- | 2832| 201 | Permission denied. | 2833| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2834| 801 | Capability not supported. | 2835| 2801000 | Operation failed. | 2836 2837## wifiManager.off('p2pDiscoveryChange')<sup>9+</sup> 2838 2839off(type: 'p2pDiscoveryChange', callback?: Callback<number>): void 2840 2841取消注册发现设备状态改变事件。 2842 2843**需要权限:** ohos.permission.GET_WIFI_INFO 2844 2845**系统能力:** SystemCapability.Communication.WiFi.P2P 2846 2847**参数:** 2848 2849 | **参数名** | **类型** | **必填** | **说明** | 2850 | -------- | -------- | -------- | -------- | 2851 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 2852 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 2853 2854**错误码:** 2855 2856以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。 2857 2858| **错误码ID** | **错误信息** | 2859| -------- | ---------------------------- | 2860| 201 | Permission denied. | 2861| 401 | Invalid parameters. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 2862| 801 | Capability not supported. | 2863| 2801000 | Operation failed. | 2864 2865**示例:** 2866```ts 2867 import { wifiManager } from '@kit.ConnectivityKit'; 2868 2869 let recvP2pDiscoveryChangeFunc = (result:number) => { 2870 console.info("Receive p2p discovery change event: " + result); 2871 } 2872 2873 // Register event 2874 wifiManager.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); 2875 2876 // Unregister event 2877 wifiManager.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); 2878```