1# @ohos.wifiManager (WLAN) 2该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。 3 4> **说明:** 5> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6 7 8## 导入模块 9 10```ts 11import wifiManager from '@ohos.wifiManager'; 12``` 13 14## wifiManager.enableWifi<sup>9+</sup> 15 16enableWifi(): void 17 18使能WLAN,异步接口,需要通过注册"wifiStateChange"事件的回调来监听是否打开成功。 19 20**系统接口:** 此接口为系统接口。 21 22**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION 仅系统应用可用。 23 24**系统能力:** SystemCapability.Communication.WiFi.STA 25 26**错误码:** 27 28以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 29 30| **错误码ID** | **错误信息** | 31 | -------- | -------- | 32| 2501000 | Operation failed.| 33| 2501003 | Failed for wifi is closing.| 34 35**示例:** 36 37```ts 38 import wifiManager from '@ohos.wifiManager'; 39 40 try { 41 wifiManager.enableWifi(); 42 }catch(error){ 43 console.error("failed:" + JSON.stringify(error)); 44 } 45``` 46 47## wifiManager.disableWifi<sup>9+</sup> 48 49disableWifi(): void 50 51去使能WLAN,异步接口,需要通过注册"wifiStateChange"事件的回调来监听是否关闭成功。 52 53**系统接口:** 此接口为系统接口。 54 55**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 56 57**系统能力:** SystemCapability.Communication.WiFi.STA 58 59**错误码:** 60 61以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 62 63| **错误码ID** | **错误信息** | 64 | -------- | -------- | 65| 2501000 | Operation failed.| 66| 2501004 | Failed for wifi is opening.| 67 68**示例:** 69 70```ts 71 import wifiManager from '@ohos.wifiManager'; 72 73 try { 74 wifiManager.disableWifi(); 75 }catch(error){ 76 console.error("failed:" + JSON.stringify(error)); 77 } 78``` 79 80## wifiManager.isWifiActive<sup>9+</sup> 81 82isWifiActive(): boolean 83 84查询WLAN是否已使能。 85 86**需要权限:** ohos.permission.GET_WIFI_INFO 87 88**系统能力:** SystemCapability.Communication.WiFi.STA 89 90**返回值:** 91 92 | **类型** | **说明** | 93 | -------- | -------- | 94 | boolean | true:已使能, false:未使能。 | 95 96**错误码:** 97 98以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 99 100| **错误码ID** | **错误信息** | 101 | -------- | -------- | 102| 2501000 | Operation failed.| 103 104**示例:** 105 106```ts 107 import wifiManager from '@ohos.wifiManager'; 108 109 try { 110 let isWifiActive = wifiManager.isWifiActive(); 111 console.info("isWifiActive:" + isWifiActive); 112 }catch(error){ 113 console.error("failed:" + JSON.stringify(error)); 114 } 115``` 116 117## wifiManager.scan<sup>9+</sup><sup>(deprecated)</sup> 118 119scan(): void 120 121启动WLAN扫描。 122 123> **说明:** 124> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.startScan](#wifimanagerstartscan10)代替。 125 126**需要权限:** ohos.permission.SET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 127 128**系统能力:** SystemCapability.Communication.WiFi.STA 129 130**错误码:** 131 132以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 133 134| **错误码ID** | **错误信息** | 135 | -------- | -------- | 136| 2501000 | Operation failed.| 137 138**示例:** 139 140```ts 141 import wifiManager from '@ohos.wifiManager'; 142 143 try { 144 wifiManager.scan(); 145 }catch(error){ 146 console.error("failed:" + JSON.stringify(error)); 147 } 148``` 149 150## wifiManager.startScan<sup>10+</sup> 151 152startScan(): void 153 154**系统接口:** 此接口为系统接口。 155 156启动WLAN扫描。 157 158**需要权限:** ohos.permission.SET_WIFI_INFO 和ohos.permission.MANAGE_WIFI_CONNECTION 159 160**系统能力:** SystemCapability.Communication.WiFi.STA 161 162**错误码:** 163 164以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 165 166| **错误码ID** | **错误信息** | 167 | -------- | -------- | 168| 2501000 | Operation failed.| 169 170**示例:** 171 172```ts 173 import wifiManager from '@ohos.wifiManager'; 174 175 try { 176 wifiManager.startScan(); 177 }catch(error){ 178 console.error("failed:" + JSON.stringify(error)); 179 } 180``` 181## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> 182 183getScanResults(): Promise<Array<WifiScanInfo>> 184 185获取扫描结果,使用Promise异步回调。 186 187> **说明:** 188> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 189 190**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或(ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 191 192**系统能力:** SystemCapability.Communication.WiFi.STA 193 194**返回值:** 195 196| **类型** | **说明** | 197| -------- | -------- | 198| Promise< Array<[WifiScanInfo](#wifiscaninfo9)> > | Promise对象。返回扫描到的热点列表。 | 199 200**错误码:** 201 202以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 203 204| **错误码ID** | **错误信息** | 205| -------- | -------- | 206| 2501000 | Operation failed.| 207 208## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup> 209 210getScanResults(callback: AsyncCallback<Array<WifiScanInfo>>): void 211 212获取扫描结果,使用callback异步回调。 213 214> **说明:** 215> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 216 217**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 218 219**系统能力:** SystemCapability.Communication.WiFi.STA 220 221**参数:** 222| **参数名** | **类型** | **必填** | **说明** | 223| -------- | -------- | -------- | -------- | 224| callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo9)>> | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 | 225 | Array<[WifiScanInfo](#wifiscaninfo9)> | 返回扫描到的热点列表。 | 226 227**错误码:** 228 229以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 230 231| **错误码ID** | **错误信息** | 232| -------- | -------- | 233| 2501000 | Operation failed.| 234 235**示例:** 236```ts 237 import wifiManager from '@ohos.wifiManager'; 238 239 wifiManager.getScanResults((err, result) => { 240 if (err) { 241 console.error("get scan info error"); 242 return; 243 } 244 245 let len = result.length; 246 console.log("wifi received scan info: " + len); 247 for (let i = 0; i < len; ++i) { 248 console.info("ssid: " + result[i].ssid); 249 console.info("bssid: " + result[i].bssid); 250 console.info("capabilities: " + result[i].capabilities); 251 console.info("securityType: " + result[i].securityType); 252 console.info("rssi: " + result[i].rssi); 253 console.info("band: " + result[i].band); 254 console.info("frequency: " + result[i].frequency); 255 console.info("channelWidth: " + result[i].channelWidth); 256 console.info("timestamp: " + result[i].timestamp); 257 } 258 }); 259 260 wifiManager.getScanResults().then(result => { 261 let len = result.length; 262 console.log("wifi received scan info: " + len); 263 for (let i = 0; i < len; ++i) { 264 console.info("ssid: " + result[i].ssid); 265 console.info("bssid: " + result[i].bssid); 266 console.info("capabilities: " + result[i].capabilities); 267 console.info("securityType: " + result[i].securityType); 268 console.info("rssi: " + result[i].rssi); 269 console.info("band: " + result[i].band); 270 console.info("frequency: " + result[i].frequency); 271 console.info("channelWidth: " + result[i].channelWidth); 272 console.info("timestamp: " + result[i].timestamp); 273 } 274 }).catch(err => { 275 console.error("failed:" + JSON.stringify(err)); 276 }); 277``` 278 279## wifiManager.getScanResultsSync<sup>9+</sup><sup>(deprecated)</sup> 280 281getScanResultsSync(): Array<[WifiScanInfo](#wifiscaninfo9)> 282 283获取扫描结果,使用同步方式返回结果。 284 285> **说明:** 286> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。 287 288**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION)) 289 290**系统能力:** SystemCapability.Communication.WiFi.STA 291 292**返回值:** 293 294| **类型** | **说明** | 295| -------- | -------- | 296| Array<[WifiScanInfo](#wifiscaninfo9)> | 扫描结果数组。 | 297 298**错误码:** 299 300以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 301 302| **错误码ID** | **错误信息** | 303 | -------- | -------- | 304| 2501000 | Operation failed.| 305 306**示例:** 307 308```ts 309 import wifiManager from '@ohos.wifiManager'; 310 311 try { 312 let scanInfoList = wifiManager.getScanResultsSync(); 313 console.info("scanInfoList:" + JSON.stringify(scanInfoList)); 314 let len = scanInfoList.length; 315 console.log("wifi received scan info: " + len); 316 if(len > 0){ 317 for (let i = 0; i < len; ++i) { 318 console.info("ssid: " + scanInfoList[i].ssid); 319 console.info("bssid: " + scanInfoList[i].bssid); 320 console.info("capabilities: " + scanInfoList[i].capabilities); 321 console.info("securityType: " + scanInfoList[i].securityType); 322 console.info("rssi: " + scanInfoList[i].rssi); 323 console.info("band: " + scanInfoList[i].band); 324 console.info("frequency: " + scanInfoList[i].frequency); 325 console.info("channelWidth: " + scanInfoList[i].channelWidth); 326 console.info("timestamp: " + scanInfoList[i].timestamp); 327 } 328 } 329 }catch(error){ 330 console.error("failed:" + JSON.stringify(error)); 331 } 332 333``` 334 335## wifiManager.getScanInfoList<sup>10+</sup> 336 337getScanInfoList(): Array<WifiScanInfo>; 338 339获取扫描结果。 340 341**需要权限:** ohos.permission.GET_WIFI_INFO 342 343**系统能力:** SystemCapability.Communication.WiFi.STA 344 345**返回值:** 346 347| **类型** | **说明** | 348| -------- | -------- | 349| Array<[WifiScanInfo](#wifiscaninfo9)> | 返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的bssid为真实设备地址,否则为随机设备地址。 | 350 351**错误码:** 352 353以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 354 355| **错误码ID** | **错误信息** | 356 | -------- | -------- | 357| 2501000 | Operation failed.| 358 359**示例:** 360 361```ts 362 import wifiManager from '@ohos.wifiManager'; 363 364 try { 365 let scanInfoList = wifiManager.getScanInfoList(); 366 console.info("scanInfoList:" + JSON.stringify(scanInfoList)); 367 let len = scanInfoList.length; 368 console.log("wifi received scan info: " + len); 369 if(len > 0){ 370 for (let i = 0; i < len; ++i) { 371 console.info("ssid: " + scanInfoList[i].ssid); 372 console.info("bssid: " + scanInfoList[i].bssid); 373 console.info("capabilities: " + scanInfoList[i].capabilities); 374 console.info("securityType: " + scanInfoList[i].securityType); 375 console.info("rssi: " + scanInfoList[i].rssi); 376 console.info("band: " + scanInfoList[i].band); 377 console.info("frequency: " + scanInfoList[i].frequency); 378 console.info("channelWidth: " + scanInfoList[i].channelWidth); 379 console.info("timestamp: " + scanInfoList[i].timestamp); 380 } 381 } 382 }catch(error){ 383 console.error("failed:" + JSON.stringify(error)); 384 } 385 386``` 387 388## WifiScanInfo<sup>9+</sup> 389 390WLAN热点信息。 391 392**系统能力:** SystemCapability.Communication.WiFi.STA 393 394 395| **名称** | **类型** | **可读** | **可写** | **说明** | 396| -------- | -------- | -------- | -------- | -------- | 397| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 | 398| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 | 399| bssidType<sup>10+</sup>| DeviceAddressType | 是 | 否 | 热点的BSSID类型。 | 400| capabilities | string | 是 | 否 | 热点能力。 | 401| securityType | [WifiSecurityType](#wifisecuritytype9) | 是 | 否 | WLAN加密类型。 | 402| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 | 403| band | number | 是 | 否 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 | 404| frequency | number | 是 | 否 | WLAN接入点的频率。 | 405| channelWidth | number | 是 | 否 | WLAN接入点的带宽,具体定义参见[WifiChannelWidth](#wifichannelwidth9)。 | 406| centerFrequency0 | number | 是 | 否 | 热点的中心频率。 | 407| centerFrequency1 | number | 是 | 否 | 热点的中心频率。如果热点使用两个不重叠的WLAN信道,则返回两个中心频率,分别用centerFrequency0和centerFrequency1表示。 | 408| infoElems | Array<[WifiInfoElem](#wifiinfoelem9)> | 是 | 否 | 信息元素。 | 409| timestamp | number | 是 | 否 | 时间戳。 | 410 411## DeviceAddressType <sup>10+</sup> 412 413wifi 设备地址(mac/bssid)类型。 414 415**系统能力:** SystemCapability.Communication.WiFi.Core 416 417| **名称** | **值** | **说明** | 418| -------- | -------- | -------- | 419| RANDOM_DEVICE_ADDRESS | 0 | 随机设备地址。 | 420| REAL_DEVICE_ADDRESS | 1 | 真实设备地址。 | 421 422## WifiSecurityType<sup>9+</sup> 423 424表示加密类型的枚举。 425 426**系统能力:** SystemCapability.Communication.WiFi.Core 427 428 429| **名称** | **值** | **说明** | 430| -------- | -------- | -------- | 431| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 | 432| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。候选网络配置不支持该加密类型。 | 433| WIFI_SEC_TYPE_WEP | 2 | Wired Equivalent Privacy (WEP)加密类型。候选网络配置不支持该加密类型。 | 434| WIFI_SEC_TYPE_PSK | 3 | Pre-shared key (PSK)加密类型。 | 435| WIFI_SEC_TYPE_SAE | 4 | Simultaneous Authentication of Equals (SAE)加密类型。 | 436| WIFI_SEC_TYPE_EAP | 5 | EAP加密类型。 | 437| WIFI_SEC_TYPE_EAP_SUITE_B | 6 | Suite-B 192位加密类型。 | 438| WIFI_SEC_TYPE_OWE | 7 | 机会性无线加密类型。 | 439| WIFI_SEC_TYPE_WAPI_CERT | 8 | WAPI-Cert加密类型。 | 440| WIFI_SEC_TYPE_WAPI_PSK | 9 | WAPI-PSK加密类型。 | 441 442 443## WifiBandType<sup>10+</sup> 444 445表示WIFI频段类型的枚举。 446 447**系统能力:** SystemCapability.Communication.WiFi.STA 448 449| **名称** | **值** | **说明** | 450| -------- | -------- | -------- | 451| WIFI_BAND_NONE | 0 | 无效频段类型。 | 452| WIFI_BAND_2G | 1 | 2.4G频段类型。 | 453| WIFI_BAND_5G | 2 | 5G频段类型。 | 454| WIFI_BAND_6G | 3 | 6G频段类型。 | 455| WIFI_BAND_60G | 4 | 60G频段类型。 | 456 457## WifiStandard<sup>10+</sup> 458 459表示WIFI标准的枚举。 460 461**系统能力:** SystemCapability.Communication.WiFi.STA 462 463| **名称** | **值** | **说明** | 464| -------- | -------- | -------- | 465| WIFI_STANDARD_UNDEFINED | 0 | 无效WIFI标准类型。 | 466| WIFI_STANDARD_11A | 1 | 802.11a WiFi标准类型。 | 467| WIFI_STANDARD_11B | 2 | 802.11b WiFi标准类型。 | 468| WIFI_STANDARD_11G | 3 | 802.11g WiFi标准类型。 | 469| WIFI_STANDARD_11N | 4 | 802.11n WiFi标准类型。 | 470| WIFI_STANDARD_11AC | 5 | 802.11ac WiFi标准类型。 | 471| WIFI_STANDARD_11AX | 6 | 802.11ax WiFi标准类型。 | 472| WIFI_STANDARD_11AD | 7 | 802.11ad WiFi标准类型。 | 473 474## WifiInfoElem<sup>9+</sup> 475 476WLAN热点信息。 477 478**系统能力:** SystemCapability.Communication.WiFi.STA 479 480 481| **名称** | **类型** | **可读** | **可写** | **说明** | 482| -------- | -------- | -------- | -------- | -------- | 483| eid | number | 是 | 否 | 元素ID。 | 484| content | Uint8Array | 是 | 否 | 元素内容。 | 485 486 487## WifiChannelWidth<sup>9+</sup> 488 489表示带宽类型的枚举。 490 491**系统能力:** SystemCapability.Communication.WiFi.STA 492 493 494| **名称** | **值** | **说明** | 495| -------- | -------- | -------- | 496| WIDTH_20MHZ | 0 | 20MHZ。 | 497| WIDTH_40MHZ | 1 | 40MHZ。 | 498| WIDTH_80MHZ | 2 | 80MHZ。 | 499| WIDTH_160MHZ | 3 | 160MHZ。 | 500| WIDTH_80MHZ_PLUS | 4 | 80MHZ<sup>+</sup>。 | 501| WIDTH_INVALID | 5 | 无效值 | 502 503## wifiManager.setScanAlwaysAllowed<sup>10+</sup> 504 505setScanAlwaysAllowed(isScanAlwaysAllowed: boolean): void 506 507设置是否始终允许扫描。 508 509**系统接口:** 此接口为系统接口。 510 511**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 512 513**系统能力:** SystemCapability.Communication.WiFi.STA 514 515**参数:** 516 517| **参数名** | **类型** | **必填** | **说明** | 518| -------- | -------- | -------- | -------- | 519| isScanAlwaysAllowed | boolean | 是 | 是否始终允许扫描。 | 520 521**错误码:** 522 523以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 524 525| **错误码ID** | **错误信息** | 526 | -------- | -------- | 527| 2501000 | Operation failed.| 528 529```ts 530 import wifiManager from '@ohos.wifiManager'; 531 532 try { 533 let isScanAlwaysAllowed = true; 534 wifiManager.setScanAlwaysAllowed(isScanAlwaysAllowed); 535 }catch(error){ 536 console.error("failed:" + JSON.stringify(error)); 537 } 538``` 539 540## wifiManager.getScanAlwaysAllowed<sup>10+</sup> 541 542getScanAlwaysAllowed(): boolean 543 544获取是否始终允许扫描。 545 546**系统接口:** 此接口为系统接口。 547 548**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 549 550**系统能力:** SystemCapability.Communication.WiFi.STA 551 552**返回值:** 553 554| **类型** | **说明** | 555| -------- | -------- | 556| boolean| 是否始终允许扫描。 true 表示允许触发扫描,false表示在禁用wifi时不允许触发扫描| 557 558**错误码:** 559 560以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 561 562| **错误码ID** | **错误信息** | 563 | -------- | -------- | 564| 2501000 | Operation failed.| 565 566**示例:** 567 568```ts 569 import wifiManager from '@ohos.wifiManager'; 570 571 try { 572 let isScanAlwaysAllowed = wifiManager.getScanAlwaysAllowed(); 573 console.info("isScanAlwaysAllowed:" + isScanAlwaysAllowed); 574 }catch(error){ 575 console.error("failed:" + JSON.stringify(error)); 576 } 577``` 578 579## wifiManager.addDeviceConfig<sup>9+</sup> 580 581addDeviceConfig(config: WifiDeviceConfig): Promise<number> 582 583添加网络配置,使用Promise异步回调。 584 585**系统接口:** 此接口为系统接口。 586 587**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 588 589**系统能力:** SystemCapability.Communication.WiFi.STA 590 591**参数:** 592 593| **参数名** | **类型** | **必填** | **说明** | 594| -------- | -------- | -------- | -------- | 595| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 596 597**返回值:** 598 599 | **类型** | **说明** | 600 | -------- | -------- | 601 | Promise<number> | Promise对象。返回添加的网络配置ID,如果值为-1表示添加失败。 | 602 603**错误码:** 604 605以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 606 607| **错误码ID** | **错误信息** | 608 | -------- | -------- | 609| 2501000 | Operation failed.| 610 611**示例:** 612 613```ts 614 import wifiManager from '@ohos.wifiManager'; 615 616 try { 617 let config:wifiManager.WifiDeviceConfig = { 618 ssid : "****", 619 preSharedKey : "****", 620 securityType : 0 621 } 622 wifiManager.addDeviceConfig(config).then(result => { 623 console.info("result:" + JSON.stringify(result)); 624 }).catch(err => { 625 console.error("failed:" + JSON.stringify(err)); 626 }); 627 }catch(error){ 628 console.error("failed:" + JSON.stringify(error)); 629 } 630``` 631 632## WifiDeviceConfig<sup>9+</sup> 633 634WLAN配置信息。 635 636**系统能力:** SystemCapability.Communication.WiFi.STA 637 638 639| **名称** | **类型** | **可读** | **可写** | **说明** | 640| -------- | -------- | -------- | -------- | -------- | 641| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 | 642| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 | 643| bssidType<sup>10+</sup> | DeviceAddressType | 是 | 否 | 热点的BSSID类型。 | 644| preSharedKey | string | 是 | 否 | 热点的密钥,最大长度为64字节。 | 645| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 | 646| securityType | [WifiSecurityType](#wifisecuritytype9)| 是 | 否 | 加密类型。 | 647| creatorUid | number | 是 | 否 | 创建用户的ID。 <br /> **系统接口:** 此接口为系统接口。 | 648| disableReason | number | 是 | 否 | 禁用原因。 <br /> **系统接口:** 此接口为系统接口。 | 649| netId | number | 是 | 否 | 分配的网络ID。 <br /> **系统接口:** 此接口为系统接口。 | 650| randomMacType | number | 是 | 否 | MAC地址类型。0 - 随机MAC地址,1 - 设备MAC地址 <br /> **系统接口:** 此接口为系统接口。 | 651| randomMacAddr | string | 是 | 否 | MAC地址。<br /> **系统接口:** 此接口为系统接口。 | 652| ipType | [IpType](#iptype9) | 是 | 否 | IP地址类型。 <br /> **系统接口:** 此接口为系统接口。 | 653| staticIp | [IpConfig](#ipconfig9) | 是 | 否 | 静态IP配置信息。 <br /> **系统接口:** 此接口为系统接口。 | 654| eapConfig<sup>10+</sup> | [WifiEapConfig](#wifieapconfig10) | 是 | 否 | 可扩展身份验证协议配置。 | 655| proxyConfig<sup>10+</sup> | WifiProxyConfig | 是 | 否 | 代理配置。 <br /> **系统接口:** 此接口为系统接口。| 656 657## IpType<sup>9+</sup> 658 659表示IP类型的枚举。 660 661**系统接口:** 此接口为系统接口。 662 663**系统能力:** SystemCapability.Communication.WiFi.STA 664 665 666| 名称 | 值 | 说明 | 667| -------- | -------- | -------- | 668| STATIC | 0 | 静态IP。 | 669| DHCP | 1 | 通过DHCP获取。 | 670| UNKNOWN | 2 | 未指定。 | 671 672 673## IpConfig<sup>9+</sup> 674 675IP配置信息。 676 677**系统接口:** 此接口为系统接口。 678 679**系统能力:** SystemCapability.Communication.WiFi.STA 680 681| **名称** | **类型** | **可读** | **可写** | **说明** | 682| -------- | -------- | -------- | -------- | -------- | 683| ipAddress | number | 是 | 否 | IP地址。 | 684| gateway | number | 是 | 否 | 网关。 | 685| prefixLength | number | 是 | 否 | 掩码。 | 686| dnsServers | number[] | 是 | 否 | DNS服务器。 | 687| domains | Array<string> | 是 | 否 | 域信息。 | 688 689 690## WifiEapConfig<sup>10+</sup> 691 692可扩展身份验证协议配置信息。 693 694**系统能力:** SystemCapability.Communication.WiFi.STA 695 696| **名称** | **类型** | **可读** | **可写** | **说明** | 697| -------- | -------- | -------- | -------- | -------- | 698| eapMethod | [EapMethod](#eapmethod10) | 是 | 否 | EAP认证方式。 | 699| phase2Method | [Phase2Method](#phase2method10) | 是 | 否 | 第二阶段认证方式。 | 700| identity | string | 是 | 否 | 身份信息。 | 701| anonymousIdentity | string | 是 | 否 | 匿名身份。 | 702| password | string | 是 | 否 | 密码。 | 703| caCertAlias | string | 是 | 否 | CA 证书别名。 | 704| caPath | string | 是 | 否 | CA 证书路径。 | 705| clientCertAlias | string | 是 | 否 | 客户端证书别名。 | 706| certEntry | Uint8Array | 是 | 是 | CA 证书内容。 | 707| certPassword | string | 是 | 是 | CA证书密码。 | 708| altSubjectMatch | string | 是 | 否 | 替代主题匹配。 | 709| domainSuffixMatch | string | 是 | 否 | 域后缀匹配。 | 710| realm | string | 是 | 否 | 通行证凭证的领域。 | 711| plmn | string | 是 | 否 | 公共陆地移动网的直通凭证提供商。 | 712| eapSubId | number | 是 | 否 | SIM卡的子ID。 | 713 714 715## EapMethod<sup>10+</sup> 716 717表示EAP认证方式的枚举。 718 719**系统能力:** SystemCapability.Communication.WiFi.STA 720 721| 名称 | 值 | 说明 | 722| -------- | -------- | -------- | 723| EAP_NONE | 0 | 不指定。 | 724| EAP_PEAP | 1 | PEAP类型。 | 725| EAP_TLS | 2 | TLS类型。 | 726| EAP_TTLS | 3 | TTLS类型。 | 727| EAP_PWD | 4 | PWD类型。 | 728| EAP_SIM | 5 | SIM类型。 | 729| EAP_AKA | 6 | AKA类型。 | 730| EAP_AKA_PRIME | 7 | AKA Prime类型。 | 731| EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 | 732 733 734## Phase2Method<sup>10+</sup> 735 736表示第二阶段认证方式的枚举。 737 738**系统能力:** SystemCapability.Communication.WiFi.STA 739 740| 名称 | 值 | 说明 | 741| -------- | -------- | -------- | 742| PHASE2_NONE | 0 | 不指定。 | 743| PHASE2_PAP | 1 | PAP类型。 | 744| PHASE2_MSCHAP | 2 | MSCHAP类型。 | 745| PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 | 746| PHASE2_GTC | 4 | GTC类型。 | 747| PHASE2_SIM | 5 | SIM类型。 | 748| PHASE2_AKA | 6 | AKA类型。 | 749| PHASE2_AKA_PRIME | 7 | AKA Prime类型。 | 750 751 752## WifiProxyConfig <sup>10+</sup> 753 754Wifi 代理配置。 755 756**系统接口:** 此接口为系统接口。 757 758**系统能力:** SystemCapability.Communication.WiFi.STA 759 760| **名称** | **类型** | **可读** | **可写** | **说明** | 761| -------- | -------- | -------- | -------- | -------- | 762| proxyMethod | ProxyMethod | 是 | 否 | 代理方法 | 763| pacWebAddress | string | 是 | 否 | 自动配置代理的PAC web 地址。 | 764| serverHostName | string | 是 | 否 | 手动配置代理的服务器主机名。 | 765| serverPort | string | 是 | 否 | 手动配置代理的服务器端口。 | 766| exclusionObjects | string | 是 | 否 | 手动配置代理的排除对象,对象用“,”分隔。| 767 768## ProxyMethod<sup>10+</sup> 769 770表示WiFi代理方法的枚举。 771 772**系统接口:** 此接口为系统接口。 773 774**系统能力:** SystemCapability.Communication.WiFi.STA 775 776| 名称 | 值 | 说明 | 777| -------- | -------- | -------- | 778| METHOD_NONE | 0 | 不使用代理。 | 779| METHOD_AUTO | 1 | 使用自动配置的代理。 | 780| METHOD_MANUAL | 2 | 使用手动配置的代理。 | 781 782## wifiManager.addDeviceConfig<sup>9+</sup> 783 784addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void 785 786添加网络配置,使用callback异步回调。 787 788**系统接口:** 此接口为系统接口。 789 790**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 791 792**系统能力:** SystemCapability.Communication.WiFi.STA 793 794**参数:** 795 796| **参数名** | **类型** | **必填** | **说明** | 797| -------- | -------- | -------- | -------- | 798| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 799| callback | AsyncCallback<number> | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。当error为非0,表示处理出现错误。 | 800 801**错误码:** 802 803以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 804 805| **错误码ID** | **错误信息** | 806 | -------- | -------- | 807| 2501000 | Operation failed.| 808 809**示例:** 810 811```ts 812 import wifiManager from '@ohos.wifiManager'; 813 814 try { 815 let config:wifiManager.WifiDeviceConfig = { 816 ssid : "****", 817 preSharedKey : "****", 818 securityType : 0 819 } 820 wifiManager.addDeviceConfig(config,(error,result) => { 821 console.info("result:" + JSON.stringify(result)); 822 }); 823 }catch(error){ 824 console.error("failed:" + JSON.stringify(error)); 825 } 826``` 827 828## wifiManager.addCandidateConfig<sup>9+</sup> 829 830addCandidateConfig(config: WifiDeviceConfig): Promise<number> 831 832添加候选网络配置,使用Promise异步回调。 833 834**需要权限:** ohos.permission.SET_WIFI_INFO 835 836**系统能力:** SystemCapability.Communication.WiFi.STA 837 838**参数:** 839 840| **参数名** | **类型** | **必填** | **说明** | 841| -------- | -------- | -------- | -------- | 842| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 843 844**返回值:** 845 846 | **类型** | **说明** | 847 | -------- | -------- | 848 | Promise<number> | Promise对象。表示网络配置ID。 | 849 850**错误码:** 851 852以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 853 854| **错误码ID** | **错误信息** | 855 | -------- | -------- | 856| 2501000 | Operation failed.| 857 858**示例:** 859`````ts 860 import wifiManager from '@ohos.wifiManager'; 861 862 try { 863 let config:wifiManager.WifiDeviceConfig = { 864 ssid : "****", 865 preSharedKey : "****", 866 securityType : 0 867 } 868 wifiManager.addCandidateConfig(config).then(result => { 869 console.info("result:" + JSON.stringify(result)); 870 }).catch(err => { 871 console.error("failed:" + JSON.stringify(err)); 872 }); 873 }catch(error){ 874 console.error("failed:" + JSON.stringify(error)); 875 } 876````` 877 878## wifiManager.addCandidateConfig<sup>9+</sup> 879 880addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void 881 882添加候选网络配置,使用callback异步回调。 883 884**需要权限:** ohos.permission.SET_WIFI_INFO 885 886**系统能力:** SystemCapability.Communication.WiFi.STA 887 888**参数:** 889 890| **参数名** | **类型** | **必填** | **说明** | 891| -------- | -------- | -------- | -------- | 892| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 893| callback | AsyncCallback<number> | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 | 894 895**错误码:** 896 897以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 898 899| **错误码ID** | **错误信息** | 900 | -------- | -------- | 901| 2501000 | Operation failed.| 902 903**示例:** 904`````ts 905 import wifiManager from '@ohos.wifiManager'; 906 907 try { 908 let config:wifiManager.WifiDeviceConfig = { 909 ssid : "****", 910 preSharedKey : "****", 911 securityType : 0 912 } 913 wifiManager.addCandidateConfig(config,(error,result) => { 914 console.info("result:" + JSON.stringify(result)); 915 }); 916 }catch(error){ 917 console.error("failed:" + JSON.stringify(error)); 918 } 919````` 920 921## wifiManager.removeCandidateConfig<sup>9+</sup> 922 923removeCandidateConfig(networkId: number): Promise<void> 924 925移除候选网络配置,使用Promise异步回调。 926 927**需要权限:** ohos.permission.SET_WIFI_INFO 928 929**系统能力:** SystemCapability.Communication.WiFi.STA 930 931**参数:** 932 933 | **参数名** | **类型** | **必填** | **说明** | 934 | -------- | -------- | -------- | -------- | 935 | networkId | number | 是 | 网络配置ID。 | 936 937**返回值:** 938 939 | **类型** | **说明** | 940 | -------- | -------- | 941 | Promise<void> | Promise对象。 | 942 943**错误码:** 944 945以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 946 947| **错误码ID** | **错误信息** | 948 | -------- | -------- | 949| 2501000 | Operation failed.| 950 951**示例:** 952 953```ts 954 import wifiManager from '@ohos.wifiManager'; 955 956 try { 957 let networkId = 0; 958 wifiManager.removeCandidateConfig(networkId).then(result => { 959 console.info("result:" + JSON.stringify(result)); 960 }).catch(err => { 961 console.error("failed:" + JSON.stringify(err)); 962 }); 963 }catch(error){ 964 console.error("failed:" + JSON.stringify(error)); 965 } 966``` 967 968## wifiManager.removeCandidateConfig<sup>9+</sup> 969 970removeCandidateConfig(networkId: number, callback: AsyncCallback<void>): void 971 972移除候选网络配置,使用callback异步回调。 973 974**需要权限:** ohos.permission.SET_WIFI_INFO 975 976**系统能力:** SystemCapability.Communication.WiFi.STA 977 978**参数:** 979 980 | **参数名** | **类型** | **必填** | **说明** | 981 | -------- | -------- | -------- | -------- | 982 | networkId | number | 是 | 网络配置ID。 | 983 | callback | AsyncCallback<void> | 是 | 回调函数。当操作成功时,err为0。如果error为非0,表示处理出现错误。 | 984 985**错误码:** 986 987以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 988 989| **错误码ID** | **错误信息** | 990 | -------- | -------- | 991| 2501000 | Operation failed.| 992 993**示例:** 994```ts 995 import wifiManager from '@ohos.wifiManager'; 996 997 try { 998 let networkId = 0; 999 wifiManager.removeCandidateConfig(networkId,(error,result) => { 1000 console.info("result:" + JSON.stringify(result)); 1001 }); 1002 }catch(error){ 1003 console.error("failed:" + JSON.stringify(error)); 1004 } 1005``` 1006 1007## wifiManager.getCandidateConfigs<sup>9+</sup> 1008 1009getCandidateConfigs(): Array<WifiDeviceConfig> 1010 1011获取候选网络配置。 1012 1013**需要权限:** 1014 1015API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 1016 1017API 10起:ohos.permission.GET_WIFI_INFO 1018 1019**系统能力:** SystemCapability.Communication.WiFi.STA 1020 1021**返回值:** 1022 1023 | **类型** | **说明** | 1024 | -------- | -------- | 1025 | Array<[WifiDeviceConfig](#wifideviceconfig9)> | 候选网络配置数组。 | 1026 1027**错误码:** 1028 1029以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1030 1031| **错误码ID** | **错误信息** | 1032 | -------- | -------- | 1033| 2501000 | Operation failed.| 1034 1035**示例:** 1036 1037`````ts 1038 import wifiManager from '@ohos.wifiManager'; 1039 1040 try { 1041 let configs = wifiManager.getCandidateConfigs(); 1042 console.info("configs:" + JSON.stringify(configs)); 1043 let len = configs.length; 1044 console.log("result len: " + len); 1045 if(len > 0){ 1046 for (let i = 0; i < len; ++i) { 1047 console.info("ssid: " + configs[i].ssid); 1048 console.info("bssid: " + configs[i].bssid); 1049 } 1050 } 1051 }catch(error){ 1052 console.error("failed:" + JSON.stringify(error)); 1053 } 1054 1055````` 1056 1057## wifiManager.connectToCandidateConfig<sup>9+</sup> 1058 1059connectToCandidateConfig(networkId: number): void 1060 1061应用使用该接口连接到自己添加的候选网络(如果当前已经连接到热点,需要先断开连接)。 1062 1063**需要权限:** ohos.permission.SET_WIFI_INFO 1064 1065**系统能力:** SystemCapability.Communication.WiFi.STA 1066 1067**参数:** 1068 1069 | **参数名** | **类型** | **必填** | **说明** | 1070 | -------- | -------- | -------- | -------- | 1071 | networkId | number | 是 | 候选网络配置的ID。 | 1072 1073**错误码:** 1074 1075以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1076 1077| **错误码ID** | **错误信息** | 1078 | -------- | -------- | 1079| 2501000 | Operation failed.| 1080| 2501001 | Wifi is closed.| 1081 1082**示例:** 1083```ts 1084 import wifiManager from '@ohos.wifiManager'; 1085 1086 try { 1087 let networkId = 0; // 实际的候选网络ID,在添加候选网络时生成,取自WifiDeviceConfig.netId 1088 wifiManager.connectToCandidateConfig(networkId); 1089 }catch(error){ 1090 console.error("failed:" + JSON.stringify(error)); 1091 } 1092 1093``` 1094 1095## wifiManager.connectToNetwork<sup>9+</sup> 1096 1097connectToNetwork(networkId: number): void 1098 1099连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)。 1100 1101**系统接口:** 此接口为系统接口。 1102 1103**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1104 1105**系统能力:** SystemCapability.Communication.WiFi.STA 1106 1107**参数:** 1108 1109 | **参数名** | **类型** | **必填** | **说明** | 1110 | -------- | -------- | -------- | -------- | 1111 | networkId | number | 是 | 待连接的网络配置ID。 | 1112 1113**错误码:** 1114 1115以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1116 1117| **错误码ID** | **错误信息** | 1118 | -------- | -------- | 1119| 2501000 | Operation failed.| 1120| 2501001 | Wifi is closed.| 1121 1122**示例:** 1123 1124```ts 1125 import wifiManager from '@ohos.wifiManager'; 1126 1127 try { 1128 let networkId = 0; 1129 wifiManager.connectToNetwork(networkId); 1130 }catch(error){ 1131 console.error("failed:" + JSON.stringify(error)); 1132 } 1133``` 1134 1135## wifiManager.connectToDevice<sup>9+</sup> 1136 1137connectToDevice(config: WifiDeviceConfig): void 1138 1139连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)。 1140 1141**系统接口:** 此接口为系统接口。 1142 1143**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1144 1145**系统能力:** 1146 SystemCapability.Communication.WiFi.STA 1147 1148**参数:** 1149 1150| **参数名** | **类型** | **必填** | **说明** | 1151| -------- | -------- | -------- | -------- | 1152| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 | 1153 1154**错误码:** 1155 1156以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1157 1158| **错误码ID** | **错误信息** | 1159 | -------- | -------- | 1160| 2501000 | Operation failed.| 1161| 2501001 | Wifi is closed.| 1162 1163**示例:** 1164```ts 1165 import wifiManager from '@ohos.wifiManager'; 1166 1167 try { 1168 let config:wifiManager.WifiDeviceConfig = { 1169 ssid : "****", 1170 preSharedKey : "****", 1171 securityType : 3 1172 } 1173 wifiManager.connectToDevice(config); 1174 1175 }catch(error){ 1176 console.error("failed:" + JSON.stringify(error)); 1177 } 1178``` 1179 1180## wifiManager.disconnect<sup>9+</sup> 1181 1182disconnect(): void 1183 1184断开连接的网络。 1185 1186**系统接口:** 此接口为系统接口。 1187 1188**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1189 1190**系统能力:** 1191 SystemCapability.Communication.WiFi.STA 1192 1193**错误码:** 1194 1195以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1196 1197| **错误码ID** | **错误信息** | 1198 | -------- | -------- | 1199| 2501000 | Operation failed.| 1200 1201**示例:** 1202```ts 1203 import wifiManager from '@ohos.wifiManager'; 1204 1205 try { 1206 wifiManager.disconnect(); 1207 }catch(error){ 1208 console.error("failed:" + JSON.stringify(error)); 1209 } 1210``` 1211 1212## wifiManager.getSignalLevel<sup>9+</sup> 1213 1214getSignalLevel(rssi: number, band: number): number 1215 1216查询WLAN信号强度。 1217 1218**需要权限:** ohos.permission.GET_WIFI_INFO 1219 1220**系统能力:** SystemCapability.Communication.WiFi.STA 1221 1222**参数:** 1223 1224 | **参数名** | **类型** | **必填** | **说明** | 1225 | -------- | -------- | -------- | -------- | 1226 | rssi | number | 是 | 热点的信号强度(dBm)。 | 1227 | band | number | 是 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 | 1228 1229**返回值:** 1230 1231 | **类型** | **说明** | 1232 | -------- | -------- | 1233 | number | 信号强度,取值范围为[0, 4]。 | 1234 1235**错误码:** 1236 1237以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1238 1239| **错误码ID** | **错误信息** | 1240 | -------- | -------- | 1241| 2501000 | Operation failed.| 1242 1243**示例:** 1244```ts 1245 import wifiManager from '@ohos.wifiManager'; 1246 1247 try { 1248 let rssi = 0; 1249 let band = 0; 1250 let level = wifiManager.getSignalLevel(rssi,band); 1251 console.info("level:" + JSON.stringify(level)); 1252 }catch(error){ 1253 console.error("failed:" + JSON.stringify(error)); 1254 } 1255 1256``` 1257 1258## wifiManager.getLinkedInfo<sup>9+</sup> 1259 1260getLinkedInfo(): Promise<WifiLinkedInfo> 1261 1262获取WLAN连接信息,使用Promise异步回调。 1263 1264**需要权限:** ohos.permission.GET_WIFI_INFO 。 1265 1266当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。 1267 1268**系统能力:** SystemCapability.Communication.WiFi.STA 1269 1270**返回值:** 1271 1272 | 类型 | 说明 | 1273 | -------- | -------- | 1274 | Promise<[WifiLinkedInfo](#wifilinkedinfo9)> | Promise对象。表示WLAN连接信息。 | 1275 1276**错误码:** 1277 1278以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1279 1280| **错误码ID** | **错误信息** | 1281 | -------- | -------- | 1282| 2501000 | Operation failed.| 1283| 2501001 | Wifi is closed.| 1284 1285## wifiManager.getLinkedInfo<sup>9+</sup> 1286 1287getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void 1288 1289获取WLAN连接信息,使用callback异步回调。 1290 1291**需要权限:** ohos.permission.GET_WIFI_INFO 。 1292 1293当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。 1294 1295**系统能力:** SystemCapability.Communication.WiFi.STA 1296 1297**参数:** 1298 1299 | 参数名 | 类型 | 必填 | 说明 | 1300 | -------- | -------- | -------- | -------- | 1301 | callback | AsyncCallback<[WifiLinkedInfo](#wifilinkedinfo9)> | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果err为非0,表示处理出现错误。 | 1302 1303**错误码:** 1304 1305以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1306 1307| **错误码ID** | **错误信息** | 1308 | -------- | -------- | 1309| 2501000 | Operation failed.| 1310| 2501001 | Wifi is closed.| 1311 1312**示例:** 1313```ts 1314 import wifiManager from '@ohos.wifiManager'; 1315 1316 wifiManager.getLinkedInfo((err, data) => { 1317 if (err) { 1318 console.error("get linked info error"); 1319 return; 1320 } 1321 console.info("get wifi linked info: " + JSON.stringify(data)); 1322 }); 1323 1324 wifiManager.getLinkedInfo().then(data => { 1325 console.info("get wifi linked info: " + JSON.stringify(data)); 1326 }).catch((error:number) => { 1327 console.info("get linked info error"); 1328 }); 1329``` 1330 1331 1332## WifiLinkedInfo<sup>9+</sup> 1333 1334提供WLAN连接的相关信息。 1335 1336**系统能力:** SystemCapability.Communication.WiFi.STA 1337 1338| 名称 | 类型 | 可读 | 可写 | 说明 | 1339| -------- | -------- | -------- | -------- | -------- | 1340| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 | 1341| bssid | string | 是 | 否 | 热点的BSSID。 | 1342| networkId | number | 是 | 否 | 网络配置ID。 <br /> **系统接口:** 此接口为系统接口。 | 1343| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 | 1344| band | number | 是 | 否 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 | 1345| linkSpeed | number | 是 | 否 | WLAN接入点的上行速度。 | 1346| rxLinkSpeed<sup>10+</sup> | number | 是 | 否 | WLAN接入点的下行速度。 | 1347| maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大上行速率。 | 1348| maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大下行速率。 | 1349| frequency | number | 是 | 否 | WLAN接入点的频率。 | 1350| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 | 1351| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 | 1352| chload | number | 是 | 否 | 连接负载,值越大表示负载约高。 <br /> **系统接口:** 此接口为系统接口。 | 1353| snr | number | 是 | 否 | 信噪比。 <br /> **系统接口:** 此接口为系统接口。 | 1354| macType | number | 是 | 否 | MAC地址类型。0 - 随机MAC地址,1 - 设备MAC地址。 | 1355| macAddress | string | 是 | 否 | 设备的MAC地址。 | 1356| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 | 1357| suppState | [SuppState](#suppstate9) | 是 | 否 | 请求状态。 <br /> **系统接口:** 此接口为系统接口。 | 1358| connState | [ConnState](#connstate9) | 是 | 否 | WLAN连接状态。 | 1359| channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth9) | 是 | 否 | 当前连接热点的信道带宽。 | 1360| wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard10) | 是 | 否 | 当前连接热点的WiFi标准。 | 1361 1362## ConnState<sup>9+</sup> 1363 1364表示WLAN连接状态的枚举。 1365 1366**系统能力:** SystemCapability.Communication.WiFi.STA 1367 1368| 名称 | 值 | 说明 | 1369| -------- | -------- | -------- | 1370| SCANNING | 0 | 设备正在搜索可用的AP。 | 1371| CONNECTING | 1 | 正在建立WLAN连接。 | 1372| AUTHENTICATING | 2 | WLAN连接正在认证中。 | 1373| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 | 1374| CONNECTED | 4 | WLAN连接已建立。 | 1375| DISCONNECTING | 5 | WLAN连接正在断开。 | 1376| DISCONNECTED | 6 | WLAN连接已断开。 | 1377| UNKNOWN | 7 | WLAN连接建立失败。 | 1378 1379 1380## SuppState<sup>9+</sup> 1381 1382表示请求状态的枚举。 1383 1384**系统接口:** 此接口为系统接口。 1385 1386**系统能力:** SystemCapability.Communication.WiFi.STA 1387 1388| 名称 | 值 | 说明 | 1389| -------- | -------- | -------- | 1390| DISCONNECTED | 0 | 已断开。 | 1391| INTERFACE_DISABLED | 1 | 接口禁用。 | 1392| INACTIVE | 2 | 未激活。 | 1393| SCANNING | 3 | 扫描中。 | 1394| AUTHENTICATING | 4 | 认证中。 | 1395| ASSOCIATING | 5 | 关联中。 | 1396| ASSOCIATED | 6 | 已关联。 | 1397| FOUR_WAY_HANDSHAKE | 7 | 四次握手。 | 1398| GROUP_HANDSHAKE | 8 | 组握手。 | 1399| COMPLETED | 9 | 所有认证已完成。 | 1400| UNINITIALIZED | 10 | 连接建立失败。 | 1401| INVALID | 11 | 无效值。 | 1402 1403## wifiManager.isConnected<sup>9+</sup> 1404 1405isConnected(): boolean 1406 1407查询WLAN是否已连接。 1408 1409**需要权限:** ohos.permission.GET_WIFI_INFO 1410 1411**系统能力:** SystemCapability.Communication.WiFi.STA 1412 1413**返回值:** 1414 1415 | **类型** | **说明** | 1416 | -------- | -------- | 1417 | boolean | true:已连接, false:未连接。 | 1418 1419**错误码:** 1420 1421以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1422 1423| **错误码ID** | **错误信息** | 1424 | -------- | -------- | 1425| 2501000 | Operation failed.| 1426 1427**示例:** 1428```ts 1429 import wifiManager from '@ohos.wifiManager'; 1430 1431 try { 1432 let ret = wifiManager.isConnected(); 1433 console.info("isConnected:" + ret); 1434 }catch(error){ 1435 console.error("failed:" + JSON.stringify(error)); 1436 } 1437 1438``` 1439 1440## wifiManager.getSupportedFeatures<sup>9+</sup> 1441 1442getSupportedFeatures(): number 1443 1444查询设备支持的特性。 1445 1446**系统接口:** 此接口为系统接口。 1447 1448**需要权限:** ohos.permission.GET_WIFI_INFO 1449 1450**系统能力:** SystemCapability.Communication.WiFi.Core 1451 1452**返回值:** 1453 1454 | **类型** | **说明** | 1455 | -------- | -------- | 1456 | number | 支持的特性值。 | 1457 1458**特性ID值枚举:** 1459 1460| 枚举值 | 说明 | 1461| -------- | -------- | 1462| 0x0001 | 基础结构模式特性。 | 1463| 0x0002 | 5 GHz带宽特性。 | 1464| 0x0004 | GAS/ANQP特性。 | 1465| 0x0008 | Wifi-Direct特性。 | 1466| 0x0010 | Soft AP特性。 | 1467| 0x0040 | Wi-Fi AWare组网特性。 | 1468| 0x8000 | AP STA共存特性。 | 1469| 0x8000000 | WPA3-Personal SAE特性。 | 1470| 0x10000000 | WPA3-Enterprise Suite-B | 1471| 0x20000000 | 增强开放特性。 | 1472 1473**错误码:** 1474 1475以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1476 1477| **错误码ID** | **错误信息** | 1478 | -------- | -------- | 1479| 2401000 | Operation failed.| 1480 1481**示例:** 1482```ts 1483 import wifiManager from '@ohos.wifiManager'; 1484 1485 try { 1486 let ret = wifiManager.getSupportedFeatures(); 1487 console.info("supportedFeatures:" + ret); 1488 }catch(error){ 1489 console.error("failed:" + JSON.stringify(error)); 1490 } 1491 1492``` 1493 1494## wifiManager.isFeatureSupported<sup>9+</sup> 1495 1496isFeatureSupported(featureId: number): boolean 1497 1498判断设备是否支持相关WLAN特性。 1499 1500**需要权限:** ohos.permission.GET_WIFI_INFO 1501 1502**系统能力:** SystemCapability.Communication.WiFi.Core 1503 1504**参数:** 1505 1506 | **参数名** | **类型** | 必填 | **说明** | 1507 | -------- | -------- | -------- | -------- | 1508 | featureId | number | 是 | 特性ID值。 | 1509 1510**特性ID值枚举:** 1511 1512| 枚举值 | 说明 | 1513| -------- | -------- | 1514| 0x0001 | 基础结构模式特性。 | 1515| 0x0002 | 5 GHz带宽特性。 | 1516| 0x0004 | GAS/ANQP特性。 | 1517| 0x0008 | Wifi-Direct特性。 | 1518| 0x0010 | Soft AP特性。 | 1519| 0x0040 | Wi-Fi AWare组网特性。 | 1520| 0x8000 | AP STA共存特性。 | 1521| 0x8000000 | WPA3-Personal SAE特性。 | 1522| 0x10000000 | WPA3-Enterprise Suite-B | 1523| 0x20000000 | 增强开放特性。 | 1524 1525**返回值:** 1526 1527 | **类型** | **说明** | 1528 | -------- | -------- | 1529 | boolean | true:支持, false:不支持。 | 1530 1531**错误码:** 1532 1533以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1534 1535| **错误码ID** | **错误信息** | 1536 | -------- | -------- | 1537| 2401000 | Operation failed.| 1538 1539**示例:** 1540```ts 1541 import wifiManager from '@ohos.wifiManager'; 1542 1543 try { 1544 let featureId = 0; 1545 let ret = wifiManager.isFeatureSupported(featureId); 1546 console.info("isFeatureSupported:" + ret); 1547 }catch(error){ 1548 console.error("failed:" + JSON.stringify(error)); 1549 } 1550 1551``` 1552 1553## wifiManager.getDeviceMacAddress<sup>9+</sup> 1554 1555getDeviceMacAddress(): string[] 1556 1557获取设备的MAC地址。 1558 1559**系统接口:** 此接口为系统接口。 1560 1561**需要权限:** ohos.permission.GET_WIFI_LOCAL_MAC 和 ohos.permission.GET_WIFI_INFO,仅系统应用可用。 1562 1563**系统能力:** SystemCapability.Communication.WiFi.STA 1564 1565**返回值:** 1566 1567 | **类型** | **说明** | 1568 | -------- | -------- | 1569 | string[] | MAC地址。 | 1570 1571**错误码:** 1572 1573以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1574 1575| **错误码ID** | **错误信息** | 1576 | -------- | -------- | 1577| 2501000 | Operation failed.| 1578| 2501001 | wifi is closed.| 1579 1580**示例:** 1581```ts 1582 import wifiManager from '@ohos.wifiManager'; 1583 1584 try { 1585 let ret = wifiManager.getDeviceMacAddress(); 1586 console.info("deviceMacAddress:" + JSON.stringify(ret)); 1587 }catch(error){ 1588 console.error("failed:" + JSON.stringify(error)); 1589 } 1590 1591``` 1592 1593## wifiManager.getIpInfo<sup>9+</sup> 1594 1595getIpInfo(): IpInfo 1596 1597获取IP信息。 1598 1599**需要权限:** ohos.permission.GET_WIFI_INFO 1600 1601**系统能力:** SystemCapability.Communication.WiFi.STA 1602 1603**返回值:** 1604 1605 | **类型** | **说明** | 1606 | -------- | -------- | 1607 | [IpInfo](#ipinfo9) | IP信息。 | 1608 1609**错误码:** 1610 1611以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1612 1613| **错误码ID** | **错误信息** | 1614 | -------- | -------- | 1615| 2501000 | Operation failed.| 1616 1617**示例:** 1618```ts 1619 import wifiManager from '@ohos.wifiManager'; 1620 1621 try { 1622 let info = wifiManager.getIpInfo(); 1623 console.info("info:" + JSON.stringify(info)); 1624 }catch(error){ 1625 console.error("failed:" + JSON.stringify(error)); 1626 } 1627``` 1628 1629## IpInfo<sup>9+</sup> 1630 1631IP信息。 1632 1633**系统能力:** SystemCapability.Communication.WiFi.STA 1634 1635| **名称** | **类型** | **可读** | **可写** | **说明** | 1636| -------- | -------- | -------- | -------- | -------- | 1637| ipAddress | number | 是 | 否 | IP地址。 | 1638| gateway | number | 是 | 否 | 网关。 | 1639| netmask | number | 是 | 否 | 掩码。 | 1640| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 | 1641| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 | 1642| serverIp | number | 是 | 否 | DHCP服务端IP地址。 | 1643| leaseDuration | number | 是 | 否 | IP地址租用时长,单位:秒。 | 1644 1645 1646## wifiManager.getIpv6Info<sup>10+</sup> 1647 1648getIpv6Info(): Ipv6Info 1649 1650获取IPV6信息。 1651 1652**需要权限:** ohos.permission.GET_WIFI_INFO 1653 1654**系统能力:** SystemCapability.Communication.WiFi.STA 1655 1656**返回值:** 1657 1658| **类型** | **说明** | 1659| -------- | -------- | 1660| Ipv6Info | Ipv6信息。 | 1661 1662**错误码:** 1663 1664以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1665 1666| **错误码ID** | **错误信息** | 1667 | -------- | -------- | 1668| 2501000 | Operation failed.| 1669 1670**示例:** 1671```ts 1672 import wifiManager from '@ohos.wifiManager'; 1673 1674 try { 1675 let info = wifiManager.getIpv6Info(); 1676 console.info("info:" + JSON.stringify(info)); 1677 }catch(error){ 1678 console.error("failed:" + JSON.stringify(error)); 1679 } 1680``` 1681## Ipv6Info <sup>10+</sup> 1682 1683Ipv6信息。 1684 1685**系统能力:** SystemCapability.Communication.WiFi.STA 1686 1687| **名称** | **类型** | **可读** | **可写** | **说明** | 1688| -------- | -------- | -------- | -------- | -------- | 1689| linkIpv6Address | string | 是 | 否 | 链路Ipv6地址。 | 1690| globalIpv6Address | string | 是 | 否 | 全局Ipv6地址。 | 1691| randomGlobalIpv6Address | string | 是 | 否 | 随机全局Ipv6地址。 | 1692| gateway | string | 是 | 否 | 网关。 | 1693| netmask | string | 是 | 否 | 网络掩码。 | 1694| primaryDNS | string | 是 | 否 | 主DNS服务器Ipv6地址。 | 1695| secondDNS | string | 是 | 否 | 备DNS服务器Ipv6地址。 | 1696 1697 1698## wifiManager.getCountryCode<sup>9+</sup> 1699 1700getCountryCode(): string 1701 1702获取国家码信息。 1703 1704**需要权限:** ohos.permission.GET_WIFI_INFO 1705 1706**系统能力:** SystemCapability.Communication.WiFi.Core 1707 1708**返回值:** 1709 1710 | **类型** | **说明** | 1711 | -------- | -------- | 1712 | string | 国家码。 | 1713 1714**错误码:** 1715 1716以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1717 1718| **错误码ID** | **错误信息** | 1719 | -------- | -------- | 1720| 2401000 | Operation failed.| 1721 1722**示例:** 1723```ts 1724 import wifiManager from '@ohos.wifiManager'; 1725 1726 try { 1727 let code = wifiManager.getCountryCode(); 1728 console.info("code:" + code); 1729 }catch(error){ 1730 console.error("failed:" + JSON.stringify(error)); 1731 } 1732``` 1733 1734## wifiManager.reassociate<sup>9+</sup> 1735 1736reassociate(): void 1737 1738重新关联网络。 1739 1740**系统接口:** 此接口为系统接口。 1741 1742**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1743 1744**系统能力:** SystemCapability.Communication.WiFi.STA 1745 1746**错误码:** 1747 1748以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1749 1750| **错误码ID** | **错误信息** | 1751 | -------- | -------- | 1752| 2501000 | Operation failed.| 1753| 2501001 | Wifi is closed.| 1754 1755**示例:** 1756```ts 1757 import wifiManager from '@ohos.wifiManager'; 1758 1759 try { 1760 wifiManager.reassociate(); 1761 }catch(error){ 1762 console.error("failed:" + JSON.stringify(error)); 1763 } 1764``` 1765 1766## wifiManager.reconnect<sup>9+</sup> 1767 1768reconnect(): void 1769 1770重新连接网络。 1771 1772**系统接口:** 此接口为系统接口。 1773 1774**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1775 1776**系统能力:** SystemCapability.Communication.WiFi.STA 1777 1778**错误码:** 1779 1780以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1781 1782| **错误码ID** | **错误信息** | 1783 | -------- | -------- | 1784| 2501000 | Operation failed.| 1785| 2501001 | Wifi is closed.| 1786 1787**示例:** 1788```ts 1789 import wifiManager from '@ohos.wifiManager'; 1790 1791 try { 1792 wifiManager.reconnect(); 1793 }catch(error){ 1794 console.error("failed:" + JSON.stringify(error)); 1795 } 1796``` 1797 1798## wifiManager.getDeviceConfigs<sup>9+</sup> 1799 1800getDeviceConfigs(): Array<[WifiDeviceConfig](#wifideviceconfig9)> 1801 1802获取网络配置。 1803 1804**系统接口:** 此接口为系统接口。 1805 1806**需要权限:** 1807 1808API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION、ohos.permission.APPROXIMATELY_LOCATION 和 ohos.permission.GET_WIFI_CONFIG 1809 1810API 10起:ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 1811 1812**系统能力:** SystemCapability.Communication.WiFi.STA 1813 1814**返回值:** 1815 1816 | **类型** | **说明** | 1817 | -------- | -------- | 1818 | Array<[WifiDeviceConfig](#wifideviceconfig9)> | 网络配置信息的数组。 | 1819 1820**错误码:** 1821 1822以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1823 1824| **错误码ID** | **错误信息** | 1825 | -------- | -------- | 1826| 2501000 | Operation failed.| 1827 1828**示例:** 1829```ts 1830 import wifiManager from '@ohos.wifiManager'; 1831 1832 try { 1833 let configs = wifiManager.getDeviceConfigs(); 1834 console.info("configs:" + JSON.stringify(configs)); 1835 }catch(error){ 1836 console.error("failed:" + JSON.stringify(error)); 1837 } 1838``` 1839 1840## wifiManager.updateNetwork<sup>9+</sup> 1841 1842updateNetwork(config: WifiDeviceConfig): number 1843 1844更新网络配置。 1845 1846**系统接口:** 此接口为系统接口。 1847 1848**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 1849 1850**系统能力:** SystemCapability.Communication.WiFi.STA 1851 1852**参数:** 1853 1854 | **参数名** | **类型** | **必填** | **说明** | 1855 | -------- | -------- | -------- | -------- | 1856 | config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。 | 1857 1858**返回值:** 1859 1860 | **类型** | **说明** | 1861 | -------- | -------- | 1862 | number | 返回更新的网络配置ID,如果值为-1表示更新失败。 | 1863 1864**错误码:** 1865 1866以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1867 1868| **错误码ID** | **错误信息** | 1869 | -------- | -------- | 1870| 2501000 | Operation failed.| 1871 1872**示例:** 1873```ts 1874 import wifiManager from '@ohos.wifiManager'; 1875 1876 try { 1877 let config:wifiManager.WifiDeviceConfig = { 1878 ssid : "****", 1879 preSharedKey : "****", 1880 securityType : 3 1881 } 1882 let ret = wifiManager.updateNetwork(config); 1883 console.info("ret:" + ret); 1884 }catch(error){ 1885 console.error("failed:" + JSON.stringify(error)); 1886 } 1887``` 1888 1889## wifiManager.disableNetwork<sup>9+</sup> 1890 1891disableNetwork(netId: number): void 1892 1893去使能网络配置。 1894 1895**系统接口:** 此接口为系统接口。 1896 1897**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1898 1899**系统能力:** SystemCapability.Communication.WiFi.STA 1900 1901**参数:** 1902 1903 | **参数名** | **类型** | **必填** | **说明** | 1904 | -------- | -------- | -------- | -------- | 1905 | netId | number | 是 | 网络配置ID。 | 1906 1907**错误码:** 1908 1909以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1910 1911| **错误码ID** | **错误信息** | 1912 | -------- | -------- | 1913| 2501000 | Operation failed.| 1914 1915**示例:** 1916```ts 1917 import wifiManager from '@ohos.wifiManager'; 1918 1919 try { 1920 let netId = 0; 1921 wifiManager.disableNetwork(netId); 1922 }catch(error){ 1923 console.error("failed:" + JSON.stringify(error)); 1924 } 1925``` 1926 1927## wifiManager.removeAllNetwork<sup>9+</sup> 1928 1929removeAllNetwork(): void 1930 1931移除所有网络配置。 1932 1933**系统接口:** 此接口为系统接口。 1934 1935**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1936 1937**系统能力:** SystemCapability.Communication.WiFi.STA 1938 1939**错误码:** 1940 1941以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1942 1943| **错误码ID** | **错误信息** | 1944 | -------- | -------- | 1945| 2501000 | Operation failed.| 1946 1947**示例:** 1948```ts 1949 import wifiManager from '@ohos.wifiManager'; 1950 1951 try { 1952 wifiManager.removeAllNetwork(); 1953 }catch(error){ 1954 console.error("failed:" + JSON.stringify(error)); 1955 } 1956``` 1957 1958## wifiManager.removeDevice<sup>9+</sup> 1959 1960removeDevice(id: number): void 1961 1962移除指定的网络配置。 1963 1964**系统接口:** 此接口为系统接口。 1965 1966**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1967 1968**系统能力:** SystemCapability.Communication.WiFi.STA 1969 1970**参数:** 1971 1972 | **参数名** | **类型** | **必填** | **说明** | 1973 | -------- | -------- | -------- | -------- | 1974 | id | number | 是 | 网络配置ID。 | 1975 1976**错误码:** 1977 1978以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 1979 1980| **错误码ID** | **错误信息** | 1981 | -------- | -------- | 1982| 2501000 | Operation failed.| 1983 1984**示例:** 1985```ts 1986 import wifiManager from '@ohos.wifiManager'; 1987 1988 try { 1989 let id = 0; 1990 wifiManager.removeDevice(id); 1991 }catch(error){ 1992 console.error("failed:" + JSON.stringify(error)); 1993 } 1994``` 1995 1996## wifiManager.isBandTypeSupported<sup>10+</sup> 1997 1998isBandTypeSupported(bandType: WifiBandType): boolean 1999 2000判断当前频段是否支持。 2001 2002**需要权限:** ohos.permission.GET_WIFI_INFO。 2003 2004**系统能力:** SystemCapability.Communication.WiFi.STA 2005 2006**参数:** 2007 2008 | **参数名** | **类型** | **必填** | **说明** | 2009 | -------- | -------- | -------- | -------- | 2010 | bandType | WifiBandType | 是 | Wifi 频段类型。 | 2011 2012**返回值:** 2013 2014 | **类型** | **说明** | 2015 | -------- | -------- | 2016 | boolean | true:支持, false:不支持。 | 2017 2018**错误码:** 2019 2020以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2021 2022| **错误码ID** | **错误信息** | 2023 | -------- | -------- | 2024| 2501000 | Operation failed.| 2025 2026**示例:** 2027```ts 2028 import wifiManager from '@ohos.wifiManager'; 2029 2030 try { 2031 let type = 0; 2032 let isBandTypeSupported = wifiManager.isBandTypeSupported(type); 2033 console.info("isBandTypeSupported:" + isBandTypeSupported); 2034 }catch(error){ 2035 console.error("failed:" + JSON.stringify(error)); 2036 } 2037``` 2038 2039## wifiManager.get5GChannelList<sup>10+</sup> 2040 2041get5GChannelList(): Array<number> 2042 2043获取当前设备支持的5G信道列表。 2044 2045**系统接口:** 此接口为系统接口。 2046 2047**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2048 2049**系统能力:** SystemCapability.Communication.WiFi.STA 2050 2051**返回值:** 2052 2053 | **类型** | **说明** | 2054 | -------- | -------- | 2055 | Array<number> | 设备支持的5G信道列表。 | 2056 2057**错误码:** 2058 2059以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2060 2061| **错误码ID** | **错误信息** | 2062 | -------- | -------- | 2063| 2501000 | Operation failed.| 2064 2065**示例:** 2066```ts 2067 import wifiManager from '@ohos.wifiManager'; 2068 2069 try { 2070 let channelList = wifiManager.get5GChannelList(); 2071 console.info("channelList:" + JSON.stringify(channelList)); 2072 }catch(error){ 2073 console.error("failed:" + JSON.stringify(error)); 2074 } 2075``` 2076## wifiManager.getDisconnectedReason<sup>10+</sup> 2077 2078getDisconnectedReason(): DisconnectedReason 2079 2080获取最近一次断连原因。 2081 2082**系统接口:** 此接口为系统接口。 2083 2084**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2085 2086**系统能力:** SystemCapability.Communication.WiFi.STA 2087 2088**错误码:** 2089 2090以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2091 2092| **错误码ID** | **错误信息** | 2093 | -------- | -------- | 2094| 2501000 | Operation failed.| 2095 2096**返回值:** 2097 2098| **类型** | **说明** | 2099| -------- | -------- | 2100| DisconnectedReason | 最近断开的原因 | 2101 2102**示例:** 2103```ts 2104 import wifiManager from '@ohos.wifiManager'; 2105 2106 try { 2107 let disconnectedReason = wifiManager.getDisconnectedReason(); 2108 console.info("disconnectedReason:" + disconnectedReason); 2109 }catch(error){ 2110 console.error("failed:" + JSON.stringify(error)); 2111 } 2112``` 2113 2114## DisconnectedReason <sup>10+</sup> 2115 2116表示wifi断开原因的枚举。 2117 2118**系统接口:** 此接口为系统接口。 2119 2120**系统能力:** SystemCapability.Communication.WiFi.STA 2121 2122| 名称 | 值 | 说明 | 2123| -------- | -------- | -------- | 2124| DISC_REASON_DEFAULT | 0 | 默认原因。 | 2125| DISC_REASON_WRONG_PWD | 1 | 密码错误。 | 2126| DISC_REASON_CONNECTION_FULL | 2 | 路由器的连接数已达到最大数量限制。 | 2127 2128## wifiManager.enableHotspot<sup>9+</sup> 2129 2130enableHotspot(): void 2131 2132使能热点,异步接口,是否打开成功需要注册并监听hotspotStateChange的回调。 2133 2134**系统接口:** 此接口为系统接口。 2135 2136**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 2137 2138**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2139 2140**错误码:** 2141 2142以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2143 2144| **错误码ID** | **错误信息** | 2145 | -------- | -------- | 2146| 2601000 | Operation failed.| 2147 2148**示例:** 2149```ts 2150 import wifiManager from '@ohos.wifiManager'; 2151 2152 try { 2153 wifiManager.enableHotspot(); 2154 }catch(error){ 2155 console.error("failed:" + JSON.stringify(error)); 2156 } 2157``` 2158 2159## wifiManager.disableHotspot<sup>9+</sup> 2160 2161disableHotspot(): void 2162 2163去使能热点 ,异步接口,是否关闭成功需要注册并监听hotspotStateChange的回调。 2164 2165**系统接口:** 此接口为系统接口。 2166 2167**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 2168 2169**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2170 2171**错误码:** 2172 2173以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2174 2175| **错误码ID** | **错误信息** | 2176 | -------- | -------- | 2177| 2601000 | Operation failed.| 2178 2179**示例:** 2180```ts 2181 import wifiManager from '@ohos.wifiManager'; 2182 2183 try { 2184 wifiManager.disableHotspot(); 2185 }catch(error){ 2186 console.error("failed:" + JSON.stringify(error)); 2187 } 2188``` 2189 2190## wifiManager.isHotspotDualBandSupported<sup>9+</sup> 2191 2192isHotspotDualBandSupported(): boolean 2193 2194热点是否支持双频。 2195 2196**系统接口:** 此接口为系统接口。 2197 2198**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 2199 2200**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2201 2202**返回值:** 2203 2204 | **类型** | **说明** | 2205 | -------- | -------- | 2206 | boolean | true:支持, false:不支持.| 2207 2208**错误码:** 2209 2210以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2211 2212| **错误码ID** | **错误信息** | 2213 | -------- | -------- | 2214| 2601000 | Operation failed.| 2215 2216**示例:** 2217```ts 2218 import wifiManager from '@ohos.wifiManager'; 2219 2220 try { 2221 let ret = wifiManager.isHotspotDualBandSupported(); 2222 console.info("result:" + ret); 2223 }catch(error){ 2224 console.error("failed:" + JSON.stringify(error)); 2225 } 2226``` 2227 2228## wifiManager.isHotspotActive<sup>9+</sup> 2229 2230isHotspotActive(): boolean 2231 2232热点是否已使能。 2233 2234**系统接口:** 此接口为系统接口。 2235 2236**需要权限:** ohos.permission.GET_WIFI_INFO 2237 2238**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2239 2240**返回值:** 2241 2242 | **类型** | **说明** | 2243 | -------- | -------- | 2244 | boolean | true:已使能, false:未使能.| 2245 2246**错误码:** 2247 2248以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2249 2250| **错误码ID** | **错误信息** | 2251 | -------- | -------- | 2252| 2601000 | Operation failed.| 2253 2254**示例:** 2255```ts 2256 import wifiManager from '@ohos.wifiManager'; 2257 2258 try { 2259 let ret = wifiManager.isHotspotActive(); 2260 console.info("result:" + ret); 2261 }catch(error){ 2262 console.error("failed:" + JSON.stringify(error)); 2263 } 2264``` 2265 2266## wifiManager.setHotspotConfig<sup>9+</sup> 2267 2268setHotspotConfig(config: HotspotConfig): void 2269 2270设置热点配置信息。 2271 2272**系统接口:** 此接口为系统接口。 2273 2274**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2275 2276**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2277 2278**参数:** 2279 2280 | **参数名** | **类型** | **必填** | **说明** | 2281 | -------- | -------- | -------- | -------- | 2282 | config | [HotspotConfig](#hotspotconfig9) | 是 | 热点配置信息。 | 2283 2284**错误码:** 2285 2286以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2287 2288| **错误码ID** | **错误信息** | 2289 | -------- | -------- | 2290| 2601000 | Operation failed.| 2291 2292**示例:** 2293```ts 2294 import wifiManager from '@ohos.wifiManager'; 2295 2296 try { 2297 let config:wifiManager.HotspotConfig = { 2298 ssid: "****", 2299 securityType: 3, 2300 band: 0, 2301 channel: 0, 2302 preSharedKey: "****", 2303 maxConn: 0 2304 } 2305 let ret = wifiManager.setHotspotConfig(config); 2306 console.info("result:" + ret); 2307 }catch(error){ 2308 console.error("failed:" + JSON.stringify(error)); 2309 } 2310``` 2311 2312## HotspotConfig<sup>9+</sup> 2313 2314热点配置信息。 2315 2316**系统接口:** 此接口为系统接口。 2317 2318**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2319 2320| **名称** | **类型** | **可读** | **可写** | **说明** | 2321| -------- | -------- | -------- | -------- | -------- | 2322| ssid | string | 是 | 是 | 热点的SSID,编码格式为UTF-8。 | 2323| securityType | [WifiSecurityType](#wifisecuritytype9)| 是 | 是 | 加密类型。 | 2324| band | number | 是 | 是 | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 | 2325| channel<sup>10+</sup> | number | 是 | 是 | 热点的信道(2.4G:1~14,5G:7~196,双模频段:暂不支持)。 | 2326| preSharedKey | string | 是 | 是 | 热点的密钥。 | 2327| maxConn | number | 是 | 是 | 最大设备连接数。 | 2328 2329## wifiManager.getHotspotConfig<sup>9+</sup> 2330 2331getHotspotConfig(): HotspotConfig 2332 2333获取热点配置信息。 2334 2335**系统接口:** 此接口为系统接口。 2336 2337**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2338 2339**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2340 2341**返回值:** 2342 2343 | **类型** | **说明** | 2344 | -------- | -------- | 2345 | [HotspotConfig](#hotspotconfig9) | 热点的配置信息。 | 2346 2347**错误码:** 2348 2349以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2350 2351| **错误码ID** | **错误信息** | 2352 | -------- | -------- | 2353| 2601000 | Operation failed.| 2354 2355**示例:** 2356```ts 2357 import wifiManager from '@ohos.wifiManager'; 2358 2359 try { 2360 let config = wifiManager.getHotspotConfig(); 2361 console.info("result:" + JSON.stringify(config)); 2362 }catch(error){ 2363 console.error("failed:" + JSON.stringify(error)); 2364 } 2365``` 2366 2367## wifiManager.getStations<sup>9+</sup> 2368 2369getStations(): Array<StationInfo> 2370 2371获取连接的设备。 2372 2373**系统接口:** 此接口为系统接口。 2374 2375**需要权限:** 2376 2377API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION、ohos.permission.APPROXIMATELY_LOCATION 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 2378 2379API 10起:ohos.permission.GET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 2380 2381**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2382 2383**返回值:** 2384 2385| **类型** | **说明** | 2386| -------- | -------- | 2387| Array<[StationInfo](#stationinfo9)> | 连接的设备数组。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的macAddress为真实设备地址,否则为随机设备地址。 | 2388 2389**错误码:** 2390 2391以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2392 2393| **错误码ID** | **错误信息** | 2394 | -------- | -------- | 2395| 2601000 | Operation failed.| 2396 2397**示例:** 2398```ts 2399 import wifiManager from '@ohos.wifiManager'; 2400 2401 try { 2402 let stations = wifiManager.getStations(); 2403 console.info("result:" + JSON.stringify(stations)); 2404 }catch(error){ 2405 console.error("failed:" + JSON.stringify(error)); 2406 } 2407``` 2408 2409## StationInfo<sup>9+</sup> 2410 2411接入的设备信息。 2412 2413**系统接口:** 此接口为系统接口。 2414 2415**系统能力:** SystemCapability.Communication.WiFi.AP.Core 2416 2417| **名称** | **类型** | **可读** | **可写** | **说明** | 2418| -------- | -------- | -------- | -------- | -------- | 2419| name | string | 是 | 否 | 设备名称。 | 2420| macAddress | string | 是 | 否 | MAC地址。 | 2421| macAddressType<sup>10+</sup> | DeviceAddressType | 是 | 否 | MAC地址类型。 | 2422| ipAddress | string | 是 | 否 | IP地址。 | 2423 2424 2425## wifiManager.getP2pLinkedInfo<sup>9+</sup> 2426 2427getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> 2428 2429获取P2P连接信息,使用Promise异步回调。 2430 2431**需要权限:** ohos.permission.GET_WIFI_INFO 2432 2433获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,groupOwnerAddr 返回全零地址。 2434 2435**系统能力:** SystemCapability.Communication.WiFi.P2P 2436 2437**返回值:** 2438 2439 | 类型 | 说明 | 2440 | -------- | -------- | 2441 | Promise<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | Promise对象。表示P2P连接信息。 | 2442 2443**错误码:** 2444 2445以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2446 2447| **错误码ID** | **错误信息** | 2448 | -------- | -------- | 2449| 2801000 | Operation failed.| 2450 2451 2452## wifiManager.getP2pLinkedInfo<sup>9+</sup> 2453 2454getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void 2455 2456获取P2P连接信息,使用callback异步回调。 2457 2458**需要权限:** ohos.permission.GET_WIFI_INFO 2459 2460获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,groupOwnerAddr 返回全零地址。 2461 2462**系统能力:** SystemCapability.Communication.WiFi.P2P 2463 2464**参数:** 2465 2466 | 参数名 | 类型 | 必填 | 说明 | 2467 | -------- | -------- | -------- | -------- | 2468 | callback | AsyncCallback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果err为非0,表示处理出现错误。 | 2469 2470**错误码:** 2471 2472以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2473 2474| **错误码ID** | **错误信息** | 2475 | -------- | -------- | 2476| 2801000 | Operation failed.| 2477 2478**示例:** 2479```ts 2480 import wifiManager from '@ohos.wifiManager'; 2481 2482 wifiManager.getP2pLinkedInfo((err, data) => { 2483 if (err) { 2484 console.error("get p2p linked info error"); 2485 return; 2486 } 2487 console.info("get wifi p2p linked info: " + JSON.stringify(data)); 2488 }); 2489 2490 wifiManager.getP2pLinkedInfo().then(data => { 2491 console.info("get wifi p2p linked info: " + JSON.stringify(data)); 2492 }); 2493``` 2494 2495 2496## WifiP2pLinkedInfo<sup>9+</sup> 2497 2498提供WLAN连接的相关信息。 2499 2500**系统能力:** SystemCapability.Communication.WiFi.P2P 2501 2502| 名称 | 类型 | 可读 | 可写 | 说明 | 2503| -------- | -------- | -------- | -------- | -------- | 2504| connectState | [P2pConnectState](#p2pconnectstate9) | 是 | 否 | P2P连接状态。 | 2505| isGroupOwner | boolean | 是 | 否 | 是否是群主。 | 2506| groupOwnerAddr | string | 是 | 否 | 群组IP地址。 2507 2508 2509## P2pConnectState<sup>9+</sup> 2510 2511表示P2P连接状态的枚举。 2512 2513**系统能力:** SystemCapability.Communication.WiFi.P2P 2514 2515| 名称 | 值 | 说明 | 2516| -------- | -------- | -------- | 2517| DISCONNECTED | 0 | 断开状态。 | 2518| CONNECTED | 1 | 连接状态。 | 2519 2520## wifiManager.getCurrentGroup<sup>9+</sup> 2521 2522getCurrentGroup(): Promise<WifiP2pGroupInfo> 2523 2524获取P2P当前组信息,使用Promise异步回调。 2525 2526**需要权限:** 2527 2528API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2529 2530API 10起:ohos.permission.GET_WIFI_INFO 2531 2532**系统能力:** SystemCapability.Communication.WiFi.P2P 2533 2534**返回值:** 2535 2536| 类型 | 说明 | 2537| -------- | -------- | 2538| Promise<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | Promise对象。表示当前组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2539 2540**错误码:** 2541 2542以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2543 2544| **错误码ID** | **错误信息** | 2545 | -------- | -------- | 2546| 2801000 | Operation failed.| 2547 2548## wifiManager.getCurrentGroup<sup>9+</sup> 2549 2550getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void 2551 2552获取P2P当前组信息,使用callback异步回调。 2553 2554**需要权限:** 2555 2556API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2557 2558API 10起:ohos.permission.GET_WIFI_INFO 2559 2560**系统能力:** SystemCapability.Communication.WiFi.P2P 2561 2562**参数:** 2563 2564| 参数名 | 类型 | 必填 | 说明 | 2565| -------- | -------- | -------- | -------- | 2566| callback | AsyncCallback<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2567 2568**错误码:** 2569 2570以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2571 2572| **错误码ID** | **错误信息** | 2573 | -------- | -------- | 2574| 2801000 | Operation failed.| 2575 2576**示例:** 2577```ts 2578 import wifiManager from '@ohos.wifiManager'; 2579 // p2p处于连接状态,才能正常获取到当前组信息 2580 wifiManager.getCurrentGroup((err, data) => { 2581 if (err) { 2582 console.error("get current P2P group error"); 2583 return; 2584 } 2585 console.info("get current P2P group: " + JSON.stringify(data)); 2586 }); 2587 2588 wifiManager.getCurrentGroup().then(data => { 2589 console.info("get current P2P group: " + JSON.stringify(data)); 2590 }); 2591``` 2592 2593## wifiManager.getP2pPeerDevices<sup>9+</sup> 2594 2595getP2pPeerDevices(): Promise<WifiP2pDevice[]> 2596 2597获取P2P对端设备列表信息,使用Promise异步回调。 2598 2599**需要权限:** 2600 2601API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2602 2603API 10起:ohos.permission.GET_WIFI_INFO 2604 2605**系统能力:** SystemCapability.Communication.WiFi.P2P 2606 2607**返回值:** 2608 2609| 类型 | 说明 | 2610| -------- | -------- | 2611| Promise<[WifiP2pDevice[]](#wifip2pdevice9)> | Promise对象。表示对端设备列表信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2612 2613**错误码:** 2614 2615以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2616 2617| **错误码ID** | **错误信息** | 2618 | -------- | -------- | 2619| 2801000 | Operation failed.| 2620 2621## wifiManager.getP2pPeerDevices<sup>9+</sup> 2622 2623getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void 2624 2625获取P2P对端设备列表信息,使用callback异步回调。 2626 2627**需要权限:** 2628 2629API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2630 2631API 10起:ohos.permission.GET_WIFI_INFO 2632 2633**系统能力:** SystemCapability.Communication.WiFi.P2P 2634 2635**参数:** 2636 2637| 参数名 | 类型 | 必填 | 说明 | 2638| -------- | -------- | -------- | -------- | 2639| callback | AsyncCallback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果err为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 2640 2641**错误码:** 2642 2643以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2644 2645| **错误码ID** | **错误信息** | 2646 | -------- | -------- | 2647| 2801000 | Operation failed.| 2648 2649**示例:** 2650```ts 2651 import wifiManager from '@ohos.wifiManager'; 2652 // p2p处于连接状态,才能正常获取到对端设备列表信息 2653 wifiManager.getP2pPeerDevices((err, data) => { 2654 if (err) { 2655 console.error("get P2P peer devices error"); 2656 return; 2657 } 2658 console.info("get P2P peer devices: " + JSON.stringify(data)); 2659 }); 2660 2661 wifiManager.getP2pPeerDevices().then(data => { 2662 console.info("get P2P peer devices: " + JSON.stringify(data)); 2663 }); 2664``` 2665 2666## WifiP2pDevice<sup>9+</sup> 2667 2668表示P2P设备信息。 2669 2670**系统能力:** SystemCapability.Communication.WiFi.P2P 2671 2672| 名称 | 类型 | 可读 | 可写 | 说明 | 2673| -------- | -------- | -------- | -------- | -------- | 2674| deviceName | string | 是 | 否 | 设备名称。 | 2675| deviceAddress | string | 是 | 否 | 设备MAC地址。 | 2676| deviceAddressType<sup>10+</sup> | DeviceAddressType | 是 | 否 | 设备MAC地址类型。 | 2677| primaryDeviceType | string | 是 | 否 | 主设备类型。 | 2678| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus9) | 是 | 否 | 设备状态。 | 2679| groupCapabilities | number | 是 | 否 | 群组能力。 | 2680 2681 2682## P2pDeviceStatus<sup>9+</sup> 2683 2684表示设备状态的枚举。 2685 2686**系统能力:** SystemCapability.Communication.WiFi.P2P 2687 2688| 名称 | 值 | 说明 | 2689| -------- | -------- | -------- | 2690| CONNECTED | 0 | 连接状态。 | 2691| INVITED | 1 | 邀请状态。 | 2692| FAILED | 2 | 失败状态。 | 2693| AVAILABLE | 3 | 可用状态。 | 2694| UNAVAILABLE | 4 | 不可用状态。 | 2695 2696 2697## wifiManager.getP2pLocalDevice<sup>9+</sup> 2698 2699getP2pLocalDevice(): Promise<WifiP2pDevice> 2700 2701获取P2P本端设备信息,使用Promise异步回调。 2702 2703**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2704 2705**系统能力:** SystemCapability.Communication.WiFi.P2P 2706 2707**返回值:** 2708 2709 | 类型 | 说明 | 2710 | -------- | -------- | 2711 | Promise<[WifiP2pDevice](#wifip2pdevice9)> | Promise对象。表示本端设备信息。 | 2712 2713**错误码:** 2714 2715以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2716 2717| **错误码ID** | **错误信息** | 2718 | -------- | -------- | 2719| 2801000 | Operation failed.| 2720 2721## wifiManager.getP2pLocalDevice<sup>9+</sup> 2722 2723getP2pLocalDevice(callback: AsyncCallback<WifiP2pDevice>): void 2724 2725获取P2P本端设备信息,使用callback异步回调。 2726 2727**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 2728 2729**系统能力:** SystemCapability.Communication.WiFi.P2P 2730 2731**参数:** 2732 2733 | 参数名 | 类型 | 必填 | 说明 | 2734 | -------- | -------- | -------- | -------- | 2735 | callback | AsyncCallback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 回调函数。当操作成功时,err为0,data表示本端设备信息。如果error为非0,表示处理出现错误。 | 2736 2737**错误码:** 2738 2739| **错误码ID** | **错误信息** | 2740 | -------- | -------- | 2741| 2801000 | Operation failed.| 2742 2743**示例:** 2744```ts 2745 import wifiManager from '@ohos.wifiManager'; 2746 // p2p处于连接状态,才能正常获取到本端设备信息 2747 wifiManager.getP2pLocalDevice((err, data) => { 2748 if (err) { 2749 console.error("get P2P local device error"); 2750 return; 2751 } 2752 console.info("get P2P local device: " + JSON.stringify(data)); 2753 }); 2754 2755 wifiManager.getP2pLocalDevice().then(data => { 2756 console.info("get P2P local device: " + JSON.stringify(data)); 2757 }); 2758``` 2759 2760## wifiManager.createGroup<sup>9+</sup> 2761 2762createGroup(config: WifiP2PConfig): void 2763 2764创建群组。 2765 2766**需要权限:** ohos.permission.GET_WIFI_INFO 2767 2768**系统能力:** SystemCapability.Communication.WiFi.P2P 2769 2770**参数:** 2771 2772| **参数名** | **类型** | 必填 | **说明** | 2773| -------- | -------- | -------- | -------- | 2774| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 群组配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 | 2775 2776**错误码:** 2777 2778以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2779 2780| **错误码ID** | **错误信息** | 2781 | -------- | -------- | 2782| 2801000 | Operation failed.| 2783 2784**示例:** 2785```ts 2786 import wifiManager from '@ohos.wifiManager'; 2787 2788 try { 2789 let config:wifiManager.WifiP2PConfig = { 2790 deviceAddress: "****", 2791 netId: 0, 2792 passphrase: "*****", 2793 groupName: "****", 2794 goBand: 0 2795 } 2796 wifiManager.createGroup(config); 2797 2798 }catch(error){ 2799 console.error("failed:" + JSON.stringify(error)); 2800 } 2801``` 2802 2803## WifiP2PConfig<sup>9+</sup> 2804 2805表示P2P配置信息。 2806 2807**系统能力:** SystemCapability.Communication.WiFi.P2P 2808 2809| 名称 | 类型 | 可读 | 可写 | 说明 | 2810| -------- | -------- | -------- | -------- | -------- | 2811| deviceAddress | string | 是 | 否 | 设备地址。 | 2812| deviceAddressType<sup>10+</sup>| DeviceAddressType | 是 | 否 | 设备地址类型。 | 2813| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 | 2814| passphrase | string | 是 | 否 | 群组密钥。 | 2815| groupName | string | 是 | 否 | 群组名称。 | 2816| goBand | [GroupOwnerBand](#groupownerband9) | 是 | 否 | 群组带宽。 | 2817 2818 2819## GroupOwnerBand<sup>9+</sup> 2820 2821表示群组带宽的枚举。 2822 2823**系统能力:** SystemCapability.Communication.WiFi.P2P 2824 2825| 名称 | 值 | 说明 | 2826| -------- | -------- | -------- | 2827| GO_BAND_AUTO | 0 | 自动模式。 | 2828| GO_BAND_2GHZ | 1 | 2.4GHZ。 | 2829| GO_BAND_5GHZ | 2 | 5GHZ。 | 2830 2831 2832## wifiManager.removeGroup<sup>9+</sup> 2833 2834removeGroup(): void 2835 2836移除群组。 2837 2838**需要权限:** ohos.permission.GET_WIFI_INFO 2839 2840**系统能力:** SystemCapability.Communication.WiFi.P2P 2841 2842**错误码:** 2843 2844以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2845 2846| **错误码ID** | **错误信息** | 2847 | -------- | -------- | 2848| 2801000 | Operation failed.| 2849 2850**示例:** 2851```ts 2852 import wifiManager from '@ohos.wifiManager'; 2853 2854 try { 2855 wifiManager.removeGroup(); 2856 }catch(error){ 2857 console.error("failed:" + JSON.stringify(error)); 2858 } 2859``` 2860 2861## wifiManager.p2pConnect<sup>9+</sup> 2862 2863p2pConnect(config: WifiP2PConfig): void 2864 2865执行P2P连接。 2866 2867**需要权限:** 2868 2869API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2870 2871API 10起:ohos.permission.GET_WIFI_INFO 2872 2873**系统能力:** SystemCapability.Communication.WiFi.P2P 2874 2875**参数:** 2876 2877| **参数名** | **类型** | 必填 | **说明** | 2878| -------- | -------- | -------- | -------- | 2879| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 连接配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 | 2880 2881**错误码:** 2882 2883以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2884 2885| **错误码ID** | **错误信息** | 2886 | -------- | -------- | 2887| 2801000 | Operation failed.| 2888 2889**示例:** 2890```ts 2891 import wifiManager from '@ohos.wifiManager'; 2892 2893 let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { 2894 console.info("p2p connection change receive event: " + JSON.stringify(result)); 2895 wifiManager.getP2pLinkedInfo((err, data) => { 2896 if (err) { 2897 console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err)); 2898 return; 2899 } 2900 console.info("get getP2pLinkedInfo: " + JSON.stringify(data)); 2901 }); 2902 } 2903 wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 2904 2905 let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { 2906 console.info("p2p device change receive event: " + JSON.stringify(result)); 2907 } 2908 wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 2909 2910 let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { 2911 console.info("p2p peer device change receive event: " + JSON.stringify(result)); 2912 wifiManager.getP2pPeerDevices((err, data) => { 2913 if (err) { 2914 console.error('failed to get peer devices: ' + JSON.stringify(err)); 2915 return; 2916 } 2917 console.info("get peer devices: " + JSON.stringify(data)); 2918 let len = data.length; 2919 for (let i = 0; i < len; ++i) { 2920 if (data[i].deviceName === "my_test_device") { 2921 console.info("p2p connect to test device: " + data[i].deviceAddress); 2922 let config:wifiManager.WifiP2PConfig = { 2923 deviceAddress:data[i].deviceAddress, 2924 netId:-2, 2925 passphrase:"", 2926 groupName:"", 2927 goBand:0, 2928 } 2929 wifiManager.p2pConnect(config); 2930 } 2931 } 2932 }); 2933 } 2934 wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 2935 2936 let recvP2pPersistentGroupChangeFunc = () => { 2937 console.info("p2p persistent group change receive event"); 2938 2939 wifiManager.getCurrentGroup((err, data) => { 2940 if (err) { 2941 console.error('failed to get current group: ' + JSON.stringify(err)); 2942 return; 2943 } 2944 console.info("get current group: " + JSON.stringify(data)); 2945 }); 2946 } 2947 wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 2948 2949 setTimeout(() => {wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000); 2950 setTimeout(() => {wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000); 2951 setTimeout(() => {wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000); 2952 setTimeout(() => {wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000); 2953 console.info("start discover devices -> " + wifiManager.startDiscoverDevices()); 2954``` 2955 2956## wifiManager.p2pCancelConnect<sup>9+</sup> 2957 2958p2pCancelConnect(): void 2959 2960取消P2P连接。 2961 2962**需要权限:** ohos.permission.GET_WIFI_INFO 2963 2964**系统能力:** SystemCapability.Communication.WiFi.P2P 2965 2966**错误码:** 2967 2968以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 2969 2970| **错误码ID** | **错误信息** | 2971 | -------- | -------- | 2972| 2801000 | Operation failed.| 2973 2974**示例:** 2975```ts 2976 import wifiManager from '@ohos.wifiManager'; 2977 2978 try { 2979 wifiManager.p2pCancelConnect(); 2980 }catch(error){ 2981 console.error("failed:" + JSON.stringify(error)); 2982 } 2983``` 2984 2985## wifiManager.startDiscoverDevices<sup>9+</sup> 2986 2987startDiscoverDevices(): void 2988 2989开始发现设备。 2990 2991**需要权限:** 2992 2993API 9:ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 2994 2995API 10起:ohos.permission.GET_WIFI_INFO 2996 2997**系统能力:** SystemCapability.Communication.WiFi.P2P 2998 2999**错误码:** 3000 3001以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3002 3003| **错误码ID** | **错误信息** | 3004 | -------- | -------- | 3005| 2801000 | Operation failed.| 3006 3007**示例:** 3008```ts 3009 import wifiManager from '@ohos.wifiManager'; 3010 3011 try { 3012 wifiManager.startDiscoverDevices(); 3013 }catch(error){ 3014 console.error("failed:" + JSON.stringify(error)); 3015 } 3016``` 3017 3018## wifiManager.stopDiscoverDevices<sup>9+</sup> 3019 3020stopDiscoverDevices(): void 3021 3022停止发现设备。 3023 3024**需要权限:** ohos.permission.GET_WIFI_INFO 3025 3026**系统能力:** SystemCapability.Communication.WiFi.P2P 3027 3028**错误码:** 3029 3030以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3031 3032| **错误码ID** | **错误信息** | 3033 | -------- | -------- | 3034| 2801000 | Operation failed.| 3035 3036**示例:** 3037```ts 3038 import wifiManager from '@ohos.wifiManager'; 3039 3040 try { 3041 wifiManager.stopDiscoverDevices(); 3042 }catch(error){ 3043 console.error("failed:" + JSON.stringify(error)); 3044 } 3045``` 3046 3047## wifiManager.deletePersistentGroup<sup>9+</sup> 3048 3049deletePersistentGroup(netId: number): void 3050 3051删除永久组。 3052 3053**系统接口:** 此接口为系统接口。 3054 3055**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION 3056 3057**系统能力:** SystemCapability.Communication.WiFi.P2P 3058 3059**参数:** 3060 3061 3062 | **参数名** | **类型** | 必填 | **说明** | 3063 | -------- | -------- | -------- | -------- | 3064 | netId | number | 是 | 组的ID。 | 3065 3066**错误码:** 3067 3068以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3069 3070| **错误码ID** | **错误信息** | 3071 | -------- | -------- | 3072| 2801000 | Operation failed.| 3073 3074**示例:** 3075```ts 3076 import wifiManager from '@ohos.wifiManager'; 3077 3078 try { 3079 let netId = 0; 3080 wifiManager.deletePersistentGroup(netId); 3081 }catch(error){ 3082 console.error("failed:" + JSON.stringify(error)); 3083 } 3084``` 3085 3086## wifiManager.getP2pGroups<sup>9+</sup> 3087 3088getP2pGroups(): Promise<Array<WifiP2pGroupInfo>> 3089 3090获取创建的所有P2P群组信息,使用Promise异步回调。 3091 3092**系统接口:** 此接口为系统接口。 3093 3094**需要权限:** 3095 3096API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 3097 3098API 10起:ohos.permission.GET_WIFI_INFO 3099 3100**系统能力:** SystemCapability.Communication.WiFi.P2P 3101 3102**返回值:** 3103 3104| 类型 | 说明 | 3105| -------- | -------- | 3106| Promise< Array<[WifiP2pGroupInfo](#wifip2pgroupinfo9)> > | Promise对象。表示所有群组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 3107 3108**错误码:** 3109 3110以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3111 3112| **错误码ID** | **错误信息** | 3113 | -------- | -------- | 3114| 2801000 | Operation failed.| 3115 3116**示例:** 3117```ts 3118 import wifiManager from '@ohos.wifiManager'; 3119 3120 wifiManager.getP2pGroups((err, data) => { 3121 if (err) { 3122 console.error("get P2P groups error"); 3123 return; 3124 } 3125 console.info("get P2P groups: " + JSON.stringify(data)); 3126 }); 3127 3128 wifiManager.getP2pGroups().then(data => { 3129 console.info("get P2P groups: " + JSON.stringify(data)); 3130 }); 3131 3132``` 3133 3134## WifiP2pGroupInfo<sup>9+</sup> 3135 3136表示P2P群组相关信息。 3137 3138**系统能力:** SystemCapability.Communication.WiFi.P2P 3139 3140| 名称 | 类型 | 可读 | 可写 | 说明 | 3141| -------- | -------- | -------- | -------- | -------- | 3142| isP2pGo | boolean | 是 | 否 | 是否是群主。 | 3143| ownerInfo | [WifiP2pDevice](#wifip2pdevice9) | 是 | 否 | 群组的设备信息。 | 3144| passphrase | string | 是 | 否 | 群组密钥。 | 3145| interface | string | 是 | 否 | 接口名称。 | 3146| groupName | string | 是 | 否 | 群组名称。 | 3147| networkId | number | 是 | 否 | 网络ID。 | 3148| frequency | number | 是 | 否 | 群组的频率。 | 3149| clientDevices | [WifiP2pDevice[]](#wifip2pdevice9) | 是 | 否 | 接入的设备列表信息。 | 3150| goIpAddress | string | 是 | 否 | 群组IP地址。 | 3151 3152 3153## wifiManager.getP2pGroups<sup>9+</sup> 3154 3155getP2pGroups(callback: AsyncCallback<Array<WifiP2pGroupInfo>>): void 3156 3157获取创建的所有P2P群组信息,使用callback方式作为异步方法。 3158 3159**系统接口:** 此接口为系统接口。 3160 3161**需要权限:** 3162 3163API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 3164 3165API 10起:ohos.permission.GET_WIFI_INFO 3166 3167**系统能力:** SystemCapability.Communication.WiFi.P2P 3168 3169**参数:** 3170 3171| 参数名 | 类型 | 必填 | 说明 | 3172| -------- | -------- | -------- | -------- | 3173| callback | AsyncCallback< Array<[WifiP2pGroupInfo](#wifip2pgroupinfo9)>> | 是 | 回调函数。当操作成功时,err为0,data表示所有群组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 3174 3175**错误码:** 3176 3177以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3178 3179| **错误码ID** | **错误信息** | 3180 | -------- | -------- | 3181| 2801000 | Operation failed.| 3182 3183## wifiManager.setDeviceName<sup>9+</sup> 3184 3185setDeviceName(devName: string): void 3186 3187设置设备名称。 3188 3189**系统接口:** 此接口为系统接口。 3190 3191**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 3192 3193**系统能力:** SystemCapability.Communication.WiFi.P2P 3194 3195**参数:** 3196 3197 | **参数名** | **类型** | **必填** | **说明** | 3198 | -------- | -------- | -------- | -------- | 3199 | devName | string | 是 | 设备名称。 | 3200 3201**错误码:** 3202 3203以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3204 3205| **错误码ID** | **错误信息** | 3206 | -------- | -------- | 3207| 2801000 | Operation failed.| 3208 3209**示例:** 3210```ts 3211 import wifiManager from '@ohos.wifiManager'; 3212 3213 try { 3214 let name = "****"; 3215 wifiManager.setDeviceName(name); 3216 }catch(error){ 3217 console.error("failed:" + JSON.stringify(error)); 3218 } 3219``` 3220 3221## wifiManager.on('wifiStateChange')<sup>9+</sup> 3222 3223on(type: "wifiStateChange", callback: Callback<number>): void 3224 3225注册WLAN状态改变事件。 3226 3227**需要权限:** ohos.permission.GET_WIFI_INFO 3228 3229**系统能力:** SystemCapability.Communication.WiFi.STA 3230 3231**参数:** 3232 3233 | **参数名** | **类型** | **必填** | **说明** | 3234 | -------- | -------- | -------- | -------- | 3235 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 3236 | callback | Callback<number> | 是 | 状态改变回调函数。 | 3237 3238**错误码:** 3239 3240以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3241 3242| **错误码ID** | **错误信息** | 3243 | -------- | -------- | 3244| 2501000 | Operation failed.| 3245 3246**状态改变事件的枚举:** 3247 3248| **枚举值** | **说明** | 3249| -------- | -------- | 3250| 0 | 未激活。 | 3251| 1 | 已激活。 | 3252| 2 | 激活中。 | 3253| 3 | 去激活中。 | 3254 3255 3256## wifiManager.off('wifiStateChange')<sup>9+</sup> 3257 3258off(type: "wifiStateChange", callback?: Callback<number>): void 3259 3260取消注册WLAN状态改变事件。 3261 3262**需要权限:** ohos.permission.GET_WIFI_INFO 3263 3264**系统能力:** SystemCapability.Communication.WiFi.STA 3265 3266**参数:** 3267 3268 | **参数名** | **类型** | **必填** | **说明** | 3269 | -------- | -------- | -------- | -------- | 3270 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 3271 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3272 3273**错误码:** 3274 3275以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3276 3277| **错误码ID** | **错误信息** | 3278 | -------- | -------- | 3279| 2501000 | Operation failed.| 3280 3281**示例:** 3282```ts 3283 import wifiManager from '@ohos.wifiManager'; 3284 3285 let recvPowerNotifyFunc = (result:number) => { 3286 console.info("Receive power state change event: " + result); 3287 } 3288 3289 // Register event 3290 wifiManager.on("wifiStateChange", recvPowerNotifyFunc); 3291 3292 // Unregister event 3293 wifiManager.off("wifiStateChange", recvPowerNotifyFunc); 3294``` 3295 3296 3297## wifiManager.on('wifiConnectionChange')<sup>9+</sup> 3298 3299on(type: "wifiConnectionChange", callback: Callback<number>): void 3300 3301注册WLAN连接状态改变事件。 3302 3303**需要权限:** ohos.permission.GET_WIFI_INFO 3304 3305**系统能力:** SystemCapability.Communication.WiFi.STA 3306 3307**参数:** 3308 3309 | **参数名** | **类型** | **必填** | **说明** | 3310 | -------- | -------- | -------- | -------- | 3311 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 3312 | callback | Callback<number> | 是 | 状态改变回调函数。 | 3313 3314**连接状态改变事件的枚举:** 3315 3316| **枚举值** | **说明** | 3317| -------- | -------- | 3318| 0 | 已断开。 | 3319| 1 | 已连接。 | 3320 3321**错误码:** 3322 3323以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3324 3325| **错误码ID** | **错误信息** | 3326 | -------- | -------- | 3327| 2501000 | Operation failed.| 3328 3329## wifiManager.off('wifiConnectionChange')<sup>9+</sup> 3330 3331off(type: "wifiConnectionChange", callback?: Callback<number>): void 3332 3333取消注册WLAN连接状态改变事件。 3334 3335**需要权限:** ohos.permission.GET_WIFI_INFO 3336 3337**系统能力:** SystemCapability.Communication.WiFi.STA 3338 3339**参数:** 3340 3341 | **参数名** | **类型** | **必填** | **说明** | 3342 | -------- | -------- | -------- | -------- | 3343 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 3344 | callback | Callback<number> | 否 | 连接状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3345 3346**错误码:** 3347 3348以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3349 3350| **错误码ID** | **错误信息** | 3351 | -------- | -------- | 3352| 2501000 | Operation failed.| 3353 3354**示例:** 3355```ts 3356 import wifiManager from '@ohos.wifiManager'; 3357 3358 let recvWifiConnectionChangeFunc = (result:number) => { 3359 console.info("Receive wifi connection change event: " + result); 3360 } 3361 3362 // Register event 3363 wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc); 3364 3365 // Unregister event 3366 wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc); 3367``` 3368 3369## wifiManager.on('wifiScanStateChange')<sup>9+</sup> 3370 3371on(type: "wifiScanStateChange", callback: Callback<number>): void 3372 3373注册扫描状态改变事件。 3374 3375**需要权限:** ohos.permission.GET_WIFI_INFO 3376 3377**系统能力:** SystemCapability.Communication.WiFi.STA 3378 3379**参数:** 3380 3381 | **参数名** | **类型** | **必填** | **说明** | 3382 | -------- | -------- | -------- | -------- | 3383 | type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 3384 | callback | Callback<number> | 是 | 状态改变回调函数。 | 3385 3386**扫描状态改变事件的枚举:** 3387 3388| **枚举值** | **说明** | 3389| -------- | -------- | 3390| 0 | 扫描失败。 | 3391| 1 | 扫描成功。 | 3392 3393**错误码:** 3394 3395以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3396 3397| **错误码ID** | **错误信息** | 3398 | -------- | -------- | 3399| 2501000 | Operation failed.| 3400 3401## wifiManager.off('wifiScanStateChange')<sup>9+</sup> 3402 3403off(type: "wifiScanStateChange", callback?: Callback<number>): void 3404 3405取消注册扫描状态改变事件。 3406 3407**需要权限:** ohos.permission.GET_WIFI_INFO 3408 3409**系统能力:** SystemCapability.Communication.WiFi.STA 3410 3411**参数:** 3412 3413| **参数名** | **类型** | **必填** | **说明** | 3414| -------- | -------- | -------- | -------- | 3415| type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 3416| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3417 3418**错误码:** 3419 3420以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3421 3422| **错误码ID** | **错误信息** | 3423 | -------- | -------- | 3424| 2501000 | Operation failed.| 3425 3426**示例:** 3427```ts 3428 import wifiManager from '@ohos.wifiManager'; 3429 3430 let recvWifiScanStateChangeFunc = (result:number) => { 3431 console.info("Receive Wifi scan state change event: " + result); 3432 } 3433 3434 // Register event 3435 wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc); 3436 3437 // Unregister event 3438 wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc); 3439``` 3440 3441## wifiManager.on('wifiRssiChange')<sup>9+</sup> 3442 3443on(type: "wifiRssiChange", callback: Callback<number>): void 3444 3445注册RSSI状态改变事件。 3446 3447**需要权限:** ohos.permission.GET_WIFI_INFO 3448 3449**系统能力:** SystemCapability.Communication.WiFi.STA 3450 3451**参数:** 3452 3453 | **参数名** | **类型** | **必填** | **说明** | 3454 | -------- | -------- | -------- | -------- | 3455 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 3456 | callback | Callback<number> | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 | 3457 3458**错误码:** 3459 3460以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3461 3462| **错误码ID** | **错误信息** | 3463 | -------- | -------- | 3464| 2501000 | Operation failed.| 3465 3466## wifiManager.off('wifiRssiChange')<sup>9+</sup> 3467 3468off(type: "wifiRssiChange", callback?: Callback<number>): void 3469 3470取消注册RSSI状态改变事件。 3471 3472**需要权限:** ohos.permission.GET_WIFI_INFO 3473 3474**系统能力:** SystemCapability.Communication.WiFi.STA 3475 3476**参数:** 3477 3478| **参数名** | **类型** | **必填** | **说明** | 3479| -------- | -------- | -------- | -------- | 3480| type | string | 是 | 固定填"wifiRssiChange"字符串。 | 3481| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3482 3483**错误码:** 3484 3485以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3486 3487| **错误码ID** | **错误信息** | 3488 | -------- | -------- | 3489| 2501000 | Operation failed.| 3490 3491**示例:** 3492```ts 3493 import wifiManager from '@ohos.wifiManager'; 3494 3495 let recvWifiRssiChangeFunc = (result:number) => { 3496 console.info("Receive wifi rssi change event: " + result); 3497 } 3498 3499 // Register event 3500 wifiManager.on("wifiRssiChange", recvWifiRssiChangeFunc); 3501 3502 // Unregister event 3503 wifiManager.off("wifiRssiChange", recvWifiRssiChangeFunc); 3504``` 3505 ## wifiManager.on('streamChange')<sup>9+</sup> 3506 3507on(type: "streamChange", callback: Callback<number>): void 3508 3509注册WIFI流变更事件,当前版本不支持,抛出通用错误码801。 3510 3511**系统接口:** 此接口为系统接口。 3512 3513**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION 3514 3515**系统能力:** SystemCapability.Communication.WiFi.STA 3516 3517**参数:** 3518 3519| **参数名** | **类型** | **必填** | **说明** | 3520| -------- | -------- | -------- | -------- | 3521| type | string | 是 | 固定填"streamChange"字符串。 | 3522| callback | Callback<number> | 是 | 状态改变回调函数,返回0:无,1:向下,2:向上,3:双向。 | 3523 3524**错误码:** 3525 3526以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3527 3528| **错误码ID** | **错误信息** | 3529 | -------- | -------- | 3530| 2501000 | Operation failed.| 3531 3532## wifiManager.off('streamChange')<sup>9+</sup> 3533 3534off(type: "streamChange", callback?: Callback<number>): void 3535 3536取消注册WIFI流变更事件,当前版本不支持,抛出通用错误码801。 3537 3538**系统接口:** 此接口为系统接口。 3539 3540**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION 3541 3542**系统能力:** SystemCapability.Communication.WiFi.STA 3543 3544**参数:** 3545 3546| **参数名** | **类型** | **必填** | **说明** | 3547| -------- | -------- | -------- | -------- | 3548| type | string | 是 | 固定填"streamChange"字符串。 | 3549| callback | Callback<number> | 否 | 状态改变回调函数,返回0:无,1:向下,2:向上,3:双向。 | 3550 3551**错误码:** 3552 3553以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3554 3555| **错误码ID** | **错误信息** | 3556 | -------- | -------- | 3557| 2501000 | Operation failed.| 3558 3559**示例:** 3560```ts 3561import wifi from '@ohos.wifi'; 3562 3563let recvStreamChangeFunc = (result:number) => { 3564 console.info("Receive stream change event: " + result); 3565} 3566 3567// Register event 3568wifi.on("streamChange", recvStreamChangeFunc); 3569 3570// Unregister event 3571wifi.off("streamChange", recvStreamChangeFunc); 3572 3573``` 3574## wifiManager.on('deviceConfigChange')<sup>9+</sup> 3575 3576on(type: "deviceConfigChange", callback: Callback<number>): void 3577 3578注册WIFI设备配置更改事件。 3579 3580**系统接口:** 此接口为系统接口。 3581 3582**需要权限:** ohos.permission.GET_WIFI_INFO 3583 3584**系统能力:** SystemCapability.Communication.WiFi.STA 3585 3586**参数:** 3587 3588| **参数名** | **类型** | **必填** | **说明** | 3589| -------- | -------- | -------- | -------- | 3590| type | string | 是 | 固定填"streamChange"字符串。 | 3591| callback | Callback<number> | 是 | 状态改变回调函数,返回0: 添加配置, 1: 更改配置, 2: 删除配置. | 3592 3593**错误码:** 3594 3595以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3596 3597| **错误码ID** | **错误信息** | 3598 | -------- | -------- | 3599| 2501000 | Operation failed.| 3600 3601## wifiManager.off('deviceConfigChange')<sup>9+</sup> 3602 3603off(type: "deviceConfigChange", callback?: Callback<number>): void 3604 3605取消注册WIFI设备配置更改事件。 3606 3607**系统接口:** 此接口为系统接口。 3608 3609**需要权限:** ohos.permission.GET_WIFI_INFO 3610 3611**系统能力:** SystemCapability.Communication.WiFi.STA 3612 3613**参数:** 3614 3615| **参数名** | **类型** | **必填** | **说明** | 3616| -------- | -------- | -------- | -------- | 3617| type | string | 是 | 固定填"streamChange"字符串。 | 3618| callback | Callback<number> | 否 | 状态改变回调函数,返回0: 添加配置, 1: 更改配置, 2: 删除配置.| 3619 3620**错误码:** 3621 3622以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3623 3624| **错误码ID** | **错误信息** | 3625 | -------- | -------- | 3626| 2501000 | Operation failed.| 3627 3628**示例:** 3629```ts 3630import wifi from '@ohos.wifiManager'; 3631 3632let recvDeviceConfigChangeFunc = (result:number) => { 3633 console.info("Receive device config change event: " + result); 3634} 3635 3636// Register event 3637wifi.on("deviceConfigChange", recvDeviceConfigChangeFunc); 3638 3639// Unregister event 3640wifi.off("deviceConfigChange", recvDeviceConfigChangeFunc); 3641 3642``` 3643 3644## wifiManager.on('hotspotStateChange')<sup>9+</sup> 3645 3646on(type: "hotspotStateChange", callback: Callback<number>): void 3647 3648注册热点状态改变事件。 3649 3650**需要权限:** ohos.permission.GET_WIFI_INFO 3651 3652**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3653 3654**参数:** 3655 3656| **参数名** | **类型** | **必填** | **说明** | 3657| -------- | -------- | -------- | -------- | 3658| type | string | 是 | 固定填"hotspotStateChange"字符串。 | 3659| callback | Callback<number> | 是 | 状态改变回调函数。 | 3660 3661**热点状态改变事件的枚举:** 3662 3663| **枚举值** | **说明** | 3664| -------- | -------- | 3665| 0 | 未激活。 | 3666| 1 | 已激活。 | 3667| 2 | 激活中。 | 3668| 3 | 去激活中。 | 3669 3670**错误码:** 3671 3672以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3673 3674| **错误码ID** | **错误信息** | 3675 | -------- | -------- | 3676| 2601000 | Operation failed.| 3677 3678## wifiManager.off('hotspotStateChange')<sup>9+</sup> 3679 3680off(type: "hotspotStateChange", callback?: Callback<number>): void 3681 3682取消注册热点状态改变事件。 3683 3684**需要权限:** ohos.permission.GET_WIFI_INFO 3685 3686**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3687 3688**参数:** 3689 3690| **参数名** | **类型** | **必填** | **说明** | 3691| -------- | -------- | -------- | -------- | 3692| type | string | 是 | 固定填"hotspotStateChange"字符串。 | 3693| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3694 3695**错误码:** 3696 3697以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3698 3699| **错误码ID** | **错误信息** | 3700 | -------- | -------- | 3701| 2601000 | Operation failed.| 3702 3703**示例:** 3704```ts 3705 import wifiManager from '@ohos.wifiManager'; 3706 3707 let recvHotspotStateChangeFunc = (result:number) => { 3708 console.info("Receive hotspot state change event: " + result); 3709 } 3710 3711 // Register event 3712 wifiManager.on("hotspotStateChange", recvHotspotStateChangeFunc); 3713 3714 // Unregister event 3715 wifiManager.off("hotspotStateChange", recvHotspotStateChangeFunc); 3716``` 3717 3718## wifiManager.on('hotspotStaJoin')<sup>9+</sup> 3719 3720on(type: "hotspotStaJoin", callback: Callback<StationInfo>): void 3721 3722注册wifi热点sta加入事件。 3723 3724**系统接口:** 此接口为系统接口。 3725 3726**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT 3727 3728**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3729 3730**参数:** 3731 3732| **参数名** | **类型** | **必填** | **说明** | 3733| -------- | -------- | -------- | -------- | 3734| type | string | 是 | 固定填"hotspotStaJoin"字符串。 | 3735| callback | Callback<StationInfo> | 是 | 状态改变回调函数。 | 3736 3737**错误码:** 3738 3739以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3740 3741| **错误码ID** | **错误信息** | 3742 | -------- | -------- | 3743| 2601000 | Operation failed.| 3744 3745## wifiManager.off('hotspotStaJoin')<sup>9+</sup> 3746 3747off(type: "hotspotStaJoin", callback?: Callback<StationInfo>): void 3748 3749取消注册wifi热点sta加入事件。 3750 3751**系统接口:** 此接口为系统接口。 3752 3753**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT 3754 3755**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3756 3757**参数:** 3758 3759| **参数名** | **类型** | **必填** | **说明** | 3760| -------- | -------- | -------- | -------- | 3761| type | string | 是 | 固定填"hotspotStaJoin"字符串。 | 3762| callback | Callback<StationInfo> | 否 | 状态改变回调函数。 | 3763 3764**错误码:** 3765 3766以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3767 3768| **错误码ID** | **错误信息** | 3769 | -------- | -------- | 3770| 2601000 | Operation failed.| 3771 3772**示例:** 3773```ts 3774import wifiManager from '@ohos.wifiManager'; 3775 3776let recvHotspotStaJoinFunc = (result:wifiManager.StationInfo) => { 3777 console.info("Receive hotspot sta join event: " + result); 3778} 3779 3780// Register event 3781wifiManager.on("hotspotStaJoin", recvHotspotStaJoinFunc); 3782 3783// Unregister event 3784wifiManager.off("hotspotStaJoin", recvHotspotStaJoinFunc); 3785 3786``` 3787 3788## wifiManager.on('hotspotStaLeave')<sup>9+</sup> 3789 3790on(type: "hotspotStaLeave", callback: Callback<StationInfo>): void 3791 3792注册wifi热点sta离开事件。 3793 3794**系统接口:** 此接口为系统接口。 3795 3796**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT 3797 3798**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3799 3800**参数:** 3801 3802 | **参数名** | **类型** | **必填** | **说明** | 3803 | -------- | -------- | -------- | -------- | 3804 | type | string | 是 | 固定填"hotspotStaLeave"字符串。 | 3805 | callback | Callback<StationInf]> | 是 | 状态改变回调函数。 | 3806 3807**错误码:** 3808 3809以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3810 3811| **错误码ID** | **错误信息** | 3812 | -------- | -------- | 3813| 2601000 | Operation failed.| 3814 3815## wifiManager.off('hotspotStaLeave')<sup>9+</sup> 3816 3817off(type: "hotspotStaLeave", callback?: Callback<StationInfo>): void 3818 3819取消注册wifi热点sta离开事件。 3820 3821**系统接口:** 此接口为系统接口。 3822 3823**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT 3824 3825**系统能力:** SystemCapability.Communication.WiFi.AP.Core 3826 3827**参数:** 3828 3829| **参数名** | **类型** | **必填** | **说明** | 3830| -------- | -------- | -------- | -------- | 3831| type | string | 是 | 固定填"hotspotStaLeave"字符串。 | 3832| callback | Callback<StationInf]> | 否 | 状态改变回调函数。 | 3833 3834**错误码:** 3835 3836以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3837 3838| **错误码ID** | **错误信息** | 3839 | -------- | -------- | 3840| 2601000 | Operation failed.| 3841 3842**示例:** 3843```ts 3844import wifiManager from '@ohos.wifiManager'; 3845 3846let recvHotspotStaLeaveFunc = (result:wifiManager.StationInfo) => { 3847 console.info("Receive hotspot sta leave event: " + result); 3848} 3849 3850// Register event 3851wifiManager.on("hotspotStaLeave", recvHotspotStaLeaveFunc); 3852 3853// Unregister event 3854wifiManager.off("hotspotStaLeave", recvHotspotStaLeaveFunc); 3855 3856``` 3857 3858## wifiManager.on('p2pStateChange')<sup>9+</sup> 3859 3860on(type: "p2pStateChange", callback: Callback<number>): void 3861 3862注册P2P开关状态改变事件。 3863 3864**需要权限:** ohos.permission.GET_WIFI_INFO 3865 3866**系统能力:** SystemCapability.Communication.WiFi.P2P 3867 3868**参数:** 3869 3870| **参数名** | **类型** | **必填** | **说明** | 3871| -------- | -------- | -------- | -------- | 3872| type | string | 是 | 固定填"p2pStateChange"字符串。 | 3873| callback | Callback<number> | 是 | 状态改变回调函数。 | 3874 3875** P2P状态改变事件的枚举:** 3876 3877| **枚举值** | **说明** | 3878| -------- | -------- | 3879| 1 | 空闲。 | 3880| 2 | 打开中。 | 3881| 3 | 已打开。 | 3882| 4 | 关闭中。 | 3883| 5 | 已关闭。 | 3884 3885**错误码:** 3886 3887以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3888 3889| **错误码ID** | **错误信息** | 3890 | -------- | -------- | 3891| 2801000 | Operation failed.| 3892 3893## wifiManager.off('p2pStateChange')<sup>9+</sup> 3894 3895off(type: "p2pStateChange", callback?: Callback<number>): void 3896 3897取消注册P2P开关状态改变事件。 3898 3899**需要权限:** ohos.permission.GET_WIFI_INFO 3900 3901**系统能力:** SystemCapability.Communication.WiFi.P2P 3902 3903**参数:** 3904 3905 | **参数名** | **类型** | **必填** | **说明** | 3906 | -------- | -------- | -------- | -------- | 3907 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 3908 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3909 3910**错误码:** 3911 3912以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3913 3914| **错误码ID** | **错误信息** | 3915 | -------- | -------- | 3916| 2801000 | Operation failed.| 3917 3918**示例:** 3919```ts 3920 import wifiManager from '@ohos.wifiManager'; 3921 3922 let recvP2pStateChangeFunc = (result:number) => { 3923 console.info("Receive p2p state change event: " + result); 3924 } 3925 3926 // Register event 3927 wifiManager.on("p2pStateChange", recvP2pStateChangeFunc); 3928 3929 // Unregister event 3930 wifiManager.off("p2pStateChange", recvP2pStateChangeFunc); 3931``` 3932 3933## wifiManager.on('p2pConnectionChange')<sup>9+</sup> 3934 3935on(type: "p2pConnectionChange", callback: Callback<WifiP2pLinkedInfo>): void 3936 3937注册P2P连接状态改变事件。 3938 3939**需要权限:** ohos.permission.GET_WIFI_INFO 3940 3941**系统能力:** SystemCapability.Communication.WiFi.P2P 3942 3943**参数:** 3944 3945 | **参数名** | **类型** | **必填** | **说明** | 3946 | -------- | -------- | -------- | -------- | 3947 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 3948 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 是 | 状态改变回调函数。 | 3949 3950**错误码:** 3951 3952以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3953 3954| **错误码ID** | **错误信息** | 3955 | -------- | -------- | 3956| 2801000 | Operation failed.| 3957 3958## wifiManager.off('p2pConnectionChange')<sup>9+</sup> 3959 3960off(type: "p2pConnectionChange", callback?: Callback<WifiP2pLinkedInfo>): void 3961 3962取消注册P2P连接状态改变事件。 3963 3964**需要权限:** ohos.permission.GET_WIFI_INFO 3965 3966**系统能力:** SystemCapability.Communication.WiFi.P2P 3967 3968**参数:** 3969 3970 | **参数名** | **类型** | **必填** | **说明** | 3971 | -------- | -------- | -------- | -------- | 3972 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 3973 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 3974 3975**错误码:** 3976 3977以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 3978 3979| **错误码ID** | **错误信息** | 3980 | -------- | -------- | 3981| 2801000 | Operation failed.| 3982 3983**示例:** 3984```ts 3985 import wifiManager from '@ohos.wifiManager'; 3986 3987 let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => { 3988 console.info("Receive p2p connection change event: " + result); 3989 } 3990 3991 // Register event 3992 wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 3993 3994 // Unregister event 3995 wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc); 3996``` 3997 3998## wifiManager.on('p2pDeviceChange')<sup>9+</sup> 3999 4000on(type: "p2pDeviceChange", callback: Callback<WifiP2pDevice>): void 4001 4002注册P2P设备状态改变事件。 4003 4004**需要权限:** 4005 4006API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 4007 4008API 10起:ohos.permission.GET_WIFI_INFO 4009 4010**系统能力:** SystemCapability.Communication.WiFi.P2P 4011 4012**参数:** 4013 4014 | **参数名** | **类型** | **必填** | **说明** | 4015 | -------- | -------- | -------- | -------- | 4016 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 4017 | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | 是 | 状态改变回调函数。 | 4018 4019**错误码:** 4020 4021以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4022 4023| **错误码ID** | **错误信息** | 4024 | -------- | -------- | 4025| 2801000 | Operation failed.| 4026 4027## wifiManager.off('p2pDeviceChange')<sup>9+</sup> 4028 4029off(type: "p2pDeviceChange", callback?: Callback<WifiP2pDevice>): void 4030 4031取消注册P2P设备状态改变事件。 4032 4033**需要权限:** 4034 4035API 9:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 4036 4037API 10起:无 4038 4039**系统能力:** SystemCapability.Communication.WiFi.P2P 4040 4041**参数:** 4042 4043 | **参数名** | **类型** | **必填** | **说明** | 4044 | -------- | -------- | -------- | -------- | 4045 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 4046 | callback | Callback<[WifiP2pDevice](#wifip2pdevice9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 4047 4048**错误码:** 4049 4050以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4051 4052| **错误码ID** | **错误信息** | 4053 | -------- | -------- | 4054| 2801000 | Operation failed.| 4055 4056**示例:** 4057```ts 4058 import wifiManager from '@ohos.wifiManager'; 4059 4060 let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => { 4061 console.info("Receive p2p device change event: " + result); 4062 } 4063 4064 // Register event 4065 wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 4066 4067 // Unregister event 4068 wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc); 4069``` 4070 4071## wifiManager.on('p2pPeerDeviceChange')<sup>9+</sup> 4072 4073on(type: "p2pPeerDeviceChange", callback: Callback<WifiP2pDevice[]>): void 4074 4075注册P2P对端设备状态改变事件。 4076 4077**需要权限:** 4078 4079API 9:ohos.permission.GET_WIFI_INFO、ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 4080 4081API 10起:ohos.permission.GET_WIFI_INFO 4082 4083**系统能力:** SystemCapability.Communication.WiFi.P2P 4084 4085**参数:** 4086 4087| **参数名** | **类型** | **必填** | **说明** | 4088| -------- | -------- | -------- | -------- | 4089| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 4090| callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | 是 | 状态改变回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 4091 4092**错误码:** 4093 4094以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4095 4096| **错误码ID** | **错误信息** | 4097 | -------- | -------- | 4098| 2801000 | Operation failed.| 4099 4100## wifiManager.off('p2pPeerDeviceChange')<sup>9+</sup> 4101 4102off(type: "p2pPeerDeviceChange", callback?: Callback<WifiP2pDevice[]>): void 4103 4104取消注册P2P对端设备状态改变事件。 4105 4106**需要权限:** 4107 4108API 9:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 4109 4110API 10起:无 4111 4112**系统能力:** SystemCapability.Communication.WiFi.P2P 4113 4114**参数:** 4115 4116| **参数名** | **类型** | **必填** | **说明** | 4117| -------- | -------- | -------- | -------- | 4118| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 4119| callback | Callback<[WifiP2pDevice[]](#wifip2pdevice9)> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 | 4120 4121**错误码:** 4122 4123以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4124 4125| **错误码ID** | **错误信息** | 4126 | -------- | -------- | 4127| 2801000 | Operation failed.| 4128 4129**示例:** 4130```ts 4131 import wifiManager from '@ohos.wifiManager'; 4132 4133 let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => { 4134 console.info("Receive p2p peer device change event: " + result); 4135 } 4136 4137 // Register event 4138 wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 4139 4140 // Unregister event 4141 wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 4142``` 4143 4144## wifiManager.on('p2pPersistentGroupChange')<sup>9+</sup> 4145 4146on(type: "p2pPersistentGroupChange", callback: Callback<void>): void 4147 4148注册P2P永久组状态改变事件。 4149 4150**需要权限:** ohos.permission.GET_WIFI_INFO 4151 4152**系统能力:** SystemCapability.Communication.WiFi.P2P 4153 4154**参数:** 4155 4156 | **参数名** | **类型** | **必填** | **说明** | 4157 | -------- | -------- | -------- | -------- | 4158 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 4159 | callback | Callback<void> | 是 | 状态改变回调函数。 | 4160 4161**错误码:** 4162 4163以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4164 4165| **错误码ID** | **错误信息** | 4166 | -------- | -------- | 4167| 2801000 | Operation failed.| 4168 4169## wifiManager.off('p2pPersistentGroupChange')<sup>9+</sup> 4170 4171off(type: "p2pPersistentGroupChange", callback?: Callback<void>): void 4172 4173取消注册P2P永久组状态改变事件。 4174 4175**需要权限:** ohos.permission.GET_WIFI_INFO 4176 4177**系统能力:** SystemCapability.Communication.WiFi.P2P 4178 4179**参数:** 4180 4181| **参数名** | **类型** | **必填** | **说明** | 4182| -------- | -------- | -------- | -------- | 4183| type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 4184| callback | Callback<void> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 4185 4186**错误码:** 4187 4188以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4189 4190| **错误码ID** | **错误信息** | 4191 | -------- | -------- | 4192| 2801000 | Operation failed.| 4193 4194**示例:** 4195```ts 4196 import wifiManager from '@ohos.wifiManager'; 4197 4198 let recvP2pPersistentGroupChangeFunc = (result:void) => { 4199 console.info("Receive p2p persistent group change event: " + result); 4200 } 4201 4202 // Register event 4203 wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 4204 4205 // Unregister event 4206 wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 4207``` 4208 4209## wifiManager.on('p2pDiscoveryChange')<sup>9+</sup> 4210 4211on(type: "p2pDiscoveryChange", callback: Callback<number>): void 4212 4213注册发现设备状态改变事件。 4214 4215**需要权限:** ohos.permission.GET_WIFI_INFO 4216 4217**系统能力:** SystemCapability.Communication.WiFi.P2P 4218 4219**参数:** 4220 4221 | **参数名** | **类型** | **必填** | **说明** | 4222 | -------- | -------- | -------- | -------- | 4223 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 4224 | callback | Callback<number> | 是 | 状态改变回调函数。 | 4225 4226**发现设备状态改变事件的枚举:** 4227 4228| **枚举值** | **说明** | 4229| -------- | -------- | 4230| 0 | 初始状态。 | 4231| 1 | 发现成功。 | 4232 4233**错误码:** 4234 4235以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4236 4237| **错误码ID** | **错误信息** | 4238 | -------- | -------- | 4239| 2801000 | Operation failed.| 4240 4241## wifiManager.off('p2pDiscoveryChange')<sup>9+</sup> 4242 4243off(type: "p2pDiscoveryChange", callback?: Callback<number>): void 4244 4245取消注册发现设备状态改变事件。 4246 4247**需要权限:** ohos.permission.GET_WIFI_INFO 4248 4249**系统能力:** SystemCapability.Communication.WiFi.P2P 4250 4251**参数:** 4252 4253 | **参数名** | **类型** | **必填** | **说明** | 4254 | -------- | -------- | -------- | -------- | 4255 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 4256 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 | 4257 4258**错误码:** 4259 4260以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)。 4261 4262| **错误码ID** | **错误信息** | 4263 | -------- | -------- | 4264| 2801000 | Operation failed.| 4265 4266**示例:** 4267```ts 4268 import wifiManager from '@ohos.wifiManager'; 4269 4270 let recvP2pDiscoveryChangeFunc = (result:number) => { 4271 console.info("Receive p2p discovery change event: " + result); 4272 } 4273 4274 // Register event 4275 wifiManager.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); 4276 4277 // Unregister event 4278 wifiManager.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc); 4279```