1# @ohos.wifi (WLAN) 2该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。 3 4> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 5> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6 7 8## 导入模块 9 10```js 11import wifi from '@ohos.wifi'; 12``` 13 14## wifi.enableWifi 15 16enableWifi(): boolean 17 18使能WLAN。 19 20**系统接口:** 此接口为系统接口。 21 22**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 23 24**系统能力:** SystemCapability.Communication.WiFi.STA 25 26**返回值:** 27 28 | **类型** | **说明** | 29 | -------- | -------- | 30 | boolean | true:操作成功, false:操作失败。| 31 32 33## wifi.disableWifi 34 35disableWifi(): boolean 36 37去使能WLAN。 38 39**系统接口:** 此接口为系统接口。 40 41**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 42 43**系统能力:** SystemCapability.Communication.WiFi.STA 44 45**返回值:** 46 47 | **类型** | **说明** | 48 | -------- | -------- | 49 | boolean | true:操作成功, false:操作失败。| 50 51 52## wifi.isWifiActive 53 54isWifiActive(): boolean 55 56查询WLAN是否已使能。 57 58**需要权限:** ohos.permission.GET_WIFI_INFO 59 60**系统能力:** SystemCapability.Communication.WiFi.STA 61 62**返回值:** 63 64 | **类型** | **说明** | 65 | -------- | -------- | 66 | boolean | true:已使能, false:未使能。 | 67 68 69## wifi.scan 70 71scan(): boolean 72 73启动WLAN扫描。 74 75**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.LOCATION 76 77**系统能力:** SystemCapability.Communication.WiFi.STA 78 79**返回值:** 80 81 | **类型** | **说明** | 82 | -------- | -------- | 83 | boolean | true:扫描操作执行成功, false:扫描操作执行失败。 | 84 85 86## wifi.getScanInfos 87 88getScanInfos(): Promise<Array<WifiScanInfo>> 89 90获取扫描结果,使用Promise异步回调。 91 92**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION) 93 94**系统能力:** SystemCapability.Communication.WiFi.STA 95 96**返回值:** 97 98 | **类型** | **说明** | 99 | -------- | -------- | 100 | Promise< Array<[WifiScanInfo](#wifiscaninfo)> > | Promise对象。返回扫描到的热点列表。 | 101 102 103## wifi.getScanInfos 104 105getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void 106 107获取扫描结果,使用callback异步回调。 108 109**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION) 110 111**系统能力:** SystemCapability.Communication.WiFi.STA 112 113**参数:** 114 115 | **参数名** | **类型** | **必填** | **说明** | 116 | -------- | -------- | -------- | -------- | 117 | callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo)>> | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 | 118 119**示例:** 120 ```js 121 import wifi from '@ohos.wifi'; 122 123 wifi.getScanInfos((err, result) => { 124 if (err) { 125 console.error("get scan info error"); 126 return; 127 } 128 129 var len = Object.keys(result).length; 130 console.log("wifi received scan info: " + len); 131 for (var i = 0; i < len; ++i) { 132 console.info("ssid: " + result[i].ssid); 133 console.info("bssid: " + result[i].bssid); 134 console.info("capabilities: " + result[i].capabilities); 135 console.info("securityType: " + result[i].securityType); 136 console.info("rssi: " + result[i].rssi); 137 console.info("band: " + result[i].band); 138 console.info("frequency: " + result[i].frequency); 139 console.info("channelWidth: " + result[i].channelWidth); 140 console.info("timestamp: " + result[i].timestamp); 141 } 142 }); 143 144 wifi.getScanInfos().then(result => { 145 var len = Object.keys(result).length; 146 console.log("wifi received scan info: " + len); 147 for (var i = 0; i < len; ++i) { 148 console.info("ssid: " + result[i].ssid); 149 console.info("bssid: " + result[i].bssid); 150 console.info("capabilities: " + result[i].capabilities); 151 console.info("securityType: " + result[i].securityType); 152 console.info("rssi: " + result[i].rssi); 153 console.info("band: " + result[i].band); 154 console.info("frequency: " + result[i].frequency); 155 console.info("channelWidth: " + result[i].channelWidth); 156 console.info("timestamp: " + result[i].timestamp); 157 } 158 }); 159 ``` 160 161 162## WifiScanInfo 163 164WLAN热点信息。 165 166**系统能力:** SystemCapability.Communication.WiFi.STA 167 168 169| **名称** | **类型** | **可读** | **可写** | **说明** | 170| -------- | -------- | -------- | -------- | -------- | 171| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 | 172| bssid | string | 是 | 否 | 热点的BSSID。 | 173| capabilities | string | 是 | 否 | 热点能力。 | 174| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | WLAN加密类型。 | 175| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 | 176| band | number | 是 | 否 | WLAN接入点的频段。 | 177| frequency | number | 是 | 否 | WLAN接入点的频率。 | 178| channelWidth | number | 是 | 否 | WLAN接入点的带宽。 | 179| timestamp | number | 是 | 否 | 时间戳。 | 180 181 182## WifiSecurityType 183 184表示加密类型的枚举。 185 186**系统能力:** SystemCapability.Communication.WiFi.Core 187 188 189| **名称** | **值** | **说明** | 190| -------- | -------- | -------- | 191| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 | 192| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。 | 193| WIFI_SEC_TYPE_WEP | 2 | Wired Equivalent Privacy (WEP)加密类型。 | 194| WIFI_SEC_TYPE_PSK | 3 | Pre-shared key (PSK)加密类型。 | 195| WIFI_SEC_TYPE_SAE | 4 | Simultaneous Authentication of Equals (SAE)加密类型。 | 196 197 198## wifi.getScanInfosSync<sup>9+</sup> 199 200getScanInfosSync(): Array<[WifiScanInfo](#wifiscaninfo)> 201 202获取扫描结果,使用同步方式返回结果。 203 204**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 ohos.permission.LOCATION) 205 206**系统能力:** SystemCapability.Communication.WiFi.STA 207 208**返回值:** 209 210 | **类型** | **说明** | 211 | -------- | -------- | 212 | Array<[WifiScanInfo](#wifiscaninfo)> | 扫描结果数组。 | 213 214 215## wifi.addDeviceConfig 216 217addDeviceConfig(config: WifiDeviceConfig): Promise<number> 218 219添加网络配置,使用Promise异步回调。 220 221**系统接口:** 此接口为系统接口。 222 223**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 224 225**系统能力:** SystemCapability.Communication.WiFi.STA 226 227**参数:** 228 229 | **参数名** | **类型** | **必填** | **说明** | 230 | -------- | -------- | -------- | -------- | 231 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 232 233**返回值:** 234 235 | **类型** | **说明** | 236 | -------- | -------- | 237 | Promise<number> | Promise对象。返回添加的网络配置ID,如果值为-1表示添加失败。 | 238 239## WifiDeviceConfig 240 241WLAN配置信息。 242 243**系统能力:** SystemCapability.Communication.WiFi.STA 244 245 246| **名称** | **类型** | **可读** | **可写** | **说明** | 247| -------- | -------- | -------- | -------- | -------- | 248| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 | 249| bssid | string | 是 | 否 | 热点的BSSID。 | 250| preSharedKey | string | 是 | 否 | 热点的密钥。 | 251| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 | 252| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | 加密类型。 | 253| creatorUid | number | 是 | 否 | 创建用户的ID。 <br /> **系统接口:** 此接口为系统接口。 | 254| disableReason | number | 是 | 否 | 禁用原因。 <br /> **系统接口:** 此接口为系统接口。 | 255| netId | number | 是 | 否 | 分配的网络ID。 <br /> **系统接口:** 此接口为系统接口。 | 256| randomMacType | number | 是 | 否 | 随机MAC类型。 <br /> **系统接口:** 此接口为系统接口。 | 257| randomMacAddr | string | 是 | 否 | 随机MAC地址。 <br /> **系统接口:** 此接口为系统接口。 | 258| ipType | [IpType](#iptype7) | 是 | 否 | IP地址类型。 <br /> **系统接口:** 此接口为系统接口。 | 259| staticIp | [IpConfig](#ipconfig7) | 是 | 否 | 静态IP配置信息。 <br /> **系统接口:** 此接口为系统接口。 | 260 261 262## IpType<sup>7+</sup> 263 264表示IP类型的枚举。 265 266**系统接口:** 此接口为系统接口。 267 268**系统能力:** SystemCapability.Communication.WiFi.STA 269 270 271| 名称 | 值 | 说明 | 272| -------- | -------- | -------- | 273| STATIC | 0 | 静态IP。 | 274| DHCP | 1 | 通过DHCP获取。 | 275| UNKNOWN | 2 | 未指定。 | 276 277 278## IpConfig<sup>7+</sup> 279 280IP配置信息。 281 282**系统接口:** 此接口为系统接口。 283 284**系统能力:** SystemCapability.Communication.WiFi.STA 285 286| **名称** | **类型** | **可读** | **可写** | **说明** | 287| -------- | -------- | -------- | -------- | -------- | 288| ipAddress | number | 是 | 否 | IP地址。 | 289| gateway | number | 是 | 否 | 网关。 | 290| dnsServers | number[] | 是 | 否 | DNS服务器。 | 291| domains | Array<string> | 是 | 否 | 域信息。 | 292 293 294## wifi.addDeviceConfig 295 296addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback<number>): void 297 298添加网络配置,使用callback异步回调。 299 300**系统接口:** 此接口为系统接口。 301 302**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 303 304**系统能力:** SystemCapability.Communication.WiFi.STA 305 306**参数:** 307 308 | **参数名** | **类型** | **必填** | **说明** | 309 | -------- | -------- | -------- | -------- | 310 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 311 | callback | AsyncCallback<number> | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。当error为非0,表示处理出现错误。 | 312 313 314## wifi.addUntrustedConfig<sup>7+</sup> 315 316addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> 317 318添加不可信网络配置,使用Promise异步回调。 319 320**需要权限:** ohos.permission.SET_WIFI_INFO 321 322**系统能力:** SystemCapability.Communication.WiFi.STA 323 324**参数:** 325 326 | **参数名** | **类型** | **必填** | **说明** | 327 | -------- | -------- | -------- | -------- | 328 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 329 330**返回值:** 331 332 | **类型** | **说明** | 333 | -------- | -------- | 334 | Promise<boolean> | Promise对象。表示操作结果,true: 成功, false: 失败。 | 335 336 337## wifi.addUntrustedConfig<sup>7+</sup> 338 339addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void 340 341添加不可信网络配置,使用callback异步回调。 342 343**需要权限:** ohos.permission.SET_WIFI_INFO 344 345**系统能力:** SystemCapability.Communication.WiFi.STA 346 347**参数:** 348 349 | **参数名** | **类型** | **必填** | **说明** | 350 | -------- | -------- | -------- | -------- | 351 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 352 | callback | AsyncCallback<boolean> | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 | 353 354 355## wifi.removeUntrustedConfig<sup>7+</sup> 356 357removeUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> 358 359移除不可信网络配置,使用Promise异步回调。 360 361**需要权限:** ohos.permission.SET_WIFI_INFO 362 363**系统能力:** SystemCapability.Communication.WiFi.STA 364 365**参数:** 366 367 | **参数名** | **类型** | **必填** | **说明** | 368 | -------- | -------- | -------- | -------- | 369 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 370 371**返回值:** 372 373 | **类型** | **说明** | 374 | -------- | -------- | 375 | Promise<boolean> | Promise对象。表示操作结果,true: 成功, false: 失败。 | 376 377 378## wifi.removeUntrustedConfig<sup>7+</sup> 379 380removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void 381 382移除不可信网络配置,使用callback异步回调。 383 384**需要权限:** ohos.permission.SET_WIFI_INFO 385 386**系统能力:** SystemCapability.Communication.WiFi.STA 387 388**参数:** 389 390 | **参数名** | **类型** | **必填** | **说明** | 391 | -------- | -------- | -------- | -------- | 392 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 393 | callback | AsyncCallback<boolean> | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 | 394 395 396## wifi.connectToNetwork 397 398connectToNetwork(networkId: number): boolean 399 400连接到指定网络。 401 402**系统接口:** 此接口为系统接口。 403 404**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 405 406**系统能力:** SystemCapability.Communication.WiFi.STA 407 408**参数:** 409 410 | **参数名** | **类型** | **必填** | **说明** | 411 | -------- | -------- | -------- | -------- | 412 | networkId | number | 是 | 待连接的网络配置ID。 | 413 414**返回值:** 415 416 | **类型** | **说明** | 417 | -------- | -------- | 418 | boolean | true:操作成功, false:操作失败。 | 419 420 421## wifi.connectToDevice 422 423connectToDevice(config: WifiDeviceConfig): boolean 424 425连接到指定网络。 426 427**系统接口:** 此接口为系统接口。 428 429**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 和 ohos.permissio.MANAGE_WIFI_CONNECTION,仅系统应用可用。 430 431**系统能力:** 432 SystemCapability.Communication.WiFi.STA 433 434**参数:** 435 436 | **参数名** | **类型** | **必填** | **说明** | 437 | -------- | -------- | -------- | -------- | 438 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 439 440**返回值:** 441 442 | **类型** | **说明** | 443 | -------- | -------- | 444 | boolean | true:操作成功, false:操作失败。 | 445 446 447## wifi.disconnect 448 449disconnect(): boolean 450 451断开连接的网络。 452 453**系统接口:** 此接口为系统接口。 454 455**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 456 457**系统能力:** 458 SystemCapability.Communication.WiFi.STA 459 460**返回值:** 461 462 | **类型** | **说明** | 463 | -------- | -------- | 464 | boolean | true:操作成功, false:操作失败。 | 465 466 467## wifi.getSignalLevel 468 469getSignalLevel(rssi: number, band: number): number 470 471查询WLAN信号强度。 472 473**需要权限:** ohos.permission.GET_WIFI_INFO 474 475**系统能力:** SystemCapability.Communication.WiFi.STA 476 477**参数:** 478 479 | **参数名** | **类型** | **必填** | **说明** | 480 | -------- | -------- | -------- | -------- | 481 | rssi | number | 是 | 热点的信号强度(dBm)。 | 482 | band | number | 是 | WLAN接入点的频段。 | 483 484**返回值:** 485 486 | **类型** | **说明** | 487 | -------- | -------- | 488 | number | 信号强度,取值范围为[0, 4]。 | 489 490 491## wifi.getLinkedInfo 492 493getLinkedInfo(): Promise<WifiLinkedInfo> 494 495获取WLAN连接信息,使用Promise异步回调。 496 497**需要权限:** ohos.permission.GET_WIFI_INFO 498 499**系统能力:** SystemCapability.Communication.WiFi.STA 500 501**返回值:** 502 503 | 类型 | 说明 | 504 | -------- | -------- | 505 | Promise<[WifiLinkedInfo](#wifilinkedinfo)> | Promise对象。表示WLAN连接信息。 | 506 507 508## wifi.getLinkedInfo 509 510getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void 511 512获取WLAN连接信息,使用callback异步回调。 513 514**需要权限:** ohos.permission.GET_WIFI_INFO 515 516**系统能力:** SystemCapability.Communication.WiFi.STA 517 518**参数:** 519 520 | 参数名 | 类型 | 必填 | 说明 | 521 | -------- | -------- | -------- | -------- | 522 | callback | AsyncCallback<[WifiLinkedInfo](#wifilinkedinfo)> | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果error为非0,表示处理出现错误。 | 523 524**示例:** 525 ```js 526 import wifi from '@ohos.wifi'; 527 528 wifi.getLinkedInfo((err, data) => { 529 if (err) { 530 console.error("get linked info error"); 531 return; 532 } 533 console.info("get wifi linked info: " + JSON.stringify(data)); 534 }); 535 536 wifi.getLinkedInfo().then(data => { 537 console.info("get wifi linked info: " + JSON.stringify(data)); 538 }).catch(error => { 539 console.info("get linked info error"); 540 }); 541 ``` 542 543 544## WifiLinkedInfo 545 546提供WLAN连接的相关信息。 547 548**系统能力:** SystemCapability.Communication.WiFi.STA 549 550| 名称 | 类型 | 可读 | 可写 | 说明 | 551| -------- | -------- | -------- | -------- | -------- | 552| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 | 553| bssid | string | 是 | 否 | 热点的BSSID。 | 554| networkId | number | 是 | 否 | 网络配置ID。 <br /> **系统接口:** 此接口为系统接口。 | 555| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 | 556| band | number | 是 | 否 | WLAN接入点的频段。 | 557| linkSpeed | number | 是 | 否 | WLAN接入点的速度。 | 558| frequency | number | 是 | 否 | WLAN接入点的频率。 | 559| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 | 560| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 | 561| chload | number | 是 | 否 | 连接负载,值越大表示负载约高。 <br /> **系统接口:** 此接口为系统接口。 | 562| snr | number | 是 | 否 | 信噪比。 <br /> **系统接口:** 此接口为系统接口。 | 563| macAddress | string | 是 | 否 | 设备的MAC地址。 | 564| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 | 565| suppState | [SuppState](#suppstate) | 是 | 否 | 请求状态。 <br /> **系统接口:** 此接口为系统接口。 | 566| connState | [ConnState](#connstate) | 是 | 否 | WLAN连接状态。 | 567 568 569## ConnState 570 571表示WLAN连接状态的枚举。 572 573**系统能力:** SystemCapability.Communication.WiFi.STA 574 575| 名称 | 值 | 说明 | 576| -------- | -------- | -------- | 577| SCANNING | 0 | 设备正在搜索可用的AP。 | 578| CONNECTING | 1 | 正在建立WLAN连接。 | 579| AUTHENTICATING | 2 | WLAN连接正在认证中。 | 580| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 | 581| CONNECTED | 4 | WLAN连接已建立。 | 582| DISCONNECTING | 5 | WLAN连接正在断开。 | 583| DISCONNECTED | 6 | WLAN连接已断开。 | 584| UNKNOWN | 7 | WLAN连接建立失败。 | 585 586 587## SuppState 588 589表示请求状态的枚举。 590 591**系统接口:** 此接口为系统接口。 592 593**系统能力:** SystemCapability.Communication.WiFi.STA 594 595| 名称 | 值 | 说明 | 596| -------- | -------- | -------- | 597| DISCONNECTED | 0 | 已断开。 | 598| INTERFACE_DISABLED | 1 | 接口禁用。 | 599| INACTIVE | 2 | 未激活。 | 600| SCANNING | 3 | 扫描中。 | 601| AUTHENTICATING | 4 | 认证中。 | 602| ASSOCIATING | 5 | 关联中。 | 603| ASSOCIATED | 6 | 已关联。 | 604| FOUR_WAY_HANDSHAKE | 7 | 四次握手。 | 605| GROUP_HANDSHAKE | 8 | 组握手。 | 606| COMPLETED | 9 | 所有认证已完成。 | 607| UNINITIALIZED | 10 | 连接建立失败。 | 608| INVALID | 11 | 无效值。 | 609 610 611## wifi.isConnected<sup>7+</sup> 612 613isConnected(): boolean 614 615查询WLAN是否已连接。 616 617**需要权限:** ohos.permission.GET_WIFI_INFO 618 619**系统能力:** SystemCapability.Communication.WiFi.STA 620 621**返回值:** 622 623 | **类型** | **说明** | 624 | -------- | -------- | 625 | boolean | true:已连接, false:未连接。 | 626 627 628## wifi.getSupportedFeatures<sup>7+</sup> 629 630getSupportedFeatures(): number 631 632查询设备支持的特性。 633 634**系统接口:** 此接口为系统接口。 635 636**需要权限:** ohos.permission.GET_WIFI_INFO 637 638**系统能力:** SystemCapability.Communication.WiFi.Core 639 640**返回值:** 641 642 | **类型** | **说明** | 643 | -------- | -------- | 644 | number | 支持的特性值。 | 645 646**特性ID值枚举:** 647 648| 枚举值 | 说明 | 649| -------- | -------- | 650| 0x0001 | 基础结构模式特性。 | 651| 0x0002 | 5 GHz带宽特性。 | 652| 0x0004 | GAS/ANQP特性。 | 653| 0x0008 | Wifi-Direct特性。 | 654| 0x0010 | Soft AP特性。 | 655| 0x0040 | Wi-Fi AWare组网特性。 | 656| 0x8000 | AP STA共存特性。 | 657| 0x8000000 | WPA3-Personal SAE特性。 | 658| 0x10000000 | WPA3-Enterprise Suite-B | 659| 0x20000000 | 增强开放特性。 | 660 661 662## wifi.isFeatureSupported<sup>7+</sup> 663 664isFeatureSupported(featureId: number): boolean 665 666判断设备是否支持相关WLAN特性。 667 668**需要权限:** ohos.permission.GET_WIFI_INFO 669 670**系统能力:** SystemCapability.Communication.WiFi.Core 671 672**参数:** 673 674 675 | **参数名** | **类型** | 必填 | **说明** | 676 | -------- | -------- | -------- | -------- | 677 | featureId | number | 是 | 特性ID值。 | 678 679**返回值:** 680 681 | **类型** | **说明** | 682 | -------- | -------- | 683 | boolean | true:支持, false:不支持。 | 684 685 686## wifi.getDeviceMacAddress<sup>7+</sup> 687 688getDeviceMacAddress(): string[] 689 690获取设备的MAC地址。 691 692**系统接口:** 此接口为系统接口。 693 694**需要权限:** ohos.permission.GET_WIFI_LOCAL_MAC 和 ohos.permission.GET_WIFI_INFO,仅系统应用可用。 695 696**系统能力:** SystemCapability.Communication.WiFi.STA 697 698**返回值:** 699 700 | **类型** | **说明** | 701 | -------- | -------- | 702 | string[] | MAC地址。 | 703 704 705## wifi.getIpInfo<sup>7+</sup> 706 707getIpInfo(): IpInfo 708 709获取IP信息。 710 711**需要权限:** ohos.permission.GET_WIFI_INFO 712 713**系统能力:** SystemCapability.Communication.WiFi.STA 714 715**返回值:** 716 717 | **类型** | **说明** | 718 | -------- | -------- | 719 | [IpInfo](#ipinfo7) | IP信息。 | 720 721 722## IpInfo<sup>7+</sup> 723 724IP信息。 725 726**系统能力:** SystemCapability.Communication.WiFi.STA 727 728| **名称** | **类型** | **可读** | **可写** | **说明** | 729| -------- | -------- | -------- | -------- | -------- | 730| ipAddress | number | 是 | 否 | IP地址。 | 731| gateway | number | 是 | 否 | 网关。 | 732| netmask | number | 是 | 否 | 掩码。 | 733| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 | 734| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 | 735| serverIp | number | 是 | 否 | DHCP服务端IP地址。 | 736| leaseDuration | number | 是 | 否 | IP地址租用时长。 | 737 738 739## wifi.getCountryCode<sup>7+</sup> 740 741getCountryCode(): string 742 743获取国家码信息。 744 745**需要权限:** ohos.permission.GET_WIFI_INFO 746 747**系统能力:** SystemCapability.Communication.WiFi.Core 748 749**返回值:** 750 751 | **类型** | **说明** | 752 | -------- | -------- | 753 | string | 国家码。 | 754 755 756## wifi.reassociate<sup>7+</sup> 757 758reassociate(): boolean 759 760重新关联网络。 761 762**系统接口:** 此接口为系统接口。 763 764**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 765 766**系统能力:** SystemCapability.Communication.WiFi.STA 767 768**返回值:** 769 770 | **类型** | **说明** | 771 | -------- | -------- | 772 | boolean | true:操作成功, false:操作失败。 | 773 774 775## wifi.reconnect<sup>7+</sup> 776 777reconnect(): boolean 778 779重新连接网络。 780 781**系统接口:** 此接口为系统接口。 782 783**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 784 785**系统能力:** SystemCapability.Communication.WiFi.STA 786 787**返回值:** 788 789 | **类型** | **说明** | 790 | -------- | -------- | 791 | boolean | true:操作成功, false:操作失败。 | 792 793 794## wifi.getDeviceConfigs<sup>7+</sup> 795 796getDeviceConfigs(): Array<[WifiDeviceConfig](#wifideviceconfig)> 797 798获取网络配置。 799 800**系统接口:** 此接口为系统接口。 801 802**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.GET_WIFI_CONFIG 803 804**系统能力:** SystemCapability.Communication.WiFi.STA 805 806**返回值:** 807 808 | **类型** | **说明** | 809 | -------- | -------- | 810 | Array<[WifiDeviceConfig](#wifideviceconfig)> | 网络配置信息的数组。 | 811 812 813## wifi.updateNetwork<sup>7+</sup> 814 815updateNetwork(config: WifiDeviceConfig): number 816 817更新网络配置。 818 819**系统接口:** 此接口为系统接口。 820 821**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 822 823**系统能力:** SystemCapability.Communication.WiFi.STA 824 825**参数:** 826 827 | **参数名** | **类型** | **必填** | **说明** | 828 | -------- | -------- | -------- | -------- | 829 | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 | 830 831**返回值:** 832 833 | **类型** | **说明** | 834 | -------- | -------- | 835 | number | 返回更新的网络配置ID,如果值为-1表示更新失败。 | 836 837 838## wifi.disableNetwork<sup>7+</sup> 839 840disableNetwork(netId: number): boolean 841 842去使能网络配置。 843 844**系统接口:** 此接口为系统接口。 845 846**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 847 848**系统能力:** SystemCapability.Communication.WiFi.STA 849 850**参数:** 851 852 | **参数名** | **类型** | **必填** | **说明** | 853 | -------- | -------- | -------- | -------- | 854 | netId | number | 是 | 网络配置ID。 | 855 856**返回值:** 857 858 | **类型** | **说明** | 859 | -------- | -------- | 860 | boolean | true:操作成功, false:操作失败。 | 861 862 863## wifi.removeAllNetwork<sup>7+</sup> 864 865removeAllNetwork(): boolean 866 867移除所有网络配置。 868 869**系统接口:** 此接口为系统接口。 870 871**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 872 873**系统能力:** SystemCapability.Communication.WiFi.STA 874 875**返回值:** 876 877 | **类型** | **说明** | 878 | -------- | -------- | 879 | boolean | true:操作成功, false:操作失败。 | 880 881 882## wifi.removeDevice<sup>7+</sup> 883 884removeDevice(id: number): boolean 885 886移除指定的网络配置。 887 888**系统接口:** 此接口为系统接口。 889 890**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 891 892**系统能力:** SystemCapability.Communication.WiFi.STA 893 894**参数:** 895 896 | **参数名** | **类型** | **必填** | **说明** | 897 | -------- | -------- | -------- | -------- | 898 | id | number | 是 | 网络配置ID。 | 899 900**返回值:** 901 902 | **类型** | **说明** | 903 | -------- | -------- | 904 | boolean | true:操作成功, false:操作失败。 | 905 906 907## wifi.enableHotspot<sup>7+</sup> 908 909enableHotspot(): boolean 910 911使能热点。 912 913**系统接口:** 此接口为系统接口。 914 915**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 916 917**系统能力:** SystemCapability.Communication.WiFi.AP.Core 918 919**返回值:** 920 921 | **类型** | **说明** | 922 | -------- | -------- | 923 | boolean | true:操作成功, false:操作失败。| 924 925 926## wifi.disableHotspot<sup>7+</sup> 927 928disableHotspot(): boolean 929 930去使能热点。 931 932**系统接口:** 此接口为系统接口。 933 934**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 935 936**系统能力:** SystemCapability.Communication.WiFi.AP.Core 937 938**返回值:** 939 940 | **类型** | **说明** | 941 | -------- | -------- | 942 | boolean | true:操作成功, false:操作失败。| 943 944 945## wifi.isHotspotDualBandSupported<sup>7+</sup> 946 947isHotspotDualBandSupported(): boolean 948 949热点是否支持双频。 950 951**系统接口:** 此接口为系统接口。 952 953**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 954 955**系统能力:** SystemCapability.Communication.WiFi.AP.Core 956 957**返回值:** 958 959 | **类型** | **说明** | 960 | -------- | -------- | 961 | boolean | true:支持, false:不支持。| 962 963 964## wifi.isHotspotActive<sup>7+</sup> 965 966isHotspotActive(): boolean 967 968热点是否已使能。 969 970**系统接口:** 此接口为系统接口。 971 972**需要权限:** ohos.permission.GET_WIFI_INFO 973 974**系统能力:** SystemCapability.Communication.WiFi.AP.Core 975 976**返回值:** 977 978 | **类型** | **说明** | 979 | -------- | -------- | 980 | boolean | true:已使能, false:未使能。| 981 982 983## wifi.setHotspotConfig<sup>7+</sup> 984 985setHotspotConfig(config: HotspotConfig): boolean 986 987设置热点配置信息。 988 989**系统接口:** 此接口为系统接口。 990 991**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 992 993**系统能力:** SystemCapability.Communication.WiFi.AP.Core 994 995**参数:** 996 997 | **参数名** | **类型** | **必填** | **说明** | 998 | -------- | -------- | -------- | -------- | 999 | config | [HotspotConfig](#hotspotconfig7) | 是 | 热点配置信息。 | 1000 1001**返回值:** 1002 1003 | **类型** | **说明** | 1004 | -------- | -------- | 1005 | boolean | true:操作成功, false:操作失败。 | 1006 1007 1008## HotspotConfig<sup>7+</sup> 1009 1010热点配置信息。 1011 1012**系统接口:** 此接口为系统接口。 1013 1014**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1015 1016| **名称** | **类型** | **可读** | **可写** | **说明** | 1017| -------- | -------- | -------- | -------- | -------- | 1018| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 | 1019| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | 加密类型。 | 1020| band | number | 是 | 否 | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 | 1021| preSharedKey | string | 是 | 否 | 热点的密钥。 | 1022| maxConn | number | 是 | 否 | 最大设备连接数。 | 1023 1024 1025## wifi.getHotspotConfig<sup>7+</sup> 1026 1027getHotspotConfig(): HotspotConfig 1028 1029获取热点配置信息。 1030 1031**系统接口:** 此接口为系统接口。 1032 1033**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG 1034 1035**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1036 1037**返回值:** 1038 1039 | **类型** | **说明** | 1040 | -------- | -------- | 1041 | [HotspotConfig](#hotspotconfig7) | 热点的配置信息。 | 1042 1043 1044## wifi.getStations<sup>7+</sup> 1045 1046getStations(): Array<[StationInfo](#stationinfo7)> 1047 1048获取连接的设备。 1049 1050**系统接口:** 此接口为系统接口。 1051 1052**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。 1053 1054**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1055 1056**返回值:** 1057 1058 | **类型** | **说明** | 1059 | -------- | -------- | 1060 | Array<[StationInfo](#stationinfo7)> | 连接的设备数组。 | 1061 1062 1063## StationInfo<sup>7+</sup> 1064 1065接入的设备信息。 1066 1067**系统接口:** 此接口为系统接口。 1068 1069**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1070 1071| **名称** | **类型** | **可读** | **可写** | **说明** | 1072| -------- | -------- | -------- | -------- | -------- | 1073| name | string | 是 | 否 | 设备名称。 | 1074| macAddress | string | 是 | 否 | MAC地址。 | 1075| ipAddress | string | 是 | 否 | IP地址。 | 1076 1077 1078## wifi.getP2pLinkedInfo<sup>8+</sup> 1079 1080getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> 1081 1082获取P2P连接信息,使用Promise异步回调。 1083 1084**需要权限:** ohos.permission.GET_WIFI_INFO 1085 1086**系统能力:** SystemCapability.Communication.WiFi.P2P 1087 1088**返回值:** 1089 1090 | 类型 | 说明 | 1091 | -------- | -------- | 1092 | Promise<[WifiP2pLinkedInfo](#wifip2plinkedinfo8)> | Promise对象。表示P2P连接信息。 | 1093 1094 1095 1096## WifiP2pLinkedInfo<sup>8+</sup> 1097 1098提供WLAN连接的相关信息。 1099 1100**系统能力:** SystemCapability.Communication.WiFi.P2P 1101 1102| 名称 | 类型 | 可读 | 可写 | 说明 | 1103| -------- | -------- | -------- | -------- | -------- | 1104| connectState | [P2pConnectState](#p2pconnectstate8) | 是 | 否 | P2P连接状态。 | 1105| isGroupOwner | boolean | 是 | 否 | 是否是群主。 | 1106| groupOwnerAddr | string | 是 | 否 | 群组MAC地址。 1107 1108 1109## P2pConnectState<sup>8+</sup> 1110 1111表示P2P连接状态的枚举。 1112 1113**系统能力:** SystemCapability.Communication.WiFi.P2P 1114 1115| 名称 | 值 | 说明 | 1116| -------- | -------- | -------- | 1117| DISCONNECTED | 0 | 断开状态。 | 1118| CONNECTED | 1 | 连接状态。 | 1119 1120 1121## wifi.getP2pLinkedInfo<sup>8+</sup> 1122 1123getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void 1124 1125获取P2P连接信息,使用callback异步回调。 1126 1127**需要权限:** ohos.permission.GET_WIFI_INFO 1128 1129**系统能力:** SystemCapability.Communication.WiFi.P2P 1130 1131**参数:** 1132 1133 | 参数名 | 类型 | 必填 | 说明 | 1134 | -------- | -------- | -------- | -------- | 1135 | callback | AsyncCallback<[WifiP2pLinkedInfo](#wifip2plinkedinfo8)> | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果error为非0,表示处理出现错误。 | 1136 1137 1138## wifi.getCurrentGroup<sup>8+</sup> 1139 1140getCurrentGroup(): Promise<WifiP2pGroupInfo> 1141 1142获取P2P当前组信息,使用Promise异步回调。 1143 1144**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1145 1146**系统能力:** SystemCapability.Communication.WiFi.P2P 1147 1148**返回值:** 1149 1150 | 类型 | 说明 | 1151 | -------- | -------- | 1152 | Promise<[WifiP2pGroupInfo](#wifip2pgroupinfo8)> | Promise对象。表示当前组信息。 | 1153 1154 1155## wifi.getCurrentGroup<sup>8+</sup> 1156 1157getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void 1158 1159获取P2P当前组信息,使用callback异步回调。 1160 1161**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1162 1163**系统能力:** SystemCapability.Communication.WiFi.P2P 1164 1165**参数:** 1166 1167 | 参数名 | 类型 | 必填 | 说明 | 1168 | -------- | -------- | -------- | -------- | 1169 | callback | AsyncCallback<[WifiP2pGroupInfo](#wifip2pgroupinfo8)> | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。 | 1170 1171 1172## wifi.getP2pPeerDevices<sup>8+</sup> 1173 1174getP2pPeerDevices(): Promise<WifiP2pDevice[]> 1175 1176获取P2P对端设备列表信息,使用Promise异步回调。 1177 1178**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1179 1180**系统能力:** SystemCapability.Communication.WiFi.P2P 1181 1182**返回值:** 1183 1184 | 类型 | 说明 | 1185 | -------- | -------- | 1186 | Promise<[WifiP2pDevice[]](#wifip2pdevice8)> | Promise对象。表示对端设备列表信息。 | 1187 1188 1189## wifi.getP2pPeerDevices<sup>8+</sup> 1190 1191getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void 1192 1193获取P2P对端设备列表信息,使用callback异步回调。 1194 1195**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1196 1197**系统能力:** SystemCapability.Communication.WiFi.P2P 1198 1199**参数:** 1200 1201 | 参数名 | 类型 | 必填 | 说明 | 1202 | -------- | -------- | -------- | -------- | 1203 | callback | AsyncCallback<[WifiP2pDevice[]](#wifip2pdevice8)> | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果error为非0,表示处理出现错误。 | 1204 1205 1206## WifiP2pDevice<sup>8+</sup> 1207 1208表示P2P设备信息。 1209 1210**系统能力:** SystemCapability.Communication.WiFi.P2P 1211 1212| 名称 | 类型 | 可读 | 可写 | 说明 | 1213| -------- | -------- | -------- | -------- | -------- | 1214| deviceName | string | 是 | 否 | 设备名称。 | 1215| deviceAddress | string | 是 | 否 | 设备MAC地址。 | 1216| primaryDeviceType | string | 是 | 否 | 主设备类型。 | 1217| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus8) | 是 | 否 | 设备状态。 | 1218| groupCapabilitys | number | 是 | 否 | 群组能力。 | 1219 1220 1221## P2pDeviceStatus<sup>8+</sup> 1222 1223表示设备状态的枚举。 1224 1225**系统能力:** SystemCapability.Communication.WiFi.P2P 1226 1227| 名称 | 值 | 说明 | 1228| -------- | -------- | -------- | 1229| CONNECTED | 0 | 连接状态。 | 1230| INVITED | 1 | 邀请状态。 | 1231| FAILED | 2 | 失败状态。 | 1232| AVAILABLE | 3 | 可用状态。 | 1233| UNAVAILABLE | 4 | 不可用状态。 | 1234 1235 1236## wifi.createGroup<sup>8+</sup> 1237 1238createGroup(config: WifiP2PConfig): boolean 1239 1240创建群组。 1241 1242**需要权限:** ohos.permission.GET_WIFI_INFO 1243 1244**系统能力:** SystemCapability.Communication.WiFi.P2P 1245 1246**参数:** 1247 1248 | **参数名** | **类型** | 必填 | **说明** | 1249 | -------- | -------- | -------- | -------- | 1250 | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 群组配置信息。 | 1251 1252**返回值:** 1253 1254 | 类型 | 说明 | 1255 | -------- | -------- | 1256 | boolean | true:创建群组操作执行成功, false:创建群组操作执行失败。 | 1257 1258 1259## WifiP2PConfig<sup>8+</sup> 1260 1261表示P2P配置信息。 1262 1263**系统能力:** SystemCapability.Communication.WiFi.P2P 1264 1265| 名称 | 类型 | 可读 | 可写 | 说明 | 1266| -------- | -------- | -------- | -------- | -------- | 1267| deviceAddress | string | 是 | 否 | 设备地址。 | 1268| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 | 1269| passphrase | string | 是 | 否 | 群组密钥。 | 1270| groupName | string | 是 | 否 | 群组名称。 | 1271| goBand | [GroupOwnerBand](#groupownerband8) | 是 | 否 | 群组带宽。 | 1272 1273 1274## GroupOwnerBand<sup>8+</sup> 1275 1276表示群组带宽的枚举。 1277 1278**系统能力:** SystemCapability.Communication.WiFi.P2P 1279 1280| 名称 | 值 | 说明 | 1281| -------- | -------- | -------- | 1282| GO_BAND_AUTO | 0 | 自动模式。 | 1283| GO_BAND_2GHZ | 1 | 2GHZ。 | 1284| GO_BAND_5GHZ | 2 | 5GHZ。 | 1285 1286 1287## wifi.removeGroup<sup>8+</sup> 1288 1289removeGroup(): boolean 1290 1291移除群组。 1292 1293**需要权限:** ohos.permission.GET_WIFI_INFO 1294 1295**系统能力:** SystemCapability.Communication.WiFi.P2P 1296 1297**返回值:** 1298 1299 | 类型 | 说明 | 1300 | -------- | -------- | 1301 | boolean | true:操作执行成功, false:操作执行失败。 | 1302 1303 1304## wifi.p2pConnect<sup>8+</sup> 1305 1306p2pConnect(config: WifiP2PConfig): boolean 1307 1308执行P2P连接。 1309 1310**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1311 1312**系统能力:** SystemCapability.Communication.WiFi.P2P 1313 1314**参数:** 1315 1316 1317 | **参数名** | **类型** | 必填 | **说明** | 1318 | -------- | -------- | -------- | -------- | 1319 | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 连接配置信息。 | 1320 1321**返回值:** 1322 1323 | 类型 | 说明 | 1324 | -------- | -------- | 1325 | boolean | true:操作执行成功, false:操作执行失败。 | 1326 1327 1328**示例:** 1329 ```js 1330 import wifi from '@ohos.wifi'; 1331 1332 var recvP2pConnectionChangeFunc = result => { 1333 console.info("p2p connection change receive event: " + JSON.stringify(result)); 1334 wifi.getP2pLinkedInfo((err, data) => { 1335 if (err) { 1336 console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err)); 1337 return; 1338 } 1339 console.info("get getP2pLinkedInfo: " + JSON.stringify(data)); 1340 }); 1341 } 1342 wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 1343 1344 var recvP2pDeviceChangeFunc = result => { 1345 console.info("p2p device change receive event: " + JSON.stringify(result)); 1346 } 1347 wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 1348 1349 var recvP2pPeerDeviceChangeFunc = result => { 1350 console.info("p2p peer device change receive event: " + JSON.stringify(result)); 1351 wifi.getP2pPeerDevices((err, data) => { 1352 if (err) { 1353 console.error('failed to get peer devices: ' + JSON.stringify(err)); 1354 return; 1355 } 1356 console.info("get peer devices: " + JSON.stringify(data)); 1357 var len = Object.keys(data).length; 1358 for (var i = 0; i < len; ++i) { 1359 if (data[i].deviceName === "my_test_device") { 1360 console.info("p2p connect to test device: " + data[i].deviceAddress); 1361 var config = { 1362 "deviceAddress":data[i].deviceAddress, 1363 "netId":-2, 1364 "passphrase":"", 1365 "groupName":"", 1366 "goBand":0, 1367 } 1368 wifi.p2pConnect(config); 1369 } 1370 } 1371 }); 1372 } 1373 wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 1374 1375 var recvP2pPersistentGroupChangeFunc = () => { 1376 console.info("p2p persistent group change receive event"); 1377 1378 wifi.getCurrentGroup((err, data) => { 1379 if (err) { 1380 console.error('failed to get current group: ' + JSON.stringify(err)); 1381 return; 1382 } 1383 console.info("get current group: " + JSON.stringify(data)); 1384 }); 1385 } 1386 wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 1387 1388 setTimeout(function() {wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000); 1389 setTimeout(function() {wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000); 1390 setTimeout(function() {wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000); 1391 setTimeout(function() {wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000); 1392 console.info("start discover devices -> " + wifi.startDiscoverDevices()); 1393 ``` 1394 1395## wifi.p2pCancelConnect<sup>8+</sup> 1396 1397p2pCancelConnect(): boolean 1398 1399取消P2P连接。 1400 1401**需要权限:** ohos.permission.GET_WIFI_INFO 1402 1403**系统能力:** SystemCapability.Communication.WiFi.P2P 1404 1405**返回值:** 1406 1407 | 类型 | 说明 | 1408 | -------- | -------- | 1409 | boolean | true:操作执行成功, false:操作执行失败。 | 1410 1411 1412## wifi.startDiscoverDevices<sup>8+</sup> 1413 1414startDiscoverDevices(): boolean 1415 1416开始发现设备。 1417 1418**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1419 1420**系统能力:** SystemCapability.Communication.WiFi.P2P 1421 1422**返回值:** 1423 1424 | 类型 | 说明 | 1425 | -------- | -------- | 1426 | boolean | true:操作执行成功, false:操作执行失败。 | 1427 1428 1429## wifi.stopDiscoverDevices<sup>8+</sup> 1430 1431stopDiscoverDevices(): boolean 1432 1433停止发现设备。 1434 1435**需要权限:** ohos.permission.GET_WIFI_INFO 1436 1437**系统能力:** SystemCapability.Communication.WiFi.P2P 1438 1439**返回值:** 1440 1441 | 类型 | 说明 | 1442 | -------- | -------- | 1443 | boolean | true:操作执行成功,操作执行失败。 | 1444 1445 1446## wifi.deletePersistentGroup<sup>8+</sup> 1447 1448deletePersistentGroup(netId: number): boolean 1449 1450删除永久组。 1451 1452**系统接口:** 此接口为系统接口。 1453 1454**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION 1455 1456**系统能力:** SystemCapability.Communication.WiFi.P2P 1457 1458**参数:** 1459 1460 1461 | **参数名** | **类型** | 必填 | **说明** | 1462 | -------- | -------- | -------- | -------- | 1463 | netId | number | 是 | 组的ID。 | 1464 1465**返回值:** 1466 1467 | 类型 | 说明 | 1468 | -------- | -------- | 1469 | boolean | true:操作执行成功,操作执行失败。 | 1470 1471 1472## WifiP2pGroupInfo<sup>8+</sup> 1473 1474表示P2P群组相关信息。 1475 1476**系统能力:** SystemCapability.Communication.WiFi.P2P 1477 1478| 名称 | 类型 | 可读 | 可写 | 说明 | 1479| -------- | -------- | -------- | -------- | -------- | 1480| isP2pGo | boolean | 是 | 否 | 是否是群主。 | 1481| ownerInfo | [WifiP2pDevice](#wifip2pdevice8) | 是 | 否 | 群组的设备信息。 | 1482| passphrase | string | 是 | 否 | 群组密钥。 | 1483| interface | string | 是 | 否 | 接口名称。 | 1484| groupName | string | 是 | 否 | 群组名称。 | 1485| networkId | number | 是 | 否 | 网络ID。 | 1486| frequency | number | 是 | 否 | 群组的频率。 | 1487| clientDevices | [WifiP2pDevice[]](#wifip2pdevice8) | 是 | 否 | 接入的设备列表信息。 | 1488| goIpAddress | string | 是 | 否 | 群组IP地址。 | 1489 1490 1491## wifi.setDeviceName<sup>8+</sup> 1492 1493setDeviceName(devName: string): boolean 1494 1495设置设备名称。 1496 1497**系统接口:** 此接口为系统接口。 1498 1499**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。 1500 1501**系统能力:** SystemCapability.Communication.WiFi.P2P 1502 1503**参数:** 1504 1505 | **参数名** | **类型** | **必填** | **说明** | 1506 | -------- | -------- | -------- | -------- | 1507 | devName | string | 是 | 设备名称。 | 1508 1509**返回值:** 1510 1511 | **类型** | **说明** | 1512 | -------- | -------- | 1513 | boolean | true:操作成功, false:操作失败。 | 1514 1515 1516## wifi.on('wifiStateChange')<sup>7+</sup> 1517 1518on(type: "wifiStateChange", callback: Callback<number>): void 1519 1520注册WLAN状态改变事件。 1521 1522**需要权限:** ohos.permission.GET_WIFI_INFO 1523 1524**系统能力:** SystemCapability.Communication.WiFi.STA 1525 1526**参数:** 1527 1528 | **参数名** | **类型** | **必填** | **说明** | 1529 | -------- | -------- | -------- | -------- | 1530 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 1531 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1532 1533**状态改变事件的枚举:** 1534 1535| **枚举值** | **说明** | 1536| -------- | -------- | 1537| 0 | 未激活。 | 1538| 1 | 已激活。 | 1539| 2 | 激活中。 | 1540| 3 | 去激活中。 | 1541 1542 1543## wifi.off('wifiStateChange')<sup>7+</sup> 1544 1545off(type: "wifiStateChange", callback?: Callback<number>): void 1546 1547取消注册WLAN状态改变事件。 1548 1549**需要权限:** ohos.permission.GET_WIFI_INFO 1550 1551**系统能力:** SystemCapability.Communication.WiFi.STA 1552 1553**参数:** 1554 1555 | **参数名** | **类型** | **必填** | **说明** | 1556 | -------- | -------- | -------- | -------- | 1557 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 1558 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1559 1560**示例:** 1561 ```js 1562 import wifi from '@ohos.wifi'; 1563 1564 var recvPowerNotifyFunc = result => { 1565 console.info("Receive power state change event: " + result); 1566 } 1567 1568 // Register event 1569 wifi.on("wifiStateChange", recvPowerNotifyFunc); 1570 1571 // Unregister event 1572 wifi.off("wifiStateChange", recvPowerNotifyFunc); 1573 ``` 1574 1575 1576## wifi.on('wifiConnectionChange')<sup>7+</sup> 1577 1578on(type: "wifiConnectionChange", callback: Callback<number>): void 1579 1580注册WLAN连接状态改变事件。 1581 1582**需要权限:** ohos.permission.GET_WIFI_INFO 1583 1584**系统能力:** SystemCapability.Communication.WiFi.STA 1585 1586**参数:** 1587 1588 | **参数名** | **类型** | **必填** | **说明** | 1589 | -------- | -------- | -------- | -------- | 1590 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 1591 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1592 1593**连接状态改变事件的枚举:** 1594 1595| **枚举值** | **说明** | 1596| -------- | -------- | 1597| 0 | 已断开。 | 1598| 1 | 已连接。 | 1599 1600 1601## wifi.off('wifiConnectionChange')<sup>7+</sup> 1602 1603off(type: "wifiConnectionChange", callback?: Callback<number>): void 1604 1605取消注册WLAN连接状态改变事件。 1606 1607**需要权限:** ohos.permission.GET_WIFI_INFO 1608 1609**系统能力:** SystemCapability.Communication.WiFi.STA 1610 1611**参数:** 1612 1613 | **参数名** | **类型** | **必填** | **说明** | 1614 | -------- | -------- | -------- | -------- | 1615 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 1616 | callback | Callback<number> | 否 | 连接状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1617 1618 1619## wifi.on('wifiScanStateChange')<sup>7+</sup> 1620 1621on(type: "wifiScanStateChange", callback: Callback<number>): void 1622 1623注册扫描状态改变事件。 1624 1625**需要权限:** ohos.permission.GET_WIFI_INFO 1626 1627**系统能力:** SystemCapability.Communication.WiFi.STA 1628 1629**参数:** 1630 1631 | **参数名** | **类型** | **必填** | **说明** | 1632 | -------- | -------- | -------- | -------- | 1633 | type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 1634 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1635 1636**扫描状态改变事件的枚举:** 1637 1638| **枚举值** | **说明** | 1639| -------- | -------- | 1640| 0 | 扫描失败。 | 1641| 1 | 扫描成功。 | 1642 1643 1644## wifi.off('wifiScanStateChange')<sup>7+</sup> 1645 1646off(type: "wifiScanStateChange", callback?: Callback<number>): void 1647 1648取消注册扫描状态改变事件。 1649 1650**需要权限:** ohos.permission.GET_WIFI_INFO 1651 1652**系统能力:** SystemCapability.Communication.WiFi.STA 1653 1654**参数:** 1655 1656| **参数名** | **类型** | **必填** | **说明** | 1657| -------- | -------- | -------- | -------- | 1658| type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 1659| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1660 1661 1662## wifi.on('wifiRssiChange')<sup>7+</sup> 1663 1664on(type: "wifiRssiChange", callback: Callback<number>): void 1665 1666注册RSSI状态改变事件。 1667 1668**需要权限:** ohos.permission.GET_WIFI_INFO 1669 1670**系统能力:** SystemCapability.Communication.WiFi.STA 1671 1672**参数:** 1673 1674 | **参数名** | **类型** | **必填** | **说明** | 1675 | -------- | -------- | -------- | -------- | 1676 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 1677 | callback | Callback<number> | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 | 1678 1679 1680## wifi.off('wifiRssiChange')<sup>7+</sup> 1681 1682off(type: "wifiRssiChange", callback?: Callback<number>): void 1683 1684取消注册RSSI状态改变事件。 1685 1686**需要权限:** ohos.permission.GET_WIFI_INFO 1687 1688**系统能力:** SystemCapability.Communication.WiFi.STA 1689 1690**参数:** 1691 1692 | **参数名** | **类型** | **必填** | **说明** | 1693 | -------- | -------- | -------- | -------- | 1694 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 1695 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1696 1697 1698## wifi.on('hotspotStateChange')<sup>7+</sup> 1699 1700on(type: "hotspotStateChange", callback: Callback<number>): void 1701 1702注册热点状态改变事件。 1703 1704**需要权限:** ohos.permission.GET_WIFI_INFO 1705 1706**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1707 1708**参数:** 1709 1710 | **参数名** | **类型** | **必填** | **说明** | 1711 | -------- | -------- | -------- | -------- | 1712 | type | string | 是 | 固定填"hotspotStateChange"字符串。 | 1713 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1714 1715**热点状态改变事件的枚举:** 1716 1717| **枚举值** | **说明** | 1718| -------- | -------- | 1719| 0 | 未激活。 | 1720| 1 | 已激活。 | 1721| 2 | 激活中。 | 1722| 3 | 去激活中。 | 1723 1724 1725## wifi.off('hotspotStateChange')<sup>7+</sup> 1726 1727off(type: "hotspotStateChange", callback?: Callback<number>): void 1728 1729取消注册热点状态改变事件。 1730 1731**需要权限:** ohos.permission.GET_WIFI_INFO 1732 1733**系统能力:** SystemCapability.Communication.WiFi.AP.Core 1734 1735**参数:** 1736 1737 | **参数名** | **类型** | **必填** | **说明** | 1738 | -------- | -------- | -------- | -------- | 1739 | type | string | 是 | 固定填"hotspotStateChange"字符串。 | 1740 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1741 1742 1743## wifi.on('p2pStateChange')<sup>8+</sup> 1744 1745on(type: "p2pStateChange", callback: Callback<number>): void 1746 1747注册P2P开关状态改变事件。 1748 1749**需要权限:** ohos.permission.GET_WIFI_INFO 1750 1751**系统能力:** SystemCapability.Communication.WiFi.P2P 1752 1753**参数:** 1754 1755 | **参数名** | **类型** | **必填** | **说明** | 1756 | -------- | -------- | -------- | -------- | 1757 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 1758 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1759 1760**P2P状态改变事件的枚举:** 1761 1762| **枚举值** | **说明** | 1763| -------- | -------- | 1764| 1 | 空闲。 | 1765| 2 | 打开中。 | 1766| 3 | 已打开。 | 1767| 4 | 关闭中。 | 1768| 5 | 已关闭。 | 1769 1770## wifi.off('p2pStateChange')<sup>8+</sup> 1771 1772off(type: "p2pStateChange", callback?: Callback<number>): void 1773 1774取消注册P2P开关状态改变事件。 1775 1776**需要权限:** ohos.permission.GET_WIFI_INFO 1777 1778**系统能力:** SystemCapability.Communication.WiFi.P2P 1779 1780**参数:** 1781 1782 | **参数名** | **类型** | **必填** | **说明** | 1783 | -------- | -------- | -------- | -------- | 1784 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 1785 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1786 1787 1788 ## wifi.on('p2pConnectionChange')<sup>8+</sup> 1789 1790on(type: "p2pConnectionChange", callback: Callback<WifiP2pLinkedInfo>): void 1791 1792注册P2P连接状态改变事件。 1793 1794**需要权限:** ohos.permission.GET_WIFI_INFO 1795 1796**系统能力:** SystemCapability.Communication.WiFi.P2P 1797 1798**参数:** 1799 1800 | **参数名** | **类型** | **必填** | **说明** | 1801 | -------- | -------- | -------- | -------- | 1802 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 1803 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo8)> | 是 | 状态改变回调函数。 | 1804 1805 1806## wifi.off('p2pConnectionChange')<sup>8+</sup> 1807 1808off(type: "p2pConnectionChange", callback?: Callback<WifiP2pLinkedInfo>): void 1809 1810取消注册P2P连接状态改变事件。 1811 1812**需要权限:** ohos.permission.GET_WIFI_INFO 1813 1814**系统能力:** SystemCapability.Communication.WiFi.P2P 1815 1816**参数:** 1817 1818 | **参数名** | **类型** | **必填** | **说明** | 1819 | -------- | -------- | -------- | -------- | 1820 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 1821 | callback | Callback<[WifiP2pLinkedInfo](#wifip2plinkedinfo8)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1822 1823 1824## wifi.on('p2pDeviceChange')<sup>8+</sup> 1825 1826on(type: "p2pDeviceChange", callback: Callback<WifiP2pDevice>): void 1827 1828注册P2P设备状态改变事件。 1829 1830**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1831 1832**系统能力:** SystemCapability.Communication.WiFi.P2P 1833 1834**参数:** 1835 1836 | **参数名** | **类型** | **必填** | **说明** | 1837 | -------- | -------- | -------- | -------- | 1838 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 1839 | callback | Callback<[WifiP2pDevice](#wifip2pdevice8)> | 是 | 状态改变回调函数。 | 1840 1841 1842## wifi.off('p2pDeviceChange')<sup>8+</sup> 1843 1844off(type: "p2pDeviceChange", callback?: Callback<WifiP2pDevice>): void 1845 1846取消注册P2P设备状态改变事件。 1847 1848**需要权限:** ohos.permission.LOCATION 1849 1850**系统能力:** SystemCapability.Communication.WiFi.P2P 1851 1852**参数:** 1853 1854 | **参数名** | **类型** | **必填** | **说明** | 1855 | -------- | -------- | -------- | -------- | 1856 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 1857 | callback | Callback<[WifiP2pDevice](#wifip2pdevice8)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1858 1859 1860## wifi.on('p2pPeerDeviceChange')<sup>8+</sup> 1861 1862on(type: "p2pPeerDeviceChange", callback: Callback<WifiP2pDevice[]>): void 1863 1864注册P2P对端设备状态改变事件。 1865 1866**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 1867 1868**系统能力:** SystemCapability.Communication.WiFi.P2P 1869 1870**参数:** 1871 1872 | **参数名** | **类型** | **必填** | **说明** | 1873 | -------- | -------- | -------- | -------- | 1874 | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 1875 | callback | Callback<[WifiP2pDevice[]](#wifip2pdevice8)> | 是 | 状态改变回调函数。 | 1876 1877 1878## wifi.off('p2pPeerDeviceChange')<sup>8+</sup> 1879 1880off(type: "p2pPeerDeviceChange", callback?: Callback<WifiP2pDevice[]>): void 1881 1882取消注册P2P对端设备状态改变事件。 1883 1884**需要权限:** ohos.permission.LOCATION 1885 1886**系统能力:** SystemCapability.Communication.WiFi.P2P 1887 1888**参数:** 1889 1890 | **参数名** | **类型** | **必填** | **说明** | 1891 | -------- | -------- | -------- | -------- | 1892 | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 1893 | callback | Callback<[WifiP2pDevice[]](#wifip2pdevice8)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1894 1895 1896## wifi.on('p2pPersistentGroupChange')<sup>8+</sup> 1897 1898on(type: "p2pPersistentGroupChange", callback: Callback<void>): void 1899 1900注册P2P永久组状态改变事件。 1901 1902**需要权限:** ohos.permission.GET_WIFI_INFO 1903 1904**系统能力:** SystemCapability.Communication.WiFi.P2P 1905 1906**参数:** 1907 1908 | **参数名** | **类型** | **必填** | **说明** | 1909 | -------- | -------- | -------- | -------- | 1910 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 1911 | callback | Callback<void> | 是 | 状态改变回调函数。 | 1912 1913 1914## wifi.off('p2pPersistentGroupChange')<sup>8+</sup> 1915 1916off(type: "p2pPersistentGroupChange", callback?: Callback<void>): void 1917 1918取消注册P2P永久组状态改变事件。 1919 1920**需要权限:** ohos.permission.GET_WIFI_INFO 1921 1922**系统能力:** SystemCapability.Communication.WiFi.P2P 1923 1924**参数:** 1925 1926 | **参数名** | **类型** | **必填** | **说明** | 1927 | -------- | -------- | -------- | -------- | 1928 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 1929 | callback | Callback<void> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1930 1931 1932## wifi.on('p2pDiscoveryChange')<sup>8+</sup> 1933 1934on(type: "p2pDiscoveryChange", callback: Callback<number>): void 1935 1936注册发现设备状态改变事件。 1937 1938**需要权限:** ohos.permission.GET_WIFI_INFO 1939 1940**系统能力:** SystemCapability.Communication.WiFi.P2P 1941 1942**参数:** 1943 1944 | **参数名** | **类型** | **必填** | **说明** | 1945 | -------- | -------- | -------- | -------- | 1946 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 1947 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1948 1949**发现设备状态改变事件的枚举:** 1950 1951| **枚举值** | **说明** | 1952| -------- | -------- | 1953| 0 | 初始状态。 | 1954| 1 | 发现成功。 | 1955 1956 1957## wifi.off('p2pDiscoveryChange')<sup>8+</sup> 1958 1959off(type: "p2pDiscoveryChange", callback?: Callback<number>): void 1960 1961取消注册发现设备状态改变事件。 1962 1963**需要权限:** ohos.permission.GET_WIFI_INFO 1964 1965**系统能力:** SystemCapability.Communication.WiFi.P2P 1966 1967**参数:** 1968 1969 | **参数名** | **类型** | **必填** | **说明** | 1970 | -------- | -------- | -------- | -------- | 1971 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 1972 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1973 1974