1# WLAN 2 3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 4> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 5 6 7## 导入模块 8 9```js 10import wifi from '@ohos.wifi'; 11``` 12 13## wifi.isWifiActive 14 15isWifiActive(): boolean 16 17查询WLAN是否已激活。 18 19- 需要权限: 20 ohos.permission.GET_WIFI_INFO 21 22- 系统能力: 23 SystemCapability.Communication.WiFi.STA 24 25- 返回值: 26 | **类型** | **说明** | 27 | -------- | -------- | 28 | boolean | true:已激活, false:未激活。 | 29 30 31## wifi.scan 32 33scan(): boolean 34 35启动WLAN扫描。 36 37- 需要权限: 38 ohos.permission.SET_WIFI_INFO,ohos.permission.LOCATION 39 40- 系统能力: 41 SystemCapability.Communication.WiFi.STA 42 43- 返回值: 44 | **类型** | **说明** | 45 | -------- | -------- | 46 | boolean | true:扫描操作执行成功, false:扫描操作执行失败。 | 47 48 49## wifi.getScanInfos 50 51getScanInfos(): Promise<Array<WifiScanInfo>> 52 53获取扫描结果,使用promise方式作为异步方法。 54 55- 需要权限: 56 ohos.permission.GET_WIFI_INFO以及ohos.permission.GET_WIFI_PEERS_MAC和ohos.permission.LOCATION权限中的至少一个。 57 58- 系统能力: 59 SystemCapability.Communication.WiFi.STA 60 61- 返回值: 62 | **类型** | **说明** | 63 | -------- | -------- | 64 | Promise< Array<[WifiScanInfo](#wifiscaninfo)> > | 返回扫描到的热点列表。 | 65 66 67## wifi.getScanInfos 68 69getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void 70 71获取扫描结果,使用callback方式作为异步方法。 72 73- 需要权限: 74 ohos.permission.GET_WIFI_INFO以及ohos.permission.GET_WIFI_PEERS_MAC和ohos.permission.LOCATION权限中的至少一个。 75 76- 系统能力: 77 SystemCapability.Communication.WiFi.STA 78 79- 参数 80 | **参数名** | **类型** | **必填** | **说明** | 81 | -------- | -------- | -------- | -------- | 82 | callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo)>> | 是 | 扫描到的热点列表结果回调函数。 | 83 84- 示例 85 ```js 86 import wifi from '@ohos.wifi'; 87 88 wifi.getScanInfos((err, result) => { 89 if (err) { 90 console.error("get scan info error"); 91 return; 92 } 93 94 var len = Object.keys(result).length; 95 console.log("wifi received scan info: " + len); 96 for (var i = 0; i < len; ++i) { 97 console.info("ssid: " + result[i].ssid); 98 console.info("bssid: " + result[i].bssid); 99 console.info("capabilities: " + result[i].capabilities); 100 console.info("securityType: " + result[i].securityType); 101 console.info("rssi: " + result[i].rssi); 102 console.info("band: " + result[i].band); 103 console.info("frequency: " + result[i].frequency); 104 console.info("channelWidth: " + result[i].channelWidth); 105 console.info("timestamp: " + result[i].timestamp); 106 } 107 }); 108 109 wifi.getScanInfos().then(result => { 110 var len = Object.keys(result).length; 111 console.log("wifi received scan info: " + len); 112 for (var i = 0; i < len; ++i) { 113 console.info("ssid: " + result[i].ssid); 114 console.info("bssid: " + result[i].bssid); 115 console.info("capabilities: " + result[i].capabilities); 116 console.info("securityType: " + result[i].securityType); 117 console.info("rssi: " + result[i].rssi); 118 console.info("band: " + result[i].band); 119 console.info("frequency: " + result[i].frequency); 120 console.info("channelWidth: " + result[i].channelWidth); 121 console.info("timestamp: " + result[i].timestamp); 122 } 123 }); 124 ``` 125 126 127## WifiScanInfo 128 129WLAN热点信息。 130 131| **参数名** | **类型** | **读写属性** | **说明** | 132| -------- | -------- | -------- | -------- | 133| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 | 134| bssid | string | 只读 | 热点的BSSID。 | 135| capabilities | string | 只读 | 热点能力。 | 136| securityType | [WifiSecurityType](#WifiSecurityType) | 只读 | WLAN加密类型。 | 137| rssi | number | 只读 | 热点的信号强度(dBm)。 | 138| band | number | 只读 | WLAN接入点的频段。 | 139| frequency | number | 只读 | WLAN接入点的频率。 | 140| channelWidth | number | 只读 | WLAN接入点的带宽。 | 141| timestamp | number | 只读 | 时间戳。 | 142 143 144## WifiSecurityType 145 146表示加密类型的枚举。 147 148| **名称** | **默认值** | **说明** | 149| -------- | -------- | -------- | 150| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 | 151| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。 | 152| WIFI_SEC_TYPE_WEP | 2 | Wired Equivalent Privacy (WEP)加密类型。 | 153| WIFI_SEC_TYPE_PSK | 3 | Pre-shared key (PSK)加密类型。 | 154| WIFI_SEC_TYPE_SAE | 4 | Simultaneous Authentication of Equals (SAE)加密类型。 | 155 156 157## wifi.addUntrustedConfig<sup>7+</sup> 158 159addUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> 160 161添加不可信网络配置,使用promise方式作为异步方法。 162- 说明:此接口为预留接口,3.1 Release 版本暂不支持。 163 164- 需要权限: 165 ohos.permission.SET_WIFI_INFO 166 167- 系统能力: 168 SystemCapability.Communication.WiFi.STA 169 170- 参数 171 | **参数名** | **类型** | **必填** | **说明** | 172 | -------- | -------- | -------- | -------- | 173 | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 | 174 175- 返回值: 176 | **类型** | **说明** | 177 | -------- | -------- | 178 | Promise<boolean> | 操作结果,ture: 成功, false: 失败。 | 179 180## WifiDeviceConfig 181 182WLAN配置信息。 183 184| **参数名** | **类型** | **读写属性** | **说明** | 185| -------- | -------- | -------- | -------- | 186| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 | 187| bssid | string | 只读 | 热点的BSSID。 | 188| preSharedKey | string | 只读 | 热点的密钥。 | 189| isHiddenSsid | boolean | 只读 | 是否是隐藏网络。 | 190| securityType | [WifiSecurityType](#WifiSecurityType) | 只读 | 加密类型。 | 191 192 193## wifi.addUntrustedConfig<sup>7+</sup> 194 195addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void 196 197添加不可信网络配置,使用callback方式作为异步方法。 198 199- 说明:此接口为预留接口,3.1 Release 版本暂不支持。 200 201- 需要权限: 202 ohos.permission.SET_WIFI_INFO 203 204- 系统能力: 205 SystemCapability.Communication.WiFi.STA 206 207- 参数 208 | **参数名** | **类型** | **必填** | **说明** | 209 | -------- | -------- | -------- | -------- | 210 | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 | 211 | callback | AsyncCallback<boolean> | 是 | 操作结果,ture: 成功, false: 失败。 | 212 213 214## wifi.removeUntrustedConfig<sup>7+</sup> 215 216removeUntrustedConfig(config: WifiDeviceConfig): Promise<boolean> 217 218移除不可信网络配置,使用promise方式作为异步方法。 219 220- 需要权限: 221 ohos.permission.SET_WIFI_INFO 222 223- 系统能力: 224 SystemCapability.Communication.WiFi.STA 225 226- 参数 227 | **参数名** | **类型** | **必填** | **说明** | 228 | -------- | -------- | -------- | -------- | 229 | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 | 230 231- 返回值: 232 | **类型** | **说明** | 233 | -------- | -------- | 234 | Promise<boolean> | 操作结果,ture: 成功, false: 失败。 | 235 236 237## wifi.removeUntrustedConfig<sup>7+</sup> 238 239removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback<boolean>): void 240 241移除不可信网络配置,使用callback方式作为异步方法。 242 243- 需要权限: 244 ohos.permission.SET_WIFI_INFO 245 246- 系统能力: 247 SystemCapability.Communication.WiFi.STA 248 249- 参数 250 | **参数名** | **类型** | **必填** | **说明** | 251 | -------- | -------- | -------- | -------- | 252 | config | [WifiDeviceConfig](#WifiDeviceConfig) | 是 | WLAN配置信息。 | 253 | callback | AsyncCallback<boolean> | 是 | 操作结果,ture: 成功, false: 失败。 | 254 255 256## wifi.getSignalLevel 257 258getSignalLevel(rssi: number, band: number): number 259 260查询WLAN信号强度。 261 262- 需要权限: 263 ohos.permission.GET_WIFI_INFO 264 265- 系统能力: 266 SystemCapability.Communication.WiFi.STA 267 268- 参数: 269 | **参数名** | **类型** | **必填** | **说明** | 270 | -------- | -------- | -------- | -------- | 271 | rssi | number | 是 | 热点的信号强度(dBm)。 | 272 | band | number | 是 | WLAN接入点的频段。 | 273 274- 返回值: 275 | **类型** | **说明** | 276 | -------- | -------- | 277 | number | 信号强度,取值范围为[0, 4]。 | 278 279 280## wifi.getLinkedInfo 281 282getLinkedInfo(): Promise<WifiLinkedInfo> 283 284获取WLAN连接信息,使用promise方式作为异步方法。 285 286- 需要权限: 287 ohos.permission.GET_WIFI_INFO 288 289- 系统能力: 290 SystemCapability.Communication.WiFi.STA 291 292- 返回值: 293 | 类型 | 说明 | 294 | -------- | -------- | 295 | Promise<[WifiLinkedInfo](#WifiLinkedInfo)> | WLAN连接的相关信息。 | 296 297 298## wifi.getLinkedInfo 299 300getLinkedInfo(callback: AsyncCallback<WifiLinkedInfo>): void 301 302获取WLAN连接信息,使用callback方式作为异步方法。 303 304- 需要权限: 305 ohos.permission.GET_WIFI_INFO 306 307- 系统能力: 308 SystemCapability.Communication.WiFi.STA 309 310- 参数 311 | 参数名 | 类型 | 必填 | 说明 | 312 | -------- | -------- | -------- | -------- | 313 | callback | AsyncCallback<[WifiLinkedInfo](#WifiLinkedInfo)> | 是 | WLAN连接信息结果回调函数。 | 314 315- 示例 316 ```js 317 import wifi from '@ohos.wifi'; 318 319 wifi.getLinkedInfo((err, data) => { 320 if (err) { 321 console.error("get linked info error"); 322 return; 323 } 324 console.info("get wifi linked info: " + JSON.stringify(data)); 325 }); 326 327 wifi.getLinkedInfo().then(data => { 328 console.info("get wifi linked info: " + JSON.stringify(data)); 329 }).catch(error => { 330 console.info("get linked info error"); 331 }); 332 ``` 333 334 335## WifiLinkedInfo 336 337提供WLAN连接的相关信息。 338 339| 参数名 | 类型 | 读写属性 | 说明 | 340| -------- | -------- | -------- | -------- | 341| ssid | string | 只读 | 热点的SSID,编码格式为UTF-8。 | 342| bssid | string | 只读 | 热点的BSSID。 | 343| rssi | number | 只读 | 热点的信号强度(dBm)。 | 344| band | number | 只读 | WLAN接入点的频段。 | 345| linkSpeed | number | 只读 | WLAN接入点的速度。 | 346| frequency | number | 只读 | WLAN接入点的频率。 | 347| isHidden | boolean | 只读 | WLAN接入点是否是隐藏网络。 | 348| isRestricted | boolean | 只读 | WLAN接入点是否限制数据量。 | 349| macAddress | string | 只读 | 设备的MAC地址。 | 350| ipAddress | number | 只读 | WLAN连接的IP地址。 | 351| connState | [ConnState](#ConnState) | 只读 | WLAN连接状态。 | 352 353 354## ConnState 355 356表示WLAN连接状态的枚举。 357 358| 名称 | 默认值 | 说明 | 359| -------- | -------- | -------- | 360| SCANNING | 0 | 设备正在搜索可用的AP。 | 361| CONNECTING | 1 | 正在建立WLAN连接。 | 362| AUTHENTICATING | 2 | WLAN连接正在认证中。 | 363| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 | 364| CONNECTED | 4 | WLAN连接已建立。 | 365| DISCONNECTING | 5 | WLAN连接正在断开。 | 366| DISCONNECTED | 6 | WLAN连接已断开。 | 367| UNKNOWN | 7 | WLAN连接建立失败。 | 368 369 370## wifi.isConnected<sup>7+</sup> 371 372isConnected(): boolean 373 374查询WLAN是否已连接。 375 376- 需要权限: 377 ohos.permission.GET_WIFI_INFO 378 379- 系统能力: 380 SystemCapability.Communication.WiFi.STA 381 382- 返回值: 383 | **类型** | **说明** | 384 | -------- | -------- | 385 | boolean | true:已连接, false:未连接。 | 386 387 388## wifi.isFeatureSupported<sup>7+</sup> 389 390isFeatureSupported(featureId: number): boolean 391 392判断设备是否支持相关WLAN特性。 393 394- 需要权限: 395 ohos.permission.GET_WIFI_INFO 396 397- 系统能力: 398 SystemCapability.Communication.WiFi.Core 399 400- 参数: 401 | **参数名** | **类型** | 必填 | **说明** | 402 | -------- | -------- | -------- | -------- | 403 | featureId | number | 是 | 特性ID值。 | 404 405- 返回值: 406 | **类型** | **说明** | 407 | -------- | -------- | 408 | boolean | true:支持, false:不支持。 | 409 410- 特性ID值枚举。 411 | 枚举值 | 说明 | 412 | -------- | -------- | 413 | 0x0001 | 基础结构模式特性。 | 414 | 0x0002 | 5 GHz带宽特性。 | 415 | 0x0004 | GAS/ANQP特性。 | 416 | 0x0008 | Wifi-Direct特性。 | 417 | 0x0010 | Soft AP特性。 | 418 | 0x0040 | Wi-Fi AWare组网特性。 | 419 | 0x8000 | AP STA共存特性。 | 420 | 0x8000000 | WPA3-Personal SAE特性。 | 421 | 0x10000000 | WPA3-Enterprise Suite-B | 422 | 0x20000000 | 增强开放特性。 | 423 424 425## wifi.getIpInfo<sup>7+</sup> 426 427getIpInfo(): IpInfo 428 429获取IP信息。 430 431- 需要权限: 432 ohos.permission.GET_WIFI_INFO 433 434- 系统能力: 435 SystemCapability.Communication.WiFi.STA 436 437- 返回值: 438 | **类型** | **说明** | 439 | -------- | -------- | 440 | [IpInfo](#IpInfo) | IP信息。 | 441 442 443## IpInfo<sup>7+</sup> 444 445IP信息。 446 447| **参数名** | **类型** | **读写属性** | **说明** | 448| -------- | -------- | -------- | -------- | 449| ipAddress | number | 只读 | IP地址。 | 450| gateway | number | 只读 | 网关。 | 451| netmask | number | 只读 | 掩码。 | 452| primaryDns | number | 只读 | 主DNS服务器IP地址。 | 453| secondDns | number | 只读 | 备DNS服务器IP地址。 | 454| serverIp | number | 只读 | DHCP服务端IP地址。 | 455| leaseDuration | number | 只读 | IP地址租用时长。 | 456 457 458## wifi.getCountryCode<sup>7+</sup> 459 460getCountryCode(): string 461 462获取国家码信息。 463 464- 需要权限: 465 ohos.permission.GET_WIFI_INFO 466 467- 系统能力: 468 SystemCapability.Communication.WiFi.Core 469 470- 返回值: 471 | **类型** | **说明** | 472 | -------- | -------- | 473 | string | 国家码。 | 474 475 476## wifi.getP2pLinkedInfo<sup>8+</sup> 477 478getP2pLinkedInfo(): Promise<WifiP2pLinkedInfo> 479 480获取P2P连接信息,使用promise方式作为异步方法。 481 482- 需要权限: 483 ohos.permission.GET_WIFI_INFO 484 485- 系统能力: 486 SystemCapability.Communication.WiFi.P2P 487 488- 返回值: 489 | 类型 | 说明 | 490 | -------- | -------- | 491 | Promise<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | P2P连接信息。 | 492 493 494## wifi.getP2pLinkedInfo<sup>8+</sup> 495 496getP2pLinkedInfo(callback: AsyncCallback<WifiP2pLinkedInfo>): void 497 498获取P2P连接信息,使用callback方式作为异步方法。 499 500- 需要权限: 501 ohos.permission.GET_WIFI_INFO 502 503- 系统能力: 504 SystemCapability.Communication.WiFi.P2P 505 506- 参数 507 | 参数名 | 类型 | 必填 | 说明 | 508 | -------- | -------- | -------- | -------- | 509 | callback | AsyncCallback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | 是 | P2P连接信息结果回调函数。 | 510 511 512## WifiP2pLinkedInfo<sup>8+</sup> 513 514提供WLAN连接的相关信息。 515 516| 参数名 | 类型 | 读写属性 | 说明 | 517| -------- | -------- | -------- | -------- | 518| connectState | [P2pConnectState](#P2pConnectState) | 只读 | P2P连接状态。 | 519| isGroupOwner | boolean | 只读 | 是否是群组。 | 520| groupOwnerAddr | string | 只读 | 群组MAC地址。 | 521 522 523## P2pConnectState<sup>8+</sup> 524 525表示P2P连接状态的枚举。 526 527| 名称 | 默认值 | 说明 | 528| -------- | -------- | -------- | 529| DISCONNECTED | 0 | 断开状态。 | 530| CONNECTED | 1 | 连接状态。 | 531 532 533## wifi.getCurrentGroup<sup>8+</sup> 534 535getCurrentGroup(): Promise<WifiP2pGroupInfo> 536 537获取P2P当前组信息,使用promise方式作为异步方法。 538 539- 需要权限: 540 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 541 542- 系统能力: 543 SystemCapability.Communication.WiFi.P2P 544 545- 返回值: 546 | 类型 | 说明 | 547 | -------- | -------- | 548 | Promise<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | 当前组信息。 | 549 550 551## wifi.getCurrentGroup<sup>8+</sup> 552 553getCurrentGroup(callback: AsyncCallback<WifiP2pGroupInfo>): void 554 555获取P2P当前组信息,使用callback方式作为异步方法。 556 557- 需要权限: 558 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 559 560- 系统能力: 561 SystemCapability.Communication.WiFi.P2P 562 563- 参数 564 | 参数名 | 类型 | 必填 | 说明 | 565 | -------- | -------- | -------- | -------- | 566 | callback | AsyncCallback<[WifiP2pGroupInfo](#WifiP2pGroupInfo)> | 是 | 当前组信息的回调函数。 | 567 568 569## WifiP2pGroupInfo<sup>8+</sup> 570 571表示P2P群组相关信息。 572 573| 参数名 | 类型 | 读写属性 | 说明 | 574| -------- | -------- | -------- | -------- | 575| isP2pGo | boolean | 只读 | 是否是群组。 | 576| ownerInfo | [WifiP2pDevice](#WifiP2pDevice) | 只读 | 群组的设备信息。 | 577| passphrase | string | 只读 | 群组密钥。 | 578| interface | string | 只读 | 接口名称。 | 579| groupName | string | 只读 | 群组名称。 | 580| networkId | number | 只读 | 网络ID。 | 581| frequency | number | 只读 | 群组的频率。 | 582| clientDevices | [WifiP2pDevice[]](#WifiP2pDevice) | 只读 | 接入的设备列表信息。 | 583| goIpAddress | string | 只读 | 群组IP地址。 | 584 585## WifiP2pDevice<sup>8+</sup> 586 587表示P2P设备信息。 588 589| 参数名 | 类型 | 读写属性 | 说明 | 590| -------- | -------- | -------- | -------- | 591| deviceName | string | 只读 | 设备名称。 | 592| deviceAddress | string | 只读 | 设备MAC地址。 | 593| primaryDeviceType | string | 只读 | 主设备类型。 | 594| deviceStatus | [P2pDeviceStatus](#P2pDeviceStatus) | 只读 | 设备状态。 | 595| groupCapabilities | number | 只读 | 群组能力。 | 596 597## P2pDeviceStatus<sup>8+</sup> 598 599表示设备状态的枚举。 600 601| 名称 | 默认值 | 说明 | 602| -------- | -------- | -------- | 603| CONNECTED | 0 | 连接状态。 | 604| INVITED | 1 | 邀请状态。 | 605| FAILED | 2 | 失败状态。 | 606| AVAILABLE | 3 | 可用状态。 | 607| UNAVAILABLE | 4 | 不可用状态。 | 608 609 610## wifi.getP2pPeerDevices<sup>8+</sup> 611 612getP2pPeerDevices(): Promise<WifiP2pDevice[]> 613 614获取P2P对端设备列表信息,使用promise方式作为异步方法。 615 616- 需要权限: 617 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 618 619- 系统能力: 620 SystemCapability.Communication.WiFi.P2P 621 622- 返回值: 623 | 类型 | 说明 | 624 | -------- | -------- | 625 | Promise<[WifiP2pDevice[]](#WifiP2pDevice)> | 对端设备列表信息。 | 626 627 628## wifi.getP2pPeerDevices<sup>8+</sup> 629 630getP2pPeerDevices(callback: AsyncCallback<WifiP2pDevice[]>): void 631 632获取P2P对端设备列表信息,使用callback方式作为异步方法。 633 634- 需要权限: 635 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 636 637- 系统能力: 638 SystemCapability.Communication.WiFi.P2P 639 640- 参数 641 | 参数名 | 类型 | 必填 | 说明 | 642 | -------- | -------- | -------- | -------- | 643 | callback | AsyncCallback<[WifiP2pDevice[]](#WifiP2pDevice)> | 是 | 对端设备列表信息回调函数。 | 644 645 646## wifi.createGroup<sup>8+</sup> 647 648createGroup(config: WifiP2PConfig): boolean; 649 650创建群组。 651 652- 需要权限: 653 ohos.permission.GET_WIFI_INFO 654 655- 系统能力: 656 SystemCapability.Communication.WiFi.P2P 657 658- 参数: 659 | **参数名** | **类型** | 必填 | **说明** | 660 | -------- | -------- | -------- | -------- | 661 | config | [WifiP2PConfig](#WifiP2PConfig) | 是 | 群组配置信息。 | 662 663- 返回值: 664 | 类型 | 说明 | 665 | -------- | -------- | 666 | boolean | true:创建群组操作执行成功, false:创建群组操作执行失败。 | 667 668## WifiP2PConfig<sup>8+</sup> 669 670表示P2P配置信息。 671 672| 参数名 | 类型 | 读写属性 | 说明 | 673| -------- | -------- | -------- | -------- | 674| deviceAddress | string | 只读 | 设备地址。 | 675| netId | number | 只读 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 | 676| passphrase | string | 只读 | 群组密钥。 | 677| groupName | string | 只读 | 群组名称。 | 678| goBand | [GroupOwnerBand](#GroupOwnerBand) | 只读 | 群组带宽。 | 679 680 681## GroupOwnerBand<sup>8+</sup> 682 683表示群组带宽的枚举。 684 685| 名称 | 默认值 | 说明 | 686| -------- | -------- | -------- | 687| GO_BAND_AUTO | 0 | 自动模式。 | 688| GO_BAND_2GHZ | 1 | 2GHZ。 | 689| GO_BAND_5GHZ | 2 | 5GHZ。 | 690 691## wifi.removeGroup<sup>8+</sup> 692 693removeGroup(): boolean; 694 695移除群组。 696 697- 需要权限: 698 ohos.permission.GET_WIFI_INFO 699 700- 系统能力: 701 SystemCapability.Communication.WiFi.P2P 702 703- 返回值: 704 | 类型 | 说明 | 705 | -------- | -------- | 706 | boolean | true:操作执行成功, false:操作执行失败。 | 707 708 709## wifi.p2pConnect<sup>8+</sup> 710 711p2pConnect(config: WifiP2PConfig): boolean; 712 713执行P2P连接。 714 715- 需要权限: 716 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 717 718- 系统能力: 719 SystemCapability.Communication.WiFi.P2P 720 721- 参数: 722 | **参数名** | **类型** | 必填 | **说明** | 723 | -------- | -------- | -------- | -------- | 724 | config | [WifiP2PConfig](#WifiP2PConfig) | 是 | 连接配置信息。 | 725 726- 返回值: 727 | 类型 | 说明 | 728 | -------- | -------- | 729 | boolean | true:操作执行成功, false:操作执行失败。 | 730 731 732- 示例 733 ```js 734 import wifi from '@ohos.wifi'; 735 736 var recvP2pConnectionChangeFunc = result => { 737 console.info("p2p connection change receive event: " + JSON.stringify(result)); 738 wifi.getP2pLinkedInfo((err, data) => { 739 if (err) { 740 console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err)); 741 return; 742 } 743 console.info("get getP2pLinkedInfo: " + JSON.stringify(data)); 744 }); 745 } 746 wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc); 747 748 var recvP2pDeviceChangeFunc = result => { 749 console.info("p2p device change receive event: " + JSON.stringify(result)); 750 } 751 wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc); 752 753 var recvP2pPeerDeviceChangeFunc = result => { 754 console.info("p2p peer device change receive event: " + JSON.stringify(result)); 755 wifi.getP2pPeerDevices((err, data) => { 756 if (err) { 757 console.error('failed to get peer devices: ' + JSON.stringify(err)); 758 return; 759 } 760 console.info("get peer devices: " + JSON.stringify(data)); 761 var len = Object.keys(data).length; 762 for (var i = 0; i < len; ++i) { 763 if (data[i].deviceName === "my_test_device") { 764 console.info("p2p connect to test device: " + data[i].deviceAddress); 765 var config = { 766 "deviceAddress":data[i].deviceAddress, 767 "netId":-2, 768 "passphrase":"", 769 "groupName":"", 770 "goBand":0, 771 } 772 wifi.p2pConnect(config); 773 } 774 } 775 }); 776 } 777 wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc); 778 779 var recvP2pPersistentGroupChangeFunc = result => { 780 console.info("p2p persistent group change receive event"); 781 782 wifi.getCurrentGroup((err, data) => { 783 if (err) { 784 console.error('failed to get current group: ' + JSON.stringify(err)); 785 return; 786 } 787 console.info("get current group: " + JSON.stringify(data)); 788 }); 789 } 790 wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc); 791 792 setTimeout(function() {wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000); 793 setTimeout(function() {wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000); 794 setTimeout(function() {wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000); 795 setTimeout(function() {wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000); 796 console.info("start discover devices -> " + wifi.startDiscoverDevices()); 797 ``` 798 799## wifi.p2pCancelConnect<sup>8+</sup> 800 801p2pCancelConnect(): boolean; 802 803取消P2P连接。 804 805- 需要权限: 806 ohos.permission.GET_WIFI_INFO 807 808- 系统能力: 809 SystemCapability.Communication.WiFi.P2P 810 811- 返回值: 812 | 类型 | 说明 | 813 | -------- | -------- | 814 | boolean | true:取消连接操作执行成功, false:取消连接操作执行失败。 | 815 816 817## wifi.startDiscoverDevices<sup>8+</sup> 818 819startDiscoverDevices(): boolean; 820 821开始发现设备。 822 823- 需要权限: 824 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 825 826- 系统能力: 827 SystemCapability.Communication.WiFi.P2P 828 829- 返回值: 830 | 类型 | 说明 | 831 | -------- | -------- | 832 | boolean | true:操作执行成功, false:操作执行失败。 | 833 834 835## wifi.stopDiscoverDevices<sup>8+</sup> 836 837stopDiscoverDevices(): boolean; 838 839停止发现设备。 840 841- 需要权限: 842 ohos.permission.GET_WIFI_INFO 843 844- 系统能力: 845 SystemCapability.Communication.WiFi.P2P 846 847- 返回值: 848 | 类型 | 说明 | 849 | -------- | -------- | 850 | boolean | true:操作执行成功,操作执行失败。 | 851 852 853## wifi.on('wifiStateChange')<sup>7+</sup> 854 855on(type: "wifiStateChange", callback: Callback<number>): void 856 857注册WLAN状态改变事件。 858 859- 需要权限: 860 ohos.permission.GET_WIFI_INFO 861 862- 系统能力: 863 SystemCapability.Communication.WiFi.STA 864 865- 参数 866 | **参数名** | **类型** | **必填** | **说明** | 867 | -------- | -------- | -------- | -------- | 868 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 869 | callback | Callback<number> | 是 | 状态改变回调函数。 | 870 871- 状态改变事件的枚举。 872 | **枚举值** | **说明** | 873 | -------- | -------- | 874 | 0 | 未激活。 | 875 | 1 | 已激活。 | 876 | 2 | 激活中。 | 877 | 3 | 去激活中。 | 878 879 880## wifi.off('wifiStateChange')<sup>7+</sup> 881 882off(type: "wifiStateChange", callback?: Callback<number>): void 883 884取消注册WLAN状态改变事件。 885 886- 需要权限: 887 ohos.permission.GET_WIFI_INFO 888 889- 系统能力: 890 SystemCapability.Communication.WiFi.STA 891 892- 参数 893 | **参数名** | **类型** | **必填** | **说明** | 894 | -------- | -------- | -------- | -------- | 895 | type | string | 是 | 固定填"wifiStateChange"字符串。 | 896 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 897 898- 示例 899 ```js 900 import wifi from '@ohos.wifi'; 901 902 var WIFI_POWER_STATE = "wifiStateChange"; 903 var recvPowerNotifyFunc = result => { 904 console.info("Receive power state change event: " + result); 905 } 906 907 // Register event 908 wifi.on(WIFI_POWER_STATE, recvPowerNotifyFunc); 909 910 // Unregister event 911 wifi.off(WIFI_POWER_STATE, recvPowerNotifyFunc); 912 ``` 913 914 915## wifi.on('wifiConnectionChange')<sup>7+</sup> 916 917on(type: "wifiConnectionChange", callback: Callback<number>): void 918 919注册WLAN连接状态改变事件。 920 921- 需要权限: 922 ohos.permission.GET_WIFI_INFO 923 924- 系统能力: 925 SystemCapability.Communication.WiFi.STA 926 927- 参数 928 | **参数名** | **类型** | **必填** | **说明** | 929 | -------- | -------- | -------- | -------- | 930 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 931 | callback | Callback<number> | 是 | 状态改变回调函数。 | 932 933- 连接状态改变事件的枚举。 934 | **枚举值** | **说明** | 935 | -------- | -------- | 936 | 0 | 已断开。 | 937 | 1 | 已连接。 | 938 939 940## wifi.off('wifiConnectionChange')<sup>7+</sup> 941 942off(type: "wifiConnectionChange", callback?: Callback<number>): void 943 944取消注册WLAN连接状态改变事件。 945 946- 需要权限: 947 ohos.permission.GET_WIFI_INFO 948 949- 系统能力: 950 SystemCapability.Communication.WiFi.STA 951 952- 参数 953 | **参数名** | **类型** | **必填** | **说明** | 954 | -------- | -------- | -------- | -------- | 955 | type | string | 是 | 固定填"wifiConnectionChange"字符串。 | 956 | callback | Callback<number> | 否 | 连接状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 957 958 959## wifi.on('wifiScanStateChange')<sup>7+</sup> 960 961on(type: "wifiScanStateChange", callback: Callback<number>): void 962 963注册扫描状态改变事件。 964 965- 需要权限: 966 ohos.permission.GET_WIFI_INFO 967 968- 系统能力: 969 SystemCapability.Communication.WiFi.STA 970 971- 参数 972 | **参数名** | **类型** | **必填** | **说明** | 973 | -------- | -------- | -------- | -------- | 974 | type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 975 | callback | Callback<number> | 是 | 状态改变回调函数。 | 976 977- 扫描状态改变事件的枚举。 978 | **枚举值** | **说明** | 979 | -------- | -------- | 980 | 0 | 扫描失败。 | 981 | 1 | 扫描成功。 | 982 983 984## wifi.off('wifiScanStateChange')<sup>7+</sup> 985 986off(type: "wifiScanStateChange", callback?: Callback<number>): void 987 988取消注册扫描状态改变事件。 989 990- 需要权限: 991 ohos.permission.GET_WIFI_INFO 992 993- 系统能力: 994 SystemCapability.Communication.WiFi.STA 995 996- 参数 997 998| **参数名** | **类型** | **必填** | **说明** | 999| -------- | -------- | -------- | -------- | 1000| type | string | 是 | 固定填"wifiScanStateChange"字符串。 | 1001| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1002 1003 1004## wifi.on('wifiRssiChange')<sup>7+</sup> 1005 1006on(type: "wifiRssiChange", callback: Callback<number>): void 1007 1008注册RSSI状态改变事件。 1009 1010- 需要权限: 1011 ohos.permission.GET_WIFI_INFO 1012 1013- 系统能力: 1014 SystemCapability.Communication.WiFi.STA 1015 1016- 参数 1017 | **参数名** | **类型** | **必填** | **说明** | 1018 | -------- | -------- | -------- | -------- | 1019 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 1020 | callback | Callback<number> | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 | 1021 1022 1023## wifi.off('wifiRssiChange')<sup>7+</sup> 1024 1025off(type: "wifiRssiChange", callback?: Callback<number>): void 1026 1027取消注册RSSI状态改变事件。 1028 1029- 需要权限: 1030 ohos.permission.GET_WIFI_INFO 1031 1032- 系统能力: 1033 SystemCapability.Communication.WiFi.STA 1034 1035- 参数 1036 | **参数名** | **类型** | **必填** | **说明** | 1037 | -------- | -------- | -------- | -------- | 1038 | type | string | 是 | 固定填"wifiRssiChange"字符串。 | 1039 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1040 1041 1042## wifi.on('hotspotStateChange')<sup>7+</sup> 1043 1044on(type: "hotspotStateChange", callback: Callback<number>): void 1045 1046注册热点状态改变事件。 1047 1048- 需要权限: 1049 ohos.permission.GET_WIFI_INFO 1050 1051- 系统能力: 1052 SystemCapability.Communication.WiFi.AP.Core 1053 1054- 参数 1055 | **参数名** | **类型** | **必填** | **说明** | 1056 | -------- | -------- | -------- | -------- | 1057 | type | string | 是 | 固定填"hotspotStateChange"字符串。 | 1058 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1059 1060- 热点状态改变事件的枚举。 1061 | **枚举值** | **说明** | 1062 | -------- | -------- | 1063 | 0 | 未激活。 | 1064 | 1 | 已激活。 | 1065 | 2 | 激活中。 | 1066 | 3 | 去激活中。 | 1067 1068 1069## wifi.off('hotspotStateChange')<sup>7+</sup> 1070 1071off(type: "hotspotStateChange", callback?: Callback<number>): void 1072 1073取消注册热点状态改变事件。 1074 1075- 需要权限: 1076 ohos.permission.GET_WIFI_INFO 1077 1078- 系统能力: 1079 SystemCapability.Communication.WiFi.AP.Core 1080 1081- 参数 1082 | **参数名** | **类型** | **必填** | **说明** | 1083 | -------- | -------- | -------- | -------- | 1084 | type | string | 是 | 固定填"hotspotStateChange"字符串。 | 1085 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1086 1087 1088## wifi.on('p2pStateChange')<sup>8+</sup> 1089 1090on(type: "p2pStateChange", callback: Callback<number>): void 1091 1092注册P2P开关状态改变事件。 1093 1094- 需要权限: 1095 ohos.permission.GET_WIFI_INFO 1096 1097- 系统能力: 1098 SystemCapability.Communication.WiFi.P2P 1099 1100- 参数 1101 | **参数名** | **类型** | **必填** | **说明** | 1102 | -------- | -------- | -------- | -------- | 1103 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 1104 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1105 1106- P2P状态改变事件的枚举。 1107 | **枚举值** | **说明** | 1108 | -------- | -------- | 1109 | 1 | 空闲。 | 1110 | 2 | 打开中。 | 1111 | 3 | 已打开。 | 1112 | 4 | 关闭中。 | 1113 | 5 | 已关闭。 | 1114 1115## wifi.off('p2pStateChange')<sup>8+</sup> 1116 1117off(type: "p2pStateChange", callback?: Callback<number>): void 1118 1119取消注册P2P开关状态改变事件。 1120 1121- 需要权限: 1122 ohos.permission.GET_WIFI_INFO 1123 1124- 系统能力: 1125 SystemCapability.Communication.WiFi.P2P 1126 1127- 参数 1128 | **参数名** | **类型** | **必填** | **说明** | 1129 | -------- | -------- | -------- | -------- | 1130 | type | string | 是 | 固定填"p2pStateChange"字符串。 | 1131 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1132 1133 1134 ## wifi.on('p2pConnectionChange')<sup>8+</sup> 1135 1136on(type: "p2pConnectionChange", callback: Callback<WifiP2pLinkedInfo>): void 1137 1138注册P2P连接状态改变事件。 1139 1140- 需要权限: 1141 ohos.permission.GET_WIFI_INFO 1142 1143- 系统能力: 1144 SystemCapability.Communication.WiFi.P2P 1145 1146- 参数 1147 | **参数名** | **类型** | **必填** | **说明** | 1148 | -------- | -------- | -------- | -------- | 1149 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 1150 | callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | 是 | 状态改变回调函数。 | 1151 1152 1153## wifi.off('p2pConnectionChange')<sup>8+</sup> 1154 1155off(type: "p2pConnectionChange", callback?: Callback<WifiP2pLinkedInfo>): void 1156 1157取消注册P2P连接状态改变事件。 1158 1159- 需要权限: 1160 ohos.permission.GET_WIFI_INFO 1161 1162- 系统能力: 1163 SystemCapability.Communication.WiFi.P2P 1164 1165- 参数 1166 | **参数名** | **类型** | **必填** | **说明** | 1167 | -------- | -------- | -------- | -------- | 1168 | type | string | 是 | 固定填"p2pConnectionChange"字符串。 | 1169 | callback | Callback<[WifiP2pLinkedInfo](#WifiP2pLinkedInfo)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1170 1171 1172## wifi.on('p2pDeviceChange')<sup>8+</sup> 1173 1174on(type: "p2pDeviceChange", callback: Callback<WifiP2pDevice>): void 1175 1176注册P2P设备状态改变事件。 1177 1178- 需要权限: 1179 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 1180 1181- 系统能力: 1182 SystemCapability.Communication.WiFi.P2P 1183 1184- 参数 1185 | **参数名** | **类型** | **必填** | **说明** | 1186 | -------- | -------- | -------- | -------- | 1187 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 1188 | callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | 是 | 状态改变回调函数。 | 1189 1190 1191## wifi.off('p2pDeviceChange')<sup>8+</sup> 1192 1193off(type: "p2pDeviceChange", callback?: Callback<WifiP2pDevice>): void 1194 1195取消注册P2P设备状态改变事件。 1196 1197- 需要权限: 1198 ohos.permission.LOCATION 1199 1200- 系统能力: 1201 SystemCapability.Communication.WiFi.P2P 1202 1203- 参数 1204 | **参数名** | **类型** | **必填** | **说明** | 1205 | -------- | -------- | -------- | -------- | 1206 | type | string | 是 | 固定填"p2pDeviceChange"字符串。 | 1207 | callback | Callback<[WifiP2pDevice](#WifiP2pDevice)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1208 1209 1210## wifi.on('p2pPeerDeviceChange')<sup>8+</sup> 1211 1212on(type: "p2pPeerDeviceChange", callback: Callback<WifiP2pDevice[]>): void 1213 1214注册P2P对端设备状态改变事件。 1215 1216- 需要权限: 1217 ohos.permission.GET_WIFI_INFO,ohos.permission.LOCATION 1218 1219- 系统能力: 1220 SystemCapability.Communication.WiFi.P2P 1221 1222- 参数 1223 | **参数名** | **类型** | **必填** | **说明** | 1224 | -------- | -------- | -------- | -------- | 1225 | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 1226 | callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | 是 | 状态改变回调函数。 | 1227 1228 1229## wifi.off('p2pPeerDeviceChange')<sup>8+</sup> 1230 1231off(type: "p2pPeerDeviceChange", callback?: Callback<WifiP2pDevice[]>): void 1232 1233取消注册P2P对端设备状态改变事件。 1234 1235- 需要权限: 1236 ohos.permission.LOCATION 1237 1238- 系统能力: 1239 SystemCapability.Communication.WiFi.P2P 1240 1241- 参数 1242 | **参数名** | **类型** | **必填** | **说明** | 1243 | -------- | -------- | -------- | -------- | 1244 | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 | 1245 | callback | Callback<[WifiP2pDevice[]](#WifiP2pDevice)> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1246 1247 1248## wifi.on('p2pPersistentGroupChange')<sup>8+</sup> 1249 1250on(type: "p2pPersistentGroupChange", callback: Callback<void>): void 1251 1252注册P2P永久组状态改变事件。 1253 1254- 需要权限: 1255 ohos.permission.GET_WIFI_INFO 1256 1257- 系统能力: 1258 SystemCapability.Communication.WiFi.P2P 1259 1260- 参数 1261 | **参数名** | **类型** | **必填** | **说明** | 1262 | -------- | -------- | -------- | -------- | 1263 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 1264 | callback | Callback<void> | 是 | 状态改变回调函数。 | 1265 1266 1267## wifi.off('p2pPersistentGroupChange')<sup>8+</sup> 1268 1269off(type: "p2pPersistentGroupChange", callback?: Callback<void>): void 1270 1271取消注册P2P永久组状态改变事件。 1272 1273- 需要权限: 1274 ohos.permission.GET_WIFI_INFO 1275 1276- 系统能力: 1277 SystemCapability.Communication.WiFi.P2P 1278 1279- 参数 1280 | **参数名** | **类型** | **必填** | **说明** | 1281 | -------- | -------- | -------- | -------- | 1282 | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 | 1283 | callback | Callback<void> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1284 1285 1286## wifi.on('p2pDiscoveryChange')<sup>8+</sup> 1287 1288on(type: "p2pDiscoveryChange", callback: Callback<number>): void 1289 1290注册发现设备状态改变事件。 1291 1292- 需要权限: 1293 ohos.permission.GET_WIFI_INFO 1294 1295- 系统能力: 1296 SystemCapability.Communication.WiFi.P2P 1297 1298- 参数 1299 | **参数名** | **类型** | **必填** | **说明** | 1300 | -------- | -------- | -------- | -------- | 1301 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 1302 | callback | Callback<number> | 是 | 状态改变回调函数。 | 1303 1304- 发现设备状态改变事件的枚举。 1305 | **枚举值** | **说明** | 1306 | -------- | -------- | 1307 | 0 | 初始状态。 | 1308 | 1 | 发现成功。 | 1309 1310 1311## wifi.off('p2pDiscoveryChange')<sup>8+</sup> 1312 1313off(type: "p2pDiscoveryChange", callback?: Callback<number>): void 1314 1315取消注册发现设备状态改变事件。 1316 1317- 需要权限: 1318 ohos.permission.GET_WIFI_INFO 1319 1320- 系统能力: 1321 SystemCapability.Communication.WiFi.P2P 1322 1323- 参数 1324 | **参数名** | **类型** | **必填** | **说明** | 1325 | -------- | -------- | -------- | -------- | 1326 | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 | 1327 | callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将去注册该事件关联的所有回调函数。 | 1328 1329