js-apis-wifiManager.md 117.6 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.wifiManager (WLAN)
X
xiaosi 已提交
2 3
该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。

zyjhandsome's avatar
zyjhandsome 已提交
4
> **说明:**
X
xiaosi 已提交
5 6 7 8 9 10
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```js
11
import wifiManager from '@ohos.wifiManager';
X
xiaosi 已提交
12 13
```

L
liujiaojiao 已提交
14
## wifiManager.enableWifi<sup>9+</sup>
X
xiaosi 已提交
15

L
liujiaojiao 已提交
16
enableWifi(): void
X
xiaosi 已提交
17

18
使能WLAN,异步接口,是否打开成功需要注册并监听wifiStateChange的回调。
X
xiaosi 已提交
19 20 21

**系统接口:** 此接口为系统接口。

22
**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION  仅系统应用可用。
X
xiaosi 已提交
23 24 25

**系统能力:** SystemCapability.Communication.WiFi.STA

26 27 28 29
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

30
| **错误码ID** | **错误信息** |
31
  | -------- | -------- |
32
| 2501000  | Operation failed.|
33

34 35
**示例:**

L
liujiaojiao 已提交
36 37
```js
	import wifiManager from '@ohos.wifiManager';
38 39 40 41 42 43 44

	try {
		wifiManager.enableWifi();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```
X
xiaosi 已提交
45

L
liujiaojiao 已提交
46
## wifiManager.disableWifi<sup>9+</sup>
X
xiaosi 已提交
47

L
liujiaojiao 已提交
48
disableWifi(): void
X
xiaosi 已提交
49

50
去使能WLAN,异步接口,是否关闭成功需要注册并监听wifiStateChange的回调。
X
xiaosi 已提交
51 52 53 54 55 56 57

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

58 59 60 61
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

62
| **错误码ID** | **错误信息** |
63
  | -------- | -------- |
64
| 2501000  | Operation failed.|
X
xiaosi 已提交
65

66 67
**示例:**

L
liujiaojiao 已提交
68 69
```js
	import wifiManager from '@ohos.wifiManager';
70 71 72 73 74 75 76 77

	try {
		wifiManager.disableWifi();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
78
## wifiManager.isWifiActive<sup>9+</sup>
X
xiaosi 已提交
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

isWifiActive(): boolean

查询WLAN是否已使能。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:已使能,&nbsp;false:未使能。 |

94 95 96 97
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

98
| **错误码ID** | **错误信息** |
99
  | -------- | -------- |
100
| 2501000  | Operation failed.|
X
xiaosi 已提交
101

102 103
**示例:**

L
liujiaojiao 已提交
104 105
```js
	import wifiManager from '@ohos.wifiManager';
106 107

	try {
CoderAdo's avatar
CoderAdo 已提交
108 109
		let isWifiActive = wifiManager.isWifiActive();
		console.info("isWifiActive:" + isWifiActive);
110 111 112 113 114
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
115
## wifiManager.scan<sup>9+</sup>
X
xiaosi 已提交
116

L
liujiaojiao 已提交
117
scan(): void
X
xiaosi 已提交
118 119 120

启动WLAN扫描。

121
**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
122 123 124

**系统能力:** SystemCapability.Communication.WiFi.STA

L
liujiaojiao 已提交
125
**错误码:**
X
xiaosi 已提交
126

L
liujiaojiao 已提交
127 128 129
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
X
xiaosi 已提交
130
  | -------- | -------- |
L
liujiaojiao 已提交
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
| 2501000  | Operation failed.|

**示例:**

```js
	import wifiManager from '@ohos.wifiManager';

	try {
		wifiManager.scan();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

## wifiManager.startScan<sup>10+</sup>

startScan(): void

**系统接口:** 此接口为系统接口。

启动WLAN扫描。

**需要权限:** ohos.permission.SET_WIFI_INFO 和ohos.permission.MANAGE_WIFI_CONNECTION

**系统能力:** SystemCapability.Communication.WiFi.STA
X
xiaosi 已提交
156

157 158 159 160
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

161
| **错误码ID** | **错误信息** |
162
  | -------- | -------- |
163
| 2501000  | Operation failed.|
X
xiaosi 已提交
164

165
**示例:**
166

L
liujiaojiao 已提交
167 168
```js
	import wifiManager from '@ohos.wifiManager';
169

170
	try {
L
liujiaojiao 已提交
171
		wifiManager.startScan();
172 173 174 175
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```
L
liujiaojiao 已提交
176
## wifiManager.getScanResults<sup>9+</sup>
L
liujiaojiao 已提交
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

getScanResults(): Promise&lt;Array&lt;WifiScanInfo&gt;&gt;

获取扫描结果,使用Promise异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或(ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION))

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

| **类型** | **说明** |
| -------- | -------- |
| Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&nbsp;&gt; | Promise对象。返回扫描到的热点列表。 |

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
| -------- | -------- |
| 2501000  | Operation failed.|

L
liujiaojiao 已提交
200
## wifiManager.getScanResults<sup>9+</sup>
L
liujiaojiao 已提交
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216

getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void

获取扫描结果,使用callback异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION))

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;&gt; | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 |
  | Array&lt;[WifiScanInfo](#wifiscaninfo)&gt; | 返回扫描到的热点列表。 |

**错误码:**
X
xiaosi 已提交
217

L
liujiaojiao 已提交
218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
| -------- | -------- |
| 2501000  | Operation failed.|

**示例:**
```js
  import wifiManager from '@ohos.wifiManager';
  
  wifiManager.getScanResults((err, result) => {
      if (err) {
          console.error("get scan info error");
          return;
      }
  
      var len = Object.keys(result).length;
      console.log("wifi received scan info: " + len);
      for (var i = 0; i < len; ++i) {
          console.info("ssid: " + result[i].ssid);
          console.info("bssid: " + result[i].bssid);
          console.info("capabilities: " + result[i].capabilities);
          console.info("securityType: " + result[i].securityType);
          console.info("rssi: " + result[i].rssi);
          console.info("band: " + result[i].band);
          console.info("frequency: " + result[i].frequency);
          console.info("channelWidth: " + result[i].channelWidth);
          console.info("timestamp: " + result[i].timestamp);
      }
  });
  
  wifiManager.getScanResults().then(result => {
      var len = Object.keys(result).length;
      console.log("wifi received scan info: " + len);
      for (var i = 0; i < len; ++i) {
          console.info("ssid: " + result[i].ssid);
          console.info("bssid: " + result[i].bssid);
          console.info("capabilities: " + result[i].capabilities);
          console.info("securityType: " + result[i].securityType);
          console.info("rssi: " + result[i].rssi);
          console.info("band: " + result[i].band);
          console.info("frequency: " + result[i].frequency);
          console.info("channelWidth: " + result[i].channelWidth);
          console.info("timestamp: " + result[i].timestamp);
      }
  });
```

L
liujiaojiao 已提交
266
## wifiManager.getScanResultsSync<sup>9+</sup>
L
liujiaojiao 已提交
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319

getScanResultsSync(): &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt;

获取扫描结果,使用同步方式返回结果。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION))

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

| **类型** | **说明** |
| -------- | -------- |
| &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo)&gt; | 扫描结果数组。 |

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2501000  | Operation failed.|

**示例:**

```js
	import wifiManager from '@ohos.wifiManager';

	try {
		let scanInfoList = wifiManager.getScanResultsSync();
		console.info("scanInfoList:" + JSON.stringify(scanInfoList));
		let len = Object.keys(scanInfoList).length;
        console.log("wifi received scan info: " + len);
		if(len > 0){
			for (var i = 0; i < len; ++i) {
				console.info("ssid: " + scanInfoList[i].ssid);
				console.info("bssid: " + scanInfoList[i].bssid);
				console.info("capabilities: " + scanInfoList[i].capabilities);
				console.info("securityType: " + scanInfoList[i].securityType);
				console.info("rssi: " + scanInfoList[i].rssi);
				console.info("band: " + scanInfoList[i].band);
				console.info("frequency: " + scanInfoList[i].frequency);
				console.info("channelWidth: " + scanInfoList[i].channelWidth);
				console.info("timestamp: " + scanInfoList[i].timestamp);
			}
		}	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
	
```

## wifiManager.getScanInfoList<sup>10+</sup>
X
xiaosi 已提交
320

321
getScanInfoList(): Array&lt;WifiScanInfo&gt;;
X
xiaosi 已提交
322

323
获取扫描结果。
X
xiaosi 已提交
324

L
liujiaojiao 已提交
325
**需要权限:** ohos.permission.GET_WIFI_INFO
X
xiaosi 已提交
326 327 328

**系统能力:** SystemCapability.Communication.WiFi.STA

329
**返回值:**
X
xiaosi 已提交
330

331 332 333
| **类型** | **说明** |
| -------- | -------- |
| Array&lt;[WifiScanInfo](#wifiscaninfo)&gt; | 返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的bssid为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
334

335 336 337 338
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

339
| **错误码ID** | **错误信息** |
340
  | -------- | -------- |
341
| 2501000  | Operation failed.|
342

X
xiaosi 已提交
343 344
**示例:**

L
liujiaojiao 已提交
345 346
```js
	import wifiManager from '@ohos.wifiManager';
347 348 349 350

	try {
		let scanInfoList = wifiManager.getScanInfoList();
		console.info("scanInfoList:" + JSON.stringify(scanInfoList));
L
liujiaojiao 已提交
351
		let len = Object.keys(scanInfoList).length;
352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370
        console.log("wifi received scan info: " + len);
		if(len > 0){
			for (var i = 0; i < len; ++i) {
				console.info("ssid: " + scanInfoList[i].ssid);
				console.info("bssid: " + scanInfoList[i].bssid);
				console.info("capabilities: " + scanInfoList[i].capabilities);
				console.info("securityType: " + scanInfoList[i].securityType);
				console.info("rssi: " + scanInfoList[i].rssi);
				console.info("band: " + scanInfoList[i].band);
				console.info("frequency: " + scanInfoList[i].frequency);
				console.info("channelWidth: " + scanInfoList[i].channelWidth);
				console.info("timestamp: " + scanInfoList[i].timestamp);
			}
		}	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
	
```
X
xiaosi 已提交
371

X
xiaosi 已提交
372
## WifiScanInfo<sup>9+</sup>
X
xiaosi 已提交
373 374 375 376 377 378

WLAN热点信息。

**系统能力:** SystemCapability.Communication.WiFi.STA


X
xiaosi 已提交
379
| **名称** | **类型** | **可读** | **可写** | **说明** |
380
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
381 382
| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
| bssid | string | 是 | 否 | 热点的BSSID。 |
L
liujiaojiao 已提交
383
| bssidType<sup>10+</sup>| DeviceAddressType | 是 | 否 | 热点的BSSID类型。 |
X
xiaosi 已提交
384 385 386 387 388 389
| capabilities | string | 是 | 否 | 热点能力。 |
| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | WLAN加密类型。 |
| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
| band | number | 是 | 否 | WLAN接入点的频段。 |
| frequency | number | 是 | 否 | WLAN接入点的频率。 |
| channelWidth | number | 是 | 否 | WLAN接入点的带宽。 |
X
xiaosi 已提交
390 391 392
| centerFrequency0 | number | 是 | 否 | 热点的中心频率。 |
| centerFrequency1 | number | 是 | 否 | 热点的中心频率。如果热点使用两个不重叠的WLAN信道,则返回两个中心频率,分别用centerFrequency0和centerFrequency1表示。 |
| infoElems | Array&lt;[WifiInfoElem](#wifiinfoelem9)&gt; | 是 | 否 | 信息元素。 |
X
xiaosi 已提交
393 394
| timestamp | number | 是 | 否 | 时间戳。 |

L
liujiaojiao 已提交
395 396 397 398 399 400 401 402 403 404
## DeviceAddressType <sup>10+</sup>

wifi 设备地址(mac/bissid)类型。

**系统能力:** SystemCapability.Communication.WiFi.Core

| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| RANDOM_DEVICE_ADDRESS | 0 | 随机设备地址。 |
| REAL_DEVICE_ADDRESS | 1 | 真实设备地址。 |
X
xiaosi 已提交
405

X
xiaosi 已提交
406
## WifiSecurityType<sup>9+</sup>
X
xiaosi 已提交
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426

表示加密类型的枚举。

**系统能力:** SystemCapability.Communication.WiFi.Core


| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 |
| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。 |
| WIFI_SEC_TYPE_WEP | 2 | Wired&nbsp;Equivalent&nbsp;Privacy&nbsp;(WEP)加密类型。 |
| WIFI_SEC_TYPE_PSK | 3 | Pre-shared&nbsp;key&nbsp;(PSK)加密类型。 |
| WIFI_SEC_TYPE_SAE | 4 | Simultaneous&nbsp;Authentication&nbsp;of&nbsp;Equals&nbsp;(SAE)加密类型。 |
| WIFI_SEC_TYPE_EAP<sup>9+</sup> | 5 | EAP加密类型。 |
| WIFI_SEC_TYPE_EAP_SUITE_B<sup>9+</sup> | 6 | Suite-B 192位加密类型。 |
| WIFI_SEC_TYPE_OWE<sup>9+</sup> | 7 | 机会性无线加密类型。 |
| WIFI_SEC_TYPE_WAPI_CERT<sup>9+</sup> | 8 | WAPI-Cert加密类型。 |
| WIFI_SEC_TYPE_WAPI_PSK<sup>9+</sup> | 9 | WAPI-PSK加密类型。 |


427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457
## WifiBandType<sup>10+</sup>

表示WIFI频段类型的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA

| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| WIFI_BAND_NONE | 0 | 无效频段类型。 |
| WIFI_BAND_2G | 1 | 2.4G频段类型。 |
| WIFI_BAND_5G | 2 | 5G频段类型。 |
| WIFI_BAND_6G | 3 | 6G频段类型。 |
| WIFI_BAND_60G | 4 | 60G频段类型。 |

## WifiStandard<sup>10+</sup>

表示WIFI标准的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA

| **名称** | **值** | **说明** |
| -------- | -------- | -------- |
| WIFI_STANDARD_UNDEFINED | 0 | 无效WIFI标准类型。 |
| WIFI_STANDARD_11A | 1 | 802.11a WiFi标准类型。 |
| WIFI_STANDARD_11B | 2 | 802.11b WiFi标准类型。 |
| WIFI_STANDARD_11G | 3 | 802.11g WiFi标准类型。 |
| WIFI_STANDARD_11N | 4 | 802.11n WiFi标准类型。 |
| WIFI_STANDARD_11AC | 5 | 802.11ac WiFi标准类型。 |
| WIFI_STANDARD_11AX | 6 | 802.11ax WiFi标准类型。 |
| WIFI_STANDARD_11AD | 7 | 802.11ad WiFi标准类型。 |

X
xiaosi 已提交
458 459 460 461 462 463 464
## WifiInfoElem<sup>9+</sup>

WLAN热点信息。

**系统能力:** SystemCapability.Communication.WiFi.STA


X
xiaosi 已提交
465 466
| **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
467 468
| eid | number | 是 | 否 | 元素ID。 |
| content | Uint8Array | 是 | 否 | 元素内容。 |
X
xiaosi 已提交
469 470 471 472 473 474 475 476 477


## WifiChannelWidth<sup>9+</sup>

表示带宽类型的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA


X
xiaosi 已提交
478
| **名称** | **值** | **说明** |
X
xiaosi 已提交
479 480 481 482 483 484 485 486
| -------- | -------- | -------- |
| WIDTH_20MHZ | 0 | 20MHZ。 |
| WIDTH_40MHZ | 1 | 40MHZ。 |
| WIDTH_80MHZ | 2 | 80MHZ。 |
| WIDTH_160MHZ | 3 | 160MHZ。 |
| WIDTH_80MHZ_PLUS | 4 | 80MHZ<sup>+</sup>。 |
| WIDTH_INVALID | 5 | 无效值 |

L
liujiaojiao 已提交
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531
## wifiManager.setScanAlwaysAllowed<sup>10+</sup>

setScanAlwaysAllowed(isScanAlwaysAllowed: boolean): void

设置是否始终允许扫描。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| isScanAlwaysAllowed | boolean | 是 | 是否始终允许扫描。 |

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2501000  | Operation failed.|

```js
	import wifiManager from '@ohos.wifiManager';

	try {
		let isScanAlwaysAllowed = true;
		wifiManager.setScanAlwaysAllowed(isScanAlwaysAllowed);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

## wifiManager.getScanAlwaysAllowed<sup>10+</sup>

getScanAlwaysAllowed(): boolean

获取是否始终允许扫描。

**系统接口:** 此接口为系统接口。

L
liujiaojiao 已提交
532
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
L
liujiaojiao 已提交
533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

| **类型** | **说明** |
| -------- | -------- |
| boolean| 是否始终允许扫描。 true 表示允许触发扫描,false表示在禁用wifi时不允许触发扫描|

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2501000  | Operation failed.|

**示例:**

```js
	import wifiManager from '@ohos.wifiManager';

	try {
		let isScanAlwaysAllowed = wifiManager.getScanAlwaysAllowed();
L
liujiaojiao 已提交
557
		console.info("isScanAlwaysAllowed:" + isScanAlwaysAllowed);
L
liujiaojiao 已提交
558 559 560 561 562
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
563
## wifiManager.addDeviceConfig<sup>9+</sup>
X
xiaosi 已提交
564 565 566 567 568 569 570 571 572 573 574 575 576

addDeviceConfig(config: WifiDeviceConfig): Promise&lt;number&gt;

添加网络配置,使用Promise异步回调。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

577 578 579
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
X
xiaosi 已提交
580 581 582 583 584 585 586

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | Promise&lt;number&gt; | Promise对象。返回添加的网络配置ID,如果值为-1表示添加失败。 |

587 588 589 590
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

591
| **错误码ID** | **错误信息** |
592
  | -------- | -------- |
593
| 2501000  | Operation failed.|
594

595 596
**示例:**

L
liujiaojiao 已提交
597 598
```js
	import wifiManager from '@ohos.wifiManager';
599 600 601 602 603 604 605 606 607 608 609 610 611 612 613

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 0
		}
		wifiManager.addDeviceConfig(config).then(result => {
			console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

X
xiaosi 已提交
614
## WifiDeviceConfig<sup>9+</sup>
X
xiaosi 已提交
615 616 617 618 619 620

WLAN配置信息。

**系统能力:** SystemCapability.Communication.WiFi.STA


X
xiaosi 已提交
621
| **名称** | **类型** | **可读** | **可写** | **说明** |
622
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
623 624
| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
| bssid | string | 是 | 否 | 热点的BSSID。 |
L
liujiaojiao 已提交
625
| bssidType<sup>10+</sup> | DeviceAddressType | 是 | 否 | 热点的BSSID类型。 |
X
xiaosi 已提交
626 627 628 629 630 631 632 633
| preSharedKey | string | 是 | 否 | 热点的密钥。 |
| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 |
| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | 加密类型。 |
| creatorUid | number | 是 | 否 | 创建用户的ID。 <br /> **系统接口:** 此接口为系统接口。 |
| disableReason | number | 是 | 否 | 禁用原因。 <br /> **系统接口:** 此接口为系统接口。 |
| netId | number | 是 | 否 | 分配的网络ID。 <br /> **系统接口:** 此接口为系统接口。 |
| randomMacType | number | 是 | 否 | 随机MAC类型。 <br /> **系统接口:** 此接口为系统接口。 |
| randomMacAddr | string | 是 | 否 | 随机MAC地址。 <br /> **系统接口:** 此接口为系统接口。 |
X
xiaosi 已提交
634 635
| ipType | [IpType](#iptype9) | 是 | 否 | IP地址类型。 <br /> **系统接口:** 此接口为系统接口。 |
| staticIp | [IpConfig](#ipconfig9) | 是 | 否 | 静态IP配置信息。 <br /> **系统接口:** 此接口为系统接口。 |
L
liujiaojiao 已提交
636 637
| eapConfig<sup>10+</sup> | [WifiEapConfig](#wifieapconfig10) | 是 | 否 | 可扩展身份验证协议配置。 |
| proxyConfig<sup>10+</sup> | WifiProxyConfig | 是 | 否 | 代理配置。  <br /> **系统接口:** 此接口为系统接口。|
X
xiaosi 已提交
638

X
xiaosi 已提交
639
## IpType<sup>9+</sup>
X
xiaosi 已提交
640 641 642 643 644 645 646 647 648 649 650 651 652 653 654

表示IP类型的枚举。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.STA


| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| STATIC | 0 | 静态IP。 |
| DHCP | 1 | 通过DHCP获取。 |
| UNKNOWN | 2 | 未指定。 |


X
xiaosi 已提交
655
## IpConfig<sup>9+</sup>
X
xiaosi 已提交
656 657 658 659 660 661 662

IP配置信息。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
663
| **名称** | **类型** | **可读** | **可写** | **说明** |
664
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
665 666
| ipAddress | number | 是 | 否 | IP地址。 |
| gateway | number | 是 | 否 | 网关。 |
X
xiaosi 已提交
667
| prefixLength | number | 是 | 否 | 掩码。 |
X
xiaosi 已提交
668 669 670 671
| dnsServers | number[] | 是 | 否 | DNS服务器。 |
| domains | Array&lt;string&gt; | 是 | 否 | 域信息。 |


L
liujiaojiao 已提交
672
## WifiEapConfig<sup>10+</sup>
X
xiaosi 已提交
673 674 675 676 677

可扩展身份验证协议配置信息。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
678
| **名称** | **类型** | **可读** | **可写** | **说明** |
X
xiaosi 已提交
679
| -------- | -------- | -------- | -------- | -------- |
L
liujiaojiao 已提交
680 681
| eapMethod | [EapMethod](#eapmethod10) | 是 | 否 | EAP认证方式。 |
| phase2Method | [Phase2Method](#phase2method10) | 是 | 否 | 第二阶段认证方式。 |
X
xiaosi 已提交
682 683 684
| identity | string | 是 | 否 | 身份信息。 |
| anonymousIdentity | string | 是 | 否 | 匿名身份。 |
| password | string | 是 | 否 | 密码。 |
L
liujiaojiao 已提交
685
| caCertAlias | string | 是 | 否 | CA 证书别名。 |
X
xiaosi 已提交
686
| caPath | string | 是 | 否 | CA 证书路径。 |
L
liujiaojiao 已提交
687
| clientCertAlias | string | 是 | 否 | 客户端证书别名。 |
688 689
| certEntry | Uint8Array | 是 | 是 | CA 证书内容。 |
| certPassword | string | 是 | 是 | CA证书密码。 |
X
xiaosi 已提交
690 691 692 693 694
| altSubjectMatch | string | 是 | 否 | 替代主题匹配。 |
| domainSuffixMatch | string | 是 | 否 | 域后缀匹配。 |
| realm | string | 是 | 否 | 通行证凭证的领域。 |
| plmn | string | 是 | 否 | 公共陆地移动网的直通凭证提供商。 |
| eapSubId | number | 是 | 否 | SIM卡的子ID。 |
X
xiaosi 已提交
695 696


L
liujiaojiao 已提交
697
## EapMethod<sup>10+</sup>
X
xiaosi 已提交
698 699 700 701 702

表示EAP认证方式的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
703
| 名称 | 值 | 说明 |
X
xiaosi 已提交
704 705 706 707 708 709 710 711 712 713 714 715
| -------- | -------- | -------- |
| EAP_NONE | 0 | 不指定。 |
| EAP_PEAP | 1 | PEAP类型。 |
| EAP_TLS | 2 | TLS类型。 |
| EAP_TTLS | 3 | TTLS类型。 |
| EAP_PWD | 4 | PWD类型。 |
| EAP_SIM | 5 | SIM类型。 |
| EAP_AKA | 6 | AKA类型。 |
| EAP_AKA_PRIME | 7 | AKA Prime类型。 |
| EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 |


L
liujiaojiao 已提交
716
## Phase2Method<sup>10+</sup>
X
xiaosi 已提交
717 718 719 720 721

表示第二阶段认证方式的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
722
| 名称 | 值 | 说明 |
X
xiaosi 已提交
723 724 725 726 727 728 729 730 731 732 733
| -------- | -------- | -------- |
| PHASE2_NONE | 0 | 不指定。 |
| PHASE2_PAP | 1 | PAP类型。 |
| PHASE2_MSCHAP | 2 | MSCHAP类型。 |
| PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 |
| PHASE2_GTC | 4 | GTC类型。 |
| PHASE2_SIM | 5 | SIM类型。 |
| PHASE2_AKA | 6 | AKA类型。 |
| PHASE2_AKA_PRIME | 7 | AKA Prime类型。 |


L
liujiaojiao 已提交
734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
## WifiProxyConfig <sup>10+</sup>

Wifi 代理配置。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.STA

| **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | -------- | -------- |
| proxyMethod | ProxyMethod | 是 | 否 | 代理方法 |
| pacWebAddress | string | 是 | 否 | 自动配置代理的PAC web 地址。 |
| serverHostName | string | 是 | 否 | 手动配置代理的服务器主机名。 |
| serverPort | string | 是 | 否 | 手动配置代理的服务器端口。 |
| exclusionObjects | string | 是 | 否 | 手动配置代理的排除对象,对象用“,”分隔。|

## ProxyMethod<sup>10+</sup>

表示WiFi代理方法的枚举。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.STA

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| METHOD_NONE  | 0 | 不使用代理。 |
| METHOD_AUTO  | 1 | 使用自动配置的代理。 |
| METHOD_MANUAL  | 2 | 使用手动配置的代理。 |

L
liujiaojiao 已提交
764
## wifiManager.addDeviceConfig<sup>9+</sup>
X
xiaosi 已提交
765 766 767 768 769 770 771 772 773 774 775 776 777

addDeviceConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;number&gt;): void

添加网络配置,使用callback异步回调。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

778 779 780 781
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。当error为非0,表示处理出现错误。 |
X
xiaosi 已提交
782

783 784 785 786
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

787
| **错误码ID** | **错误信息** |
788
  | -------- | -------- |
789
| 2501000  | Operation failed.|
X
xiaosi 已提交
790

791 792
**示例:**

L
liujiaojiao 已提交
793 794
```js
	import wifiManager from '@ohos.wifiManager';
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 0
		}
		wifiManager.addDeviceConfig(config,(error,result) => {
			console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
810
## wifiManager.addCandidateConfig<sup>9+</sup>
X
xiaosi 已提交
811 812 813 814 815 816 817 818 819 820 821

addCandidateConfig(config: WifiDeviceConfig): Promise&lt;number&gt;

添加候选网络配置,使用Promise异步回调。

**需要权限:** ohos.permission.SET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

822 823 824
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
X
xiaosi 已提交
825 826 827 828 829 830 831

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | Promise&lt;number&gt; | Promise对象。表示网络配置ID。 |

832 833 834 835
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

836
| **错误码ID** | **错误信息** |
837
  | -------- | -------- |
838
| 2501000  | Operation failed.|
X
xiaosi 已提交
839

840
**示例:**
L
liujiaojiao 已提交
841 842
`````js
	import wifiManager from '@ohos.wifiManager';
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 0
		}
		wifiManager.addCandidateConfig(config).then(result => {
			console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
`````

L
liujiaojiao 已提交
858
## wifiManager.addCandidateConfig<sup>9+</sup>
X
xiaosi 已提交
859 860 861 862 863 864 865 866 867 868 869

addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;number&gt;): void

添加候选网络配置,使用callback异步回调。

**需要权限:** ohos.permission.SET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

870 871 872 873
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 |
X
xiaosi 已提交
874

875 876 877 878
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

879
| **错误码ID** | **错误信息** |
880
  | -------- | -------- |
881
| 2501000  | Operation failed.|
X
xiaosi 已提交
882

883
**示例:**
L
liujiaojiao 已提交
884 885
`````js
	import wifiManager from '@ohos.wifiManager';
886 887 888 889 890 891 892 893 894 895 896 897 898 899 900

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 0
		}
		wifiManager.addCandidateConfig(config,(error,result) => {
			console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
`````

L
liujiaojiao 已提交
901
## wifiManager.removeCandidateConfig<sup>9+</sup>
X
xiaosi 已提交
902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922

removeCandidateConfig(networkId: number): Promise&lt;void&gt;

移除候选网络配置,使用Promise异步回调。

**需要权限:** ohos.permission.SET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | networkId | number | 是 | 网络配置ID。 |

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | Promise&lt;void&gt; | Promise对象。 |

923 924 925 926
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

927
| **错误码ID** | **错误信息** |
928
  | -------- | -------- |
929
| 2501000  | Operation failed.|
X
xiaosi 已提交
930

931 932
**示例:**

L
liujiaojiao 已提交
933 934
```js
	import wifiManager from '@ohos.wifiManager';
935 936 937

	try {
		let networkId = 0;
938
		wifiManager.removeCandidateConfig(networkId).then(result => {
939 940 941 942 943 944 945
			console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
946
## wifiManager.removeCandidateConfig<sup>9+</sup>
X
xiaosi 已提交
947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962

removeCandidateConfig(networkId: number, callback: AsyncCallback&lt;void&gt;): void

移除候选网络配置,使用callback异步回调。

**需要权限:** ohos.permission.SET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | networkId | number | 是 | 网络配置ID。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当操作成功时,err为0。如果error为非0,表示处理出现错误。 |

963 964 965 966
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

967
| **错误码ID** | **错误信息** |
968
  | -------- | -------- |
969
| 2501000  | Operation failed.|
X
xiaosi 已提交
970

971
**示例:**
L
liujiaojiao 已提交
972 973
```js
	import wifiManager from '@ohos.wifiManager';
974 975 976

	try {
		let networkId = 0;
977
		wifiManager.removeCandidateConfig(networkId,(error,result) => {
978 979 980 981 982 983 984
		console.info("result:" + JSON.stringify(result));
		});	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
985
## wifiManager.getCandidateConfigs<sup>9+</sup>
X
xiaosi 已提交
986 987 988 989 990

getCandidateConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt;

获取候选网络配置。

991
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
992 993 994 995 996 997 998 999 1000

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt; | 候选网络配置数组。 |

1001 1002 1003 1004
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1005
| **错误码ID** | **错误信息** |
1006
  | -------- | -------- |
1007 1008 1009 1010
| 2501000  | Operation failed.| 

**示例:**

L
liujiaojiao 已提交
1011 1012
`````js
	import wifiManager from '@ohos.wifiManager';
1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029

	try {
		let configs = wifiManager.getCandidateConfigs();
		console.info("configs:" + JSON.stringify(configs));
		let len = Object.keys(configs).length;
        console.log("result len: " + len);
		if(len > 0){
			for (var i = 0; i < len; ++i) {
				console.info("ssid: " + configs[i].ssid);
				console.info("bssid: " + configs[i].bssid);
			}
		}	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
	
`````
X
xiaosi 已提交
1030

L
liujiaojiao 已提交
1031
## wifiManager.connectToCandidateConfig<sup>9+</sup>
X
xiaosi 已提交
1032 1033 1034

connectToCandidateConfig(networkId: number): void

1035
应用使用该接口连接到自己添加的候选网络(如果当前已经连接到热点,需要先断开连接)。
X
xiaosi 已提交
1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046

**需要权限:** ohos.permission.SET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | networkId | number | 是 | 候选网络配置的ID。 |

1047 1048 1049 1050
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1051
| **错误码ID** | **错误信息** |
1052
  | -------- | -------- |
1053 1054
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1055

1056
**示例:**
L
liujiaojiao 已提交
1057 1058
```js
	import wifiManager from '@ohos.wifiManager';
1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069

	try {
		let networkId = 0;
		let ret = wifiManager.connectToCandidateConfig(networkId);
		console.info("result:" + ret);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
	
```

L
liujiaojiao 已提交
1070
## wifiManager.connectToNetwork<sup>9+</sup>
X
xiaosi 已提交
1071

X
xiaosi 已提交
1072
connectToNetwork(networkId: number): void
X
xiaosi 已提交
1073

1074
连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)。
X
xiaosi 已提交
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | networkId | number | 是 | 待连接的网络配置ID。 |

1088
**错误码:**
X
xiaosi 已提交
1089

1090
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1091

1092
| **错误码ID** | **错误信息** |
1093
  | -------- | -------- |
1094 1095
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1096

1097 1098
**示例:**

L
liujiaojiao 已提交
1099 1100
```js
	import wifiManager from '@ohos.wifiManager';
1101 1102 1103 1104 1105 1106 1107 1108 1109

	try {
		let networkId = 0;
		wifiManager.connectToNetwork(networkId);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}	
```

L
liujiaojiao 已提交
1110
## wifiManager.connectToDevice<sup>9+</sup>
X
xiaosi 已提交
1111

X
xiaosi 已提交
1112
connectToDevice(config: WifiDeviceConfig): void
X
xiaosi 已提交
1113

1114
连接到指定网络(如果当前已经连接到热点,请先使用disconnet()接口断开连接)。
X
xiaosi 已提交
1115 1116 1117

**系统接口:** 此接口为系统接口。

L
liujiaojiao 已提交
1118
**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。
X
xiaosi 已提交
1119 1120 1121 1122 1123 1124

**系统能力:**
  SystemCapability.Communication.WiFi.STA

**参数:**

1125 1126 1127
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
X
xiaosi 已提交
1128

1129
**错误码:**
X
xiaosi 已提交
1130

1131
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1132

1133
| **错误码ID** | **错误信息** |
1134
  | -------- | -------- |
1135 1136
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1137

1138
**示例:**
L
liujiaojiao 已提交
1139 1140
```js
	import wifiManager from '@ohos.wifiManager';
1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 3
		}
		wifiManager.connectToDevice(config);
				
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1155
## wifiManager.disconnect<sup>9+</sup>
X
xiaosi 已提交
1156

X
xiaosi 已提交
1157
disconnect(): void
X
xiaosi 已提交
1158 1159 1160 1161 1162 1163 1164 1165 1166 1167

断开连接的网络。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:**
  SystemCapability.Communication.WiFi.STA

1168
**错误码:**
X
xiaosi 已提交
1169

1170
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1171

1172
| **错误码ID** | **错误信息** |
1173
  | -------- | -------- |
1174
| 2501000  | Operation failed.|
X
xiaosi 已提交
1175

1176
**示例:**
L
liujiaojiao 已提交
1177 1178
```js
	import wifiManager from '@ohos.wifiManager';
1179 1180 1181 1182 1183 1184 1185 1186

	try {
		wifiManager.disconnect();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1187
## wifiManager.getSignalLevel<sup>9+</sup>
X
xiaosi 已提交
1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209

getSignalLevel(rssi: number, band: number): number

查询WLAN信号强度。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | rssi | number | 是 | 热点的信号强度(dBm)。 |
  | band | number | 是 | WLAN接入点的频段。 |

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | number | 信号强度,取值范围为[0,&nbsp;4]。 |

1210 1211 1212 1213
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1214
| **错误码ID** | **错误信息** |
1215
  | -------- | -------- |
1216
| 2501000  | Operation failed.|
X
xiaosi 已提交
1217

1218
**示例:**
L
liujiaojiao 已提交
1219 1220
```js
	import wifiManager from '@ohos.wifiManager';
1221 1222 1223 1224 1225

	try {
		let rssi = 0;
		let band = 0;
		let level = wifiManager.getSignalLevel(rssi,band);
L
liujiaojiao 已提交
1226
		console.info("level:" + JSON.stringify(level));
1227 1228 1229 1230 1231 1232
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}

```

L
liujiaojiao 已提交
1233
## wifiManager.getLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
1234 1235 1236 1237 1238

getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;

获取WLAN连接信息,使用Promise异步回调。

1239
**需要权限:** ohos.permission.GET_WIFI_INFO 。 获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。
X
xiaosi 已提交
1240 1241 1242 1243 1244 1245 1246 1247 1248

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | Promise对象。表示WLAN连接信息。 |

1249 1250 1251 1252
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1253
| **错误码ID** | **错误信息** |
1254
  | -------- | -------- |
1255 1256
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1257

L
liujiaojiao 已提交
1258
## wifiManager.getLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
1259 1260 1261 1262 1263

getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void

获取WLAN连接信息,使用callback异步回调。

1264
**需要权限:** ohos.permission.GET_WIFI_INFO 。 获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。
X
xiaosi 已提交
1265 1266 1267 1268 1269 1270 1271 1272 1273

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果error为非0,表示处理出现错误。 |

1274 1275 1276 1277
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1278
| **错误码ID** | **错误信息** |
1279
  | -------- | -------- |
1280 1281
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
1282

X
xiaosi 已提交
1283
**示例:**
L
liujiaojiao 已提交
1284
```js
L
liujiaojiao 已提交
1285
  import wifiManager from '@ohos.wifiManager';
X
xiaosi 已提交
1286
  
L
liujiaojiao 已提交
1287
  wifiManager.getLinkedInfo((err, data) => {
X
xiaosi 已提交
1288 1289 1290 1291 1292 1293 1294
      if (err) {
          console.error("get linked info error");
          return;
      }
      console.info("get wifi linked info: " + JSON.stringify(data));
  });
  
L
liujiaojiao 已提交
1295
  wifiManager.getLinkedInfo().then(data => {
X
xiaosi 已提交
1296 1297 1298 1299
      console.info("get wifi linked info: " + JSON.stringify(data));
  }).catch(error => {
      console.info("get linked info error");
  });
L
liujiaojiao 已提交
1300
```
X
xiaosi 已提交
1301 1302


X
xiaosi 已提交
1303
## WifiLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
1304 1305 1306 1307 1308

提供WLAN连接的相关信息。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
1309
| 名称 | 类型 | 可读 | 可写 | 说明 |
1310
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
1311 1312 1313 1314 1315
| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
| bssid | string | 是 | 否 | 热点的BSSID。 |
| networkId | number | 是 | 否 | 网络配置ID。 <br /> **系统接口:** 此接口为系统接口。 |
| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
| band | number | 是 | 否 | WLAN接入点的频段。 |
1316 1317 1318 1319
| linkSpeed | number | 是 | 否 | WLAN接入点的上行速度。 |
| rxLinkSpeed<sup>10+</sup> | number | 是 | 否 | WLAN接入点的下行速度。 |
| maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大上行速率。 |
| maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大下行速率。 |
X
xiaosi 已提交
1320 1321 1322 1323 1324
| frequency | number | 是 | 否 | WLAN接入点的频率。 |
| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 |
| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 |
| chload | number | 是 | 否 | 连接负载,值越大表示负载约高。 <br /> **系统接口:** 此接口为系统接口。 |
| snr | number | 是 | 否 | 信噪比。 <br /> **系统接口:** 此接口为系统接口。 |
1325
| macType | number | 是 | 否 | MAC地址类型。 |
X
xiaosi 已提交
1326 1327 1328 1329
| macAddress | string | 是 | 否 | 设备的MAC地址。 |
| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 |
| suppState | [SuppState](#suppstate) | 是 | 否 | 请求状态。 <br /> **系统接口:** 此接口为系统接口。 |
| connState | [ConnState](#connstate) | 是 | 否 | WLAN连接状态。 |
1330 1331
| channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth) | 是 | 否 | 当前连接热点的信道带宽。 |
| wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard) | 是 | 否 | 当前连接热点的WiFi标准。 |
X
xiaosi 已提交
1332

X
xiaosi 已提交
1333
## ConnState<sup>9+</sup>
X
xiaosi 已提交
1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350

表示WLAN连接状态的枚举。

**系统能力:** SystemCapability.Communication.WiFi.STA

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| SCANNING | 0 | 设备正在搜索可用的AP。 |
| CONNECTING | 1 | 正在建立WLAN连接。 |
| AUTHENTICATING | 2 | WLAN连接正在认证中。 |
| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 |
| CONNECTED | 4 | WLAN连接已建立。 |
| DISCONNECTING | 5 | WLAN连接正在断开。 |
| DISCONNECTED | 6 | WLAN连接已断开。 |
| UNKNOWN | 7 | WLAN连接建立失败。 |


X
xiaosi 已提交
1351
## SuppState<sup>9+</sup>
X
xiaosi 已提交
1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373

表示请求状态的枚举。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.STA

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| DISCONNECTED | 0 | 已断开。 |
| INTERFACE_DISABLED | 1 | 接口禁用。 |
| INACTIVE | 2 | 未激活。 |
| SCANNING | 3 | 扫描中。 |
| AUTHENTICATING | 4 | 认证中。 |
| ASSOCIATING | 5 | 关联中。 |
| ASSOCIATED | 6 | 已关联。 |
| FOUR_WAY_HANDSHAKE | 7 | 四次握手。 |
| GROUP_HANDSHAKE | 8 | 组握手。 |
| COMPLETED | 9 | 所有认证已完成。 |
| UNINITIALIZED | 10 | 连接建立失败。 |
| INVALID | 11 | 无效值。 |

L
liujiaojiao 已提交
1374
## wifiManager.isConnected<sup>9+</sup>
X
xiaosi 已提交
1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389

isConnected(): boolean

查询WLAN是否已连接。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:已连接,&nbsp;false:未连接。 |

1390 1391 1392 1393
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1394
| **错误码ID** | **错误信息** |
1395
  | -------- | -------- |
1396
| 2501000  | Operation failed.|
X
xiaosi 已提交
1397

1398
**示例:**
L
liujiaojiao 已提交
1399 1400
```js
	import wifiManager from '@ohos.wifiManager';
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410

	try {
		let ret = wifiManager.isConnected();
		console.info("isConnected:" + ret);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}

```

L
liujiaojiao 已提交
1411
## wifiManager.getSupportedFeatures<sup>9+</sup>
X
xiaosi 已提交
1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443

getSupportedFeatures(): number

查询设备支持的特性。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.Core

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | number | 支持的特性值。 |

**特性ID值枚举:**

| 枚举值 | 说明 |
| -------- | -------- |
| 0x0001 | 基础结构模式特性。 |
| 0x0002 | 5&nbsp;GHz带宽特性。 |
| 0x0004 | GAS/ANQP特性。 |
| 0x0008 | Wifi-Direct特性。 |
| 0x0010 | Soft&nbsp;AP特性。 |
| 0x0040 | Wi-Fi&nbsp;AWare组网特性。 |
| 0x8000 | AP&nbsp;STA共存特性。 |
| 0x8000000 | WPA3-Personal&nbsp;SAE特性。 |
| 0x10000000 | WPA3-Enterprise&nbsp;Suite-B |
| 0x20000000 | 增强开放特性。 |

1444 1445 1446 1447
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1448
| **错误码ID** | **错误信息** |
1449
  | -------- | -------- |
1450
| 2401000  | Operation failed.|
X
xiaosi 已提交
1451

1452
**示例:**
L
liujiaojiao 已提交
1453 1454
```js
	import wifiManager from '@ohos.wifiManager';
1455 1456 1457 1458 1459 1460 1461 1462 1463 1464

	try {
		let ret = wifiManager.getSupportedFeatures();
		console.info("supportedFeatures:" + ret);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}

```

L
liujiaojiao 已提交
1465
## wifiManager.isFeatureSupported<sup>9+</sup>
X
xiaosi 已提交
1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487

isFeatureSupported(featureId: number): boolean

判断设备是否支持相关WLAN特性。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.Core

**参数:**


  | **参数名** | **类型** | 必填 | **说明** |
  | -------- | -------- | -------- | -------- |
  | featureId | number | 是 | 特性ID值。 |

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:支持,&nbsp;false:不支持。 |

1488 1489 1490 1491
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1492
| **错误码ID** | **错误信息** |
1493
  | -------- | -------- |
1494
| 2401000  | Operation failed.|
X
xiaosi 已提交
1495

1496
**示例:**
L
liujiaojiao 已提交
1497 1498
```js
	import wifiManager from '@ohos.wifiManager';
1499 1500

	try {
L
liujiaojiao 已提交
1501
		let featureId = 0;
1502 1503 1504 1505 1506 1507 1508 1509
		let ret = wifiManager.isFeatureSupported(featureId);
		console.info("isFeatureSupported:" + ret);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}

```

L
liujiaojiao 已提交
1510
## wifiManager.getDeviceMacAddress<sup>9+</sup>
X
xiaosi 已提交
1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527

getDeviceMacAddress(): string[]

获取设备的MAC地址。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_LOCAL_MAC 和 ohos.permission.GET_WIFI_INFO,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | string[] | MAC地址。 |

1528 1529 1530 1531
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1532
| **错误码ID** | **错误信息** |
1533
  | -------- | -------- |
1534
| 2501000  | Operation failed.|
X
xiaosi 已提交
1535

1536
**示例:**
L
liujiaojiao 已提交
1537 1538
```js
	import wifiManager from '@ohos.wifiManager';
1539 1540 1541 1542 1543 1544 1545 1546 1547 1548

	try {
		let ret = wifiManager.getDeviceMacAddress();
		console.info("deviceMacAddress:" + JSON.stringify(ret));
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}

```

L
liujiaojiao 已提交
1549
## wifiManager.getIpInfo<sup>9+</sup>
X
xiaosi 已提交
1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562

getIpInfo(): IpInfo

获取IP信息。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
X
xiaosi 已提交
1563
  | [IpInfo](#ipinfo9) | IP信息。 |
X
xiaosi 已提交
1564

1565 1566 1567 1568
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1569
| **错误码ID** | **错误信息** |
1570
  | -------- | -------- |
1571
| 2501000  | Operation failed.|
X
xiaosi 已提交
1572

1573
**示例:**
L
liujiaojiao 已提交
1574 1575
```js
	import wifiManager from '@ohos.wifiManager';
1576 1577 1578 1579 1580 1581 1582 1583 1584

	try {
		let info = wifiManager.getIpInfo();
		console.info("info:" + JSON.stringify(info));
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

X
xiaosi 已提交
1585
## IpInfo<sup>9+</sup>
X
xiaosi 已提交
1586 1587 1588 1589 1590

IP信息。

**系统能力:** SystemCapability.Communication.WiFi.STA

X
xiaosi 已提交
1591
| **名称** | **类型** | **可读** | **可写** | **说明** |
1592
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
1593 1594 1595 1596 1597 1598 1599 1600 1601
| ipAddress | number | 是 | 否 | IP地址。 |
| gateway | number | 是 | 否 | 网关。 |
| netmask | number | 是 | 否 | 掩码。 |
| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 |
| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 |
| serverIp | number | 是 | 否 | DHCP服务端IP地址。 |
| leaseDuration | number | 是 | 否 | IP地址租用时长。 |


L
liujiaojiao 已提交
1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
## wifiManager.getIpv6Info<sup>10+</sup>

getIpv6Info(): Ipv6Info

获取IP信息。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

| **类型** | **说明** |
| -------- | -------- |
| Ipv6Info | Ipv6信息。 |

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2501000  | Operation failed.|

**示例:**
```js
	import wifiManager from '@ohos.wifiManager';

	try {
		let info = wifiManager.getIpv6Info();
		console.info("info:" + JSON.stringify(info));
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```
## Ipv6Info <sup>10+</sup>

Ipv6信息。

**系统能力:** SystemCapability.Communication.WiFi.STA

| **名称** | **类型** | **可读** | **可写** | **说明** |
| -------- | -------- | -------- | -------- | -------- |
| linkIpv6Address | string | 是 | 否 | 链路Ipv6地址。 |
| globalIpv6Address | string | 是 | 否 | 全局Ipv6地址。 |
| randomGlobalIpv6Address | number | 是 | 否 | 随机全局Ipv6地址。 |
| gateway | string | 是 | 否 | 网关。 |
| netmask | string | 是 | 否 | 网络掩码。 |
| primaryDNS | string | 是 | 否 | 主DNS服务器Ipv6地址。 |
| secondDNS | string | 是 | 否 | 备DNS服务器Ipv6地址。 |


L
liujiaojiao 已提交
1654
## wifiManager.getCountryCode<sup>9+</sup>
X
xiaosi 已提交
1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669

getCountryCode(): string

获取国家码信息。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.Core

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | string | 国家码。 |

1670 1671 1672 1673
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1674
| **错误码ID** | **错误信息** |
1675
  | -------- | -------- |
1676
| 2401000  | Operation failed.|
X
xiaosi 已提交
1677

1678
**示例:**
L
liujiaojiao 已提交
1679 1680
```js
	import wifiManager from '@ohos.wifiManager';
1681 1682 1683 1684 1685 1686 1687 1688 1689

	try {
		let code = wifiManager.getCountryCode();
		console.info("code:" + code);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1690
## wifiManager.reassociate<sup>9+</sup>
X
xiaosi 已提交
1691

X
xiaosi 已提交
1692
reassociate(): void
X
xiaosi 已提交
1693 1694 1695 1696 1697 1698 1699 1700 1701

重新关联网络。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

1702
**错误码:**
X
xiaosi 已提交
1703

1704
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1705

1706
| **错误码ID** | **错误信息** |
1707
  | -------- | -------- |
1708 1709
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1710

1711
**示例:**
L
liujiaojiao 已提交
1712 1713
```js
	import wifiManager from '@ohos.wifiManager';
1714 1715 1716 1717 1718 1719 1720 1721

	try {
		wifiManager.reassociate();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1722
## wifiManager.reconnect<sup>9+</sup>
X
xiaosi 已提交
1723

X
xiaosi 已提交
1724
reconnect(): void
X
xiaosi 已提交
1725 1726 1727 1728 1729 1730 1731 1732 1733

重新连接网络。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

1734
**错误码:**
X
xiaosi 已提交
1735

1736
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1737

1738
| **错误码ID** | **错误信息** |
1739
  | -------- | -------- |
1740 1741
| 2501000  | Operation failed.|
| 2501001  | Wifi is closed.|
X
xiaosi 已提交
1742

1743
**示例:**
L
liujiaojiao 已提交
1744 1745
```js
	import wifiManager from '@ohos.wifiManager';
1746 1747 1748 1749 1750 1751 1752 1753

	try {
		wifiManager.reconnect();
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1754
## wifiManager.getDeviceConfigs<sup>9+</sup>
X
xiaosi 已提交
1755 1756 1757 1758 1759 1760 1761

getDeviceConfigs(): &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt;

获取网络配置。

**系统接口:** 此接口为系统接口。

1762
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 和 ohos.permission.GET_WIFI_CONFIG
X
xiaosi 已提交
1763 1764 1765 1766 1767 1768 1769 1770 1771

**系统能力:** SystemCapability.Communication.WiFi.STA

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig)&gt; | 网络配置信息的数组。 |

1772 1773 1774 1775
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1776
| **错误码ID** | **错误信息** |
1777
  | -------- | -------- |
1778
| 2501000  | Operation failed.|
X
xiaosi 已提交
1779

1780
**示例:**
L
liujiaojiao 已提交
1781 1782
```js
	import wifiManager from '@ohos.wifiManager';
1783 1784 1785 1786 1787 1788 1789 1790 1791

	try {
		let configs = wifiManager.getDeviceConfigs();
		console.info("configs:" + JSON.stringify(configs));
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1792
## wifiManager.updateNetwork<sup>9+</sup>
X
xiaosi 已提交
1793

L
liujiaojiao 已提交
1794
updateNetwork(config: WifiDeviceConfig): number
X
xiaosi 已提交
1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815

更新网络配置。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.SET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | number | 返回更新的网络配置ID,如果值为-1表示更新失败。 |

1816 1817 1818 1819
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1820
| **错误码ID** | **错误信息** |
1821
  | -------- | -------- |
1822
| 2501000  | Operation failed.|
X
xiaosi 已提交
1823

1824
**示例:**
L
liujiaojiao 已提交
1825 1826
```js
	import wifiManager from '@ohos.wifiManager';
1827 1828 1829 1830 1831 1832 1833

	try {
		let config = {
			ssid : "****",
			preSharedKey : "****",
			securityType : 3
		}
L
liujiaojiao 已提交
1834
		let ret = wifiManager.updateNetwork(config);
1835 1836 1837 1838 1839 1840
		console.error("ret:" + ret);		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1841
## wifiManager.disableNetwork<sup>9+</sup>
X
xiaosi 已提交
1842

L
liujiaojiao 已提交
1843
disableNetwork(netId: number): void
X
xiaosi 已提交
1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856

去使能网络配置。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
L
liujiaojiao 已提交
1857
  | netId | number | 是 | 网络配置ID。 |
X
xiaosi 已提交
1858

1859
**错误码:**
X
xiaosi 已提交
1860

1861
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1862

1863
| **错误码ID** | **错误信息** |
1864
  | -------- | -------- |
1865
| 2501000  | Operation failed.|
X
xiaosi 已提交
1866

1867
**示例:**
L
liujiaojiao 已提交
1868 1869
```js
	import wifiManager from '@ohos.wifiManager';
1870 1871 1872

	try {
		let netId = 0;
L
liujiaojiao 已提交
1873
		wifiManager.disableNetwork(netId);		
1874 1875 1876 1877 1878
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1879
## wifiManager.removeAllNetwork<sup>9+</sup>
X
xiaosi 已提交
1880

L
liujiaojiao 已提交
1881
removeAllNetwork(): void
X
xiaosi 已提交
1882 1883 1884 1885 1886 1887 1888 1889 1890

移除所有网络配置。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

1891
**错误码:**
X
xiaosi 已提交
1892

1893
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1894

1895
| **错误码ID** | **错误信息** |
1896
  | -------- | -------- |
1897
| 2501000  | Operation failed.|
X
xiaosi 已提交
1898

1899
**示例:**
L
liujiaojiao 已提交
1900 1901
```js
	import wifiManager from '@ohos.wifiManager';
1902 1903

	try {
L
liujiaojiao 已提交
1904
		wifiManager.removeAllNetwork();		
1905 1906 1907 1908 1909
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1910
## wifiManager.removeDevice<sup>9+</sup>
X
xiaosi 已提交
1911

L
liujiaojiao 已提交
1912
removeDevice(id: number): void
X
xiaosi 已提交
1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925

移除指定的网络配置。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
L
liujiaojiao 已提交
1926
  | id | number | 是 | 网络配置ID。 |
X
xiaosi 已提交
1927

1928
**错误码:**
X
xiaosi 已提交
1929

1930
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
1931

1932
| **错误码ID** | **错误信息** |
1933
  | -------- | -------- |
1934
| 2501000  | Operation failed.|
X
xiaosi 已提交
1935

1936
**示例:**
L
liujiaojiao 已提交
1937 1938
```js
	import wifiManager from '@ohos.wifiManager';
1939 1940 1941

	try {
		let id = 0;
L
liujiaojiao 已提交
1942
		wifiManager.removeDevice(id);		
1943 1944 1945 1946 1947
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1948
## wifiManager.isBandTypeSupported<sup>10+</sup>
1949 1950 1951 1952 1953 1954 1955 1956 1957

isBandTypeSupported(bandType: WifiBandType): boolean

判断当前频段是否支持。

**需要权限:** ohos.permission.GET_WIFI_INFO。

**系统能力:** SystemCapability.Communication.WiFi.STA

1958 1959 1960 1961 1962 1963
**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | bandType | WifiBandType | 是 | Wifi 频段类型。 |

CoderAdo's avatar
CoderAdo 已提交
1964 1965 1966 1967 1968 1969
**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:支持,&nbsp;false:不支持。 |

1970 1971 1972 1973
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

1974
| **错误码ID** | **错误信息** |
1975 1976 1977
  | -------- | -------- |
| 2501000  | Operation failed.|

1978
**示例:**
L
liujiaojiao 已提交
1979 1980
```js
	import wifiManager from '@ohos.wifiManager';
1981 1982 1983

	try {
		let type = 0;
L
liujiaojiao 已提交
1984
		let isBandTypeSupported = wifiManager.isBandTypeSupported(type);
1985 1986 1987 1988 1989 1990
		console.info("isBandTypeSupported:" + isBandTypeSupported);		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
1991
## wifiManager.get5GChannelList<sup>10+</sup>
1992

1993
get5GChannelList(): Array&lt;number&gt;
1994 1995 1996 1997 1998

获取当前设备支持的5G信道列表。

**系统接口:** 此接口为系统接口。

1999
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG
2000 2001 2002

**系统能力:** SystemCapability.Communication.WiFi.STA

CoderAdo's avatar
CoderAdo 已提交
2003 2004 2005 2006 2007 2008
**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
  | &nbsp;Array&lt;number&gt; | 设备支持的5G信道列表。 |

2009 2010 2011 2012
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2013
| **错误码ID** | **错误信息** |
2014 2015 2016
  | -------- | -------- |
| 2501000  | Operation failed.|

2017
**示例:**
L
liujiaojiao 已提交
2018 2019
```js
	import wifiManager from '@ohos.wifiManager';
2020 2021 2022 2023 2024 2025 2026 2027

	try {
		let channelList = wifiManager.get5GChannelList();
		console.info("channelList:" + JSON.stringify(channelList));		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```
L
liujiaojiao 已提交
2028
## wifiManager.getDisconnectedReason<sup>10+</sup>
L
liujiaojiao 已提交
2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051

getDisconnectedReason(): DisconnectedReason

获取最近一次断连原因

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.STA

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2601000  | Operation failed.|

**返回值:**

| **类型** | **说明** |
| -------- | -------- |
L
liujiaojiao 已提交
2052
| DisconnectedReason | 最近断开的原因 |
L
liujiaojiao 已提交
2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069

**示例:**
```js
	import wifiManager from '@ohos.wifiManager';

	try {
		let disconnectedReason = wifiManager.getDisconnectedReason();	
        console.info("disconnectedReason:" + disconnectedReason);
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

## DisconnectedReason <sup>10+</sup>

表示wifi断开原因的枚举。

L
liujiaojiao 已提交
2070 2071
**系统接口:** 此接口为系统接口。

L
liujiaojiao 已提交
2072 2073 2074 2075 2076 2077 2078
**系统能力:** SystemCapability.Communication.WiFi.STA

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| DISC_REASON_DEFAULT  | 0 | 默认原因。 |
| DISC_REASON_WRONG_PWD  | 1 | 密码错误。 |
| DISC_REASON_CONNECTION_FULL  | 2 | 路由器的连接数已达到最大数量限制。 |
L
liujiaojiao 已提交
2079

L
liujiaojiao 已提交
2080
## wifiManager.enableHotspot<sup>9+</sup>
X
xiaosi 已提交
2081

X
xiaosi 已提交
2082
enableHotspot(): void
X
xiaosi 已提交
2083

2084
使能热点,异步接口,是否打开成功需要注册并监听hotspotStateChange的回调。
X
xiaosi 已提交
2085 2086 2087 2088 2089 2090 2091

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

2092
**错误码:**
X
xiaosi 已提交
2093

2094
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2095

2096
| **错误码ID** | **错误信息** |
2097
  | -------- | -------- |
2098
| 2601000  | Operation failed.|
X
xiaosi 已提交
2099

2100
**示例:**
L
liujiaojiao 已提交
2101 2102
```js
	import wifiManager from '@ohos.wifiManager';
2103 2104 2105 2106 2107 2108 2109 2110

	try {
		wifiManager.enableHotspot();	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2111
## wifiManager.disableHotspot<sup>9+</sup>
X
xiaosi 已提交
2112

X
xiaosi 已提交
2113
disableHotspot(): void
X
xiaosi 已提交
2114

2115
去使能热点 ,异步接口,是否关闭成功需要注册并监听hotspotStateChange的回调。
X
xiaosi 已提交
2116 2117 2118 2119 2120 2121 2122

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

2123
**错误码:**
X
xiaosi 已提交
2124

2125
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2126

2127
| **错误码ID** | **错误信息** |
2128
  | -------- | -------- |
2129
| 2601000  | Operation failed.|
X
xiaosi 已提交
2130

2131
**示例:**
L
liujiaojiao 已提交
2132 2133
```js
	import wifiManager from '@ohos.wifiManager';
2134 2135 2136 2137 2138 2139 2140 2141

	try {
		wifiManager.disableHotspot();	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2142
## wifiManager.isHotspotDualBandSupported<sup>9+</sup>
X
xiaosi 已提交
2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157

isHotspotDualBandSupported(): boolean

热点是否支持双频。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
2158
  | boolean | true:支持,&nbsp;false:不支持.|
X
xiaosi 已提交
2159

2160 2161 2162 2163
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2164
| **错误码ID** | **错误信息** |
2165
  | -------- | -------- |
2166
| 2601000  | Operation failed.|
X
xiaosi 已提交
2167

2168
**示例:**
L
liujiaojiao 已提交
2169 2170
```js
	import wifiManager from '@ohos.wifiManager';
2171 2172 2173 2174 2175 2176 2177 2178 2179

	try {
		let ret = wifiManager.isHotspotDualBandSupported();
		console.info("result:" + ret);		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2180
## wifiManager.isHotspotActive<sup>9+</sup>
X
xiaosi 已提交
2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195

isHotspotActive(): boolean

热点是否已使能。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
2196
  | boolean | true:已使能,&nbsp;false:未使能.|
X
xiaosi 已提交
2197

2198 2199 2200 2201
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2202
| **错误码ID** | **错误信息** |
2203
  | -------- | -------- |
2204
| 2601000  | Operation failed.|
X
xiaosi 已提交
2205

2206
**示例:**
L
liujiaojiao 已提交
2207 2208
```js
	import wifiManager from '@ohos.wifiManager';
2209 2210 2211 2212 2213 2214 2215 2216 2217

	try {
		let ret = wifiManager.isHotspotActive();
		console.info("result:" + ret);		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2218
## wifiManager.setHotspotConfig<sup>9+</sup>
X
xiaosi 已提交
2219

X
xiaosi 已提交
2220
setHotspotConfig(config: HotspotConfig): void
X
xiaosi 已提交
2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233

设置热点配置信息。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2234
  | config | [HotspotConfig](#hotspotconfig9) | 是 | 热点配置信息。 |
X
xiaosi 已提交
2235

2236
**错误码:**
X
xiaosi 已提交
2237

2238
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2239

2240
| **错误码ID** | **错误信息** |
2241
  | -------- | -------- |
2242
| 2601000  | Operation failed.|
X
xiaosi 已提交
2243

2244
**示例:**
L
liujiaojiao 已提交
2245 2246
```js
	import wifiManager from '@ohos.wifiManager';
2247 2248 2249 2250 2251 2252 2253 2254 2255 2256

	try {
		let config = {
			ssid: "****",
			securityType: 3,
			band: 0,
			channel: 0,
			preSharedKey: "****",
			maxConn: 0
		}
2257
		let ret = wifiManager.setHotspotConfig();
2258 2259 2260 2261 2262 2263
		console.info("result:" + ret);		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

X
xiaosi 已提交
2264
## HotspotConfig<sup>9+</sup>
X
xiaosi 已提交
2265 2266 2267 2268 2269 2270 2271

热点配置信息。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

X
xiaosi 已提交
2272
| **名称** | **类型** | **可读** | **可写** | **说明** |
2273
| -------- | -------- | -------- | -------- | -------- |
2274 2275 2276
| ssid | string | 是 | 是 | 热点的SSID,编码格式为UTF-8。 |
| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 是 | 加密类型。 |
| band | number | 是 | 是 | 热点的带宽。1: 2.4G, 2: 5G, 3: 双模频段 |
Y
ok  
yanxiaotao 已提交
2277
| channel<sup>10+</sup> | number | 是 | 是 | 热点的信道(2.4G:1~14,5G:7~196,双模频段:暂不支持)。 |
2278 2279
| preSharedKey | string | 是 | 是 | 热点的密钥。 |
| maxConn | number | 是 | 是 | 最大设备连接数。 |
X
xiaosi 已提交
2280

L
liujiaojiao 已提交
2281
## wifiManager.getHotspotConfig<sup>9+</sup>
X
xiaosi 已提交
2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296

getHotspotConfig(): HotspotConfig

获取热点配置信息。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**返回值:**

  | **类型** | **说明** |
  | -------- | -------- |
X
xiaosi 已提交
2297
  | [HotspotConfig](#hotspotconfig9) | 热点的配置信息。 |
X
xiaosi 已提交
2298

2299 2300 2301 2302
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2303
| **错误码ID** | **错误信息** |
2304
  | -------- | -------- |
2305
| 2601000  | Operation failed.|
X
xiaosi 已提交
2306

2307
**示例:**
L
liujiaojiao 已提交
2308 2309
```js
	import wifiManager from '@ohos.wifiManager';
2310 2311 2312 2313 2314 2315 2316 2317 2318

	try {
		let config = wifiManager.getHotspotConfig();
		console.info("result:" + JSON.stringify(config));		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2319
## wifiManager.getStations<sup>9+</sup>
X
xiaosi 已提交
2320

L
liujiaojiao 已提交
2321
getStations(): &nbsp;Array&lt;[StationInfo](#stationinfo9)&gt;
X
xiaosi 已提交
2322 2323 2324 2325 2326

获取连接的设备。

**系统接口:** 此接口为系统接口。

2327
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 和 ohos.permission.MANAGE_WIFI_HOTSPOT,仅系统应用可用。
X
xiaosi 已提交
2328 2329 2330 2331 2332

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**返回值:**

2333 2334 2335
| **类型** | **说明** |
| -------- | -------- |
| &nbsp;Array&lt;[StationInfo](#stationinfo9)&gt; | 连接的设备数组。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的macAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
2336

2337 2338 2339 2340
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2341
| **错误码ID** | **错误信息** |
2342
  | -------- | -------- |
2343
| 2601000  | Operation failed.|
X
xiaosi 已提交
2344

2345
**示例:**
L
liujiaojiao 已提交
2346 2347
```js
	import wifiManager from '@ohos.wifiManager';
2348 2349

	try {
L
liujiaojiao 已提交
2350
		let stations = wifiManager.getStations();
2351 2352 2353 2354 2355 2356
		console.info("result:" + JSON.stringify(stations));		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

X
xiaosi 已提交
2357
## StationInfo<sup>9+</sup>
X
xiaosi 已提交
2358 2359 2360 2361 2362 2363 2364

接入的设备信息。

**系统接口:** 此接口为系统接口。

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

X
xiaosi 已提交
2365
| **名称** | **类型** | **可读** | **可写** | **说明** |
2366
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2367 2368
| name | string | 是 | 否 | 设备名称。 |
| macAddress | string | 是 | 否 | MAC地址。 |
L
liujiaojiao 已提交
2369
| macAddressType<sup>10+</sup> | DeviceAddressType | 是 | 否 | MAC地址类型。 |
X
xiaosi 已提交
2370 2371 2372
| ipAddress | string | 是 | 否 | IP地址。 |


L
liujiaojiao 已提交
2373
## wifiManager.getP2pLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386

getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;

获取P2P连接信息,使用Promise异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
X
xiaosi 已提交
2387
  | Promise&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | Promise对象。表示P2P连接信息。 |
X
xiaosi 已提交
2388

2389
**错误码:**
X
xiaosi 已提交
2390

2391 2392
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2393
| **错误码ID** | **错误信息** |
2394
  | -------- | -------- |
2395
| 2801000  | Operation failed.|
X
xiaosi 已提交
2396

2397
**示例:**
L
liujiaojiao 已提交
2398 2399
```js
	import wifiManager from '@ohos.wifiManager';
2400

L
liujiaojiao 已提交
2401
	wifiManager.getP2pLinkedInfo((err, data) => {
2402 2403 2404 2405 2406 2407 2408
    if (err) {
        console.error("get p2p linked info error");
        return;
    }
		console.info("get wifi p2p linked info: " + JSON.stringify(data));
	});

L
liujiaojiao 已提交
2409
	wifiManager.getP2pLinkedInfo().then(data => {
2410 2411 2412 2413 2414
		console.info("get wifi p2p linked info: " + JSON.stringify(data));
	});
```


X
xiaosi 已提交
2415
## WifiP2pLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
2416 2417 2418 2419 2420

提供WLAN连接的相关信息。

**系统能力:** SystemCapability.Communication.WiFi.P2P

X
xiaosi 已提交
2421
| 名称 | 类型 | 可读 | 可写 | 说明 |
2422
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2423
| connectState | [P2pConnectState](#p2pconnectstate9) | 是 | 否 | P2P连接状态。 |
X
xiaosi 已提交
2424 2425 2426 2427
| isGroupOwner | boolean | 是 | 否 | 是否是群主。 |
| groupOwnerAddr | string | 是 | 否 | 群组MAC地址。 


X
xiaosi 已提交
2428
## P2pConnectState<sup>9+</sup>
X
xiaosi 已提交
2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439

表示P2P连接状态的枚举。

**系统能力:** SystemCapability.Communication.WiFi.P2P

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| DISCONNECTED | 0 | 断开状态。 |
| CONNECTED | 1 | 连接状态。 |


L
liujiaojiao 已提交
2440
## wifiManager.getP2pLinkedInfo<sup>9+</sup>
X
xiaosi 已提交
2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453

getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void

获取P2P连接信息,使用callback异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2454
  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果error为非0,表示处理出现错误。 |
X
xiaosi 已提交
2455 2456


L
liujiaojiao 已提交
2457
## wifiManager.getCurrentP2pGroup<sup>9+</sup>
X
xiaosi 已提交
2458

2459
getCurrentP2pGroup(): Promise&lt;WifiP2pGroupInfo&gt;
X
xiaosi 已提交
2460 2461 2462

获取P2P当前组信息,使用Promise异步回调。

2463
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION  和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2464 2465 2466 2467 2468

**系统能力:** SystemCapability.Communication.WiFi.P2P

**返回值:**

2469 2470 2471
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt; | Promise对象。表示当前组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
2472

2473 2474 2475 2476
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2477
| **错误码ID** | **错误信息** |
2478
  | -------- | -------- |
2479
| 2801000  | Operation failed.|
X
xiaosi 已提交
2480

L
liujiaojiao 已提交
2481
## wifiManager.getCurrentP2pGroup<sup>9+</sup>
X
xiaosi 已提交
2482

2483
getCurrentP2pGroup(callback: AsyncCallback&lt;WifiP2pGroupInfo&gt;): void
X
xiaosi 已提交
2484 2485 2486

获取P2P当前组信息,使用callback异步回调。

2487
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2488 2489 2490 2491 2492

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

2493 2494 2495
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
2496

2497 2498 2499 2500
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2501
| **错误码ID** | **错误信息** |
2502
  | -------- | -------- |
2503
| 2801000  | Operation failed.|
L
liujiaojiao 已提交
2504

2505
**示例:**
L
liujiaojiao 已提交
2506 2507
```js
	import wifiManager from '@ohos.wifiManager';
2508

L
liujiaojiao 已提交
2509
	wifiManager.getCurrentP2pGroup((err, data) => {
2510 2511 2512 2513 2514 2515 2516
    if (err) {
        console.error("get current P2P group error");
        return;
    }
		console.info("get current P2P group: " + JSON.stringify(data));
	});

L
liujiaojiao 已提交
2517
	wifiManager.getCurrentP2pGroup().then(data => {
2518 2519 2520
		console.info("get current P2P group: " + JSON.stringify(data));
	});
```
X
xiaosi 已提交
2521

L
liujiaojiao 已提交
2522
## wifiManager.getP2pPeerDevices<sup>9+</sup>
X
xiaosi 已提交
2523 2524 2525 2526 2527

getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;

获取P2P对端设备列表信息,使用Promise异步回调。

2528
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2529 2530 2531 2532 2533

**系统能力:** SystemCapability.Communication.WiFi.P2P

**返回值:**

2534 2535 2536
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | Promise对象。表示对端设备列表信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
2537

2538 2539 2540 2541
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2542
| **错误码ID** | **错误信息** |
2543
  | -------- | -------- |
2544
| 2801000  | Operation failed.|
X
xiaosi 已提交
2545

L
liujiaojiao 已提交
2546
## wifiManager.getP2pPeerDevices<sup>9+</sup>
X
xiaosi 已提交
2547 2548 2549 2550 2551

getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void

获取P2P对端设备列表信息,使用callback异步回调。

2552
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2553 2554 2555 2556 2557

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

2558 2559 2560
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
2561

2562 2563 2564 2565
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2566
| **错误码ID** | **错误信息** |
2567
  | -------- | -------- |
2568
| 2801000  | Operation failed.|
X
xiaosi 已提交
2569

2570
**示例:**
L
liujiaojiao 已提交
2571 2572
```js
	import wifiManager from '@ohos.wifiManager';
2573

L
liujiaojiao 已提交
2574
	wifiManager.getP2pPeerDevices((err, data) => {
2575 2576 2577 2578 2579 2580 2581
    if (err) {
        console.error("get P2P peer devices error");
        return;
    }
		console.info("get P2P peer devices: " + JSON.stringify(data));
	});

L
liujiaojiao 已提交
2582
	wifiManager.getP2pPeerDevices().then(data => {
2583 2584 2585 2586
		console.info("get P2P peer devices: " + JSON.stringify(data));
	});
```

X
xiaosi 已提交
2587
## WifiP2pDevice<sup>9+</sup>
X
xiaosi 已提交
2588 2589 2590 2591 2592

表示P2P设备信息。

**系统能力:** SystemCapability.Communication.WiFi.P2P

X
xiaosi 已提交
2593
| 名称 | 类型 | 可读 | 可写 | 说明 |
2594
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2595 2596
| deviceName | string | 是 | 否 | 设备名称。 |
| deviceAddress | string | 是 | 否 | 设备MAC地址。 |
L
liujiaojiao 已提交
2597
| deviceAddressType<sup>10+</sup> | DeviceAddressType | 是 | 否 | 设备MAC地址类型。 |
X
xiaosi 已提交
2598
| primaryDeviceType | string | 是 | 否 | 主设备类型。 |
X
xiaosi 已提交
2599
| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus9) | 是 | 否 | 设备状态。 |
X
xiaosi 已提交
2600
| groupCapabilities | number | 是 | 否 | 群组能力。 |
X
xiaosi 已提交
2601 2602


X
xiaosi 已提交
2603
## P2pDeviceStatus<sup>9+</sup>
X
xiaosi 已提交
2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617

表示设备状态的枚举。

**系统能力:** SystemCapability.Communication.WiFi.P2P

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| CONNECTED | 0 | 连接状态。 |
| INVITED | 1 | 邀请状态。 |
| FAILED | 2 | 失败状态。 |
| AVAILABLE | 3 | 可用状态。 |
| UNAVAILABLE | 4 | 不可用状态。 |


L
liujiaojiao 已提交
2618
## wifiManager.getP2pLocalDevice<sup>9+</sup>
X
xiaosi 已提交
2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631

getP2pLocalDevice(): Promise&lt;WifiP2pDevice&gt;

获取P2P本端设备信息,使用Promise异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.P2P

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
X
xiaosi 已提交
2632
  | Promise&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | Promise对象。表示本端设备信息。 |
X
xiaosi 已提交
2633

2634 2635 2636 2637
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

2638
| **错误码ID** | **错误信息** |
2639
  | -------- | -------- |
2640
| 2801000  | Operation failed.|
X
xiaosi 已提交
2641

L
liujiaojiao 已提交
2642
## wifiManager.getP2pLocalDevice<sup>9+</sup>
X
xiaosi 已提交
2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655

getP2pLocalDevice(callback: AsyncCallback&lt;WifiP2pDevice&gt;): void

获取P2P本端设备信息,使用callback异步回调。

**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.GET_WIFI_CONFIG

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2656
  | callback | AsyncCallback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示本端设备信息。如果error为非0,表示处理出现错误。 |
X
xiaosi 已提交
2657

L
liujiaojiao 已提交
2658 2659
**错误码:**

2660 2661 2662 2663 2664
| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2801000  | Operation failed.|

**示例:**
L
liujiaojiao 已提交
2665 2666
```js
	import wifiManager from '@ohos.wifiManager';
2667 2668 2669 2670 2671 2672 2673 2674 2675

	wifiManager.getP2pLocalDevice((err, data) => {
    if (err) {
        console.error("get P2P local device error");
        return;
    }
		console.info("get P2P local device: " + JSON.stringify(data));
	});

L
liujiaojiao 已提交
2676
	wifiManager.getP2pLocalDevice().then(data => {
2677 2678 2679
		console.info("get P2P local device: " + JSON.stringify(data));
	});
```
X
xiaosi 已提交
2680

L
liujiaojiao 已提交
2681
## wifiManager.createGroup<sup>9+</sup>
X
xiaosi 已提交
2682

L
liujiaojiao 已提交
2683
createGroup(config: WifiP2PConfig): void
X
xiaosi 已提交
2684 2685 2686 2687 2688 2689 2690 2691 2692

创建群组。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

2693 2694 2695
| **参数名** | **类型** | 必填 | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 群组配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 |
X
xiaosi 已提交
2696

2697
**错误码:**
X
xiaosi 已提交
2698

2699
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2700

2701
| **错误码ID** | **错误信息** |
2702
  | -------- | -------- |
2703
| 2801000  | Operation failed.|
X
xiaosi 已提交
2704

2705
**示例:**
L
liujiaojiao 已提交
2706 2707
```js
	import wifiManager from '@ohos.wifiManager';
2708 2709 2710 2711 2712 2713 2714 2715 2716

	try {
		let config = {
			deviceAddress: "****",
			netId: 0,
			passphrase: "*****",
			groupName: "****",
			goBand: 0
		}
L
liujiaojiao 已提交
2717
		wifiManager.createGroup(config);	
2718 2719 2720 2721 2722 2723
		
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

X
xiaosi 已提交
2724
## WifiP2PConfig<sup>9+</sup>
X
xiaosi 已提交
2725 2726 2727 2728 2729

表示P2P配置信息。

**系统能力:** SystemCapability.Communication.WiFi.P2P

X
xiaosi 已提交
2730
| 名称 | 类型 | 可读 | 可写 | 说明 |
2731
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
2732
| deviceAddress | string | 是 | 否 | 设备地址。 |
L
liujiaojiao 已提交
2733
| deviceAddressType<sup>10+</sup>| DeviceAddressType | 是 | 否 | 设备地址类型。 |
X
xiaosi 已提交
2734 2735 2736
| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 |
| passphrase | string | 是 | 否 | 群组密钥。 |
| groupName | string | 是 | 否 | 群组名称。 |
X
xiaosi 已提交
2737
| goBand | [GroupOwnerBand](#groupownerband9) | 是 | 否 | 群组带宽。 |
X
xiaosi 已提交
2738 2739


X
xiaosi 已提交
2740
## GroupOwnerBand<sup>9+</sup>
X
xiaosi 已提交
2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752

表示群组带宽的枚举。

**系统能力:** SystemCapability.Communication.WiFi.P2P

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| GO_BAND_AUTO | 0 | 自动模式。 |
| GO_BAND_2GHZ | 1 | 2GHZ。 |
| GO_BAND_5GHZ | 2 | 5GHZ。 |


L
liujiaojiao 已提交
2753
## wifiManager.removeGroup<sup>9+</sup>
X
xiaosi 已提交
2754

L
liujiaojiao 已提交
2755
removeGroup(): void
X
xiaosi 已提交
2756 2757 2758 2759 2760 2761 2762

移除群组。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

2763
**错误码:**
X
xiaosi 已提交
2764

2765
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2766

2767
| **错误码ID** | **错误信息** |
2768
  | -------- | -------- |
2769
| 2801000  | Operation failed.|
X
xiaosi 已提交
2770

2771
**示例:**
L
liujiaojiao 已提交
2772 2773
```js
	import wifiManager from '@ohos.wifiManager';
2774 2775

	try {
L
liujiaojiao 已提交
2776
		wifiManager.removeGroup();	
2777 2778 2779 2780 2781
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2782
## wifiManager.p2pConnect<sup>9+</sup>
X
xiaosi 已提交
2783

X
xiaosi 已提交
2784
p2pConnect(config: WifiP2PConfig): void
X
xiaosi 已提交
2785 2786 2787

执行P2P连接。

2788
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2789 2790 2791 2792 2793

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

2794 2795 2796
| **参数名** | **类型** | 必填 | **说明** |
| -------- | -------- | -------- | -------- |
| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 连接配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 |
X
xiaosi 已提交
2797

2798
**错误码:**
X
xiaosi 已提交
2799

2800
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2801

2802
| **错误码ID** | **错误信息** |
2803
  | -------- | -------- |
2804
| 2801000  | Operation failed.|
X
xiaosi 已提交
2805 2806

**示例:**
L
liujiaojiao 已提交
2807
```js
L
liujiaojiao 已提交
2808
  import wifiManager from '@ohos.wifiManager';
X
xiaosi 已提交
2809 2810 2811
  
  var recvP2pConnectionChangeFunc = result => {
      console.info("p2p connection change receive event: " + JSON.stringify(result));
L
liujiaojiao 已提交
2812
      wifiManager.getP2pLinkedInfo((err, data) => {
X
xiaosi 已提交
2813 2814 2815 2816 2817 2818 2819
          if (err) {
              console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err));
              return;
          }
          console.info("get getP2pLinkedInfo: " + JSON.stringify(data));
      });
  }
L
liujiaojiao 已提交
2820
  wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
X
xiaosi 已提交
2821 2822 2823 2824
  
  var recvP2pDeviceChangeFunc = result => {
      console.info("p2p device change receive event: " + JSON.stringify(result));
  }
L
liujiaojiao 已提交
2825
  wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
X
xiaosi 已提交
2826 2827 2828
  
  var recvP2pPeerDeviceChangeFunc = result => {
      console.info("p2p peer device change receive event: " + JSON.stringify(result));
L
liujiaojiao 已提交
2829
      wifiManager.getP2pPeerDevices((err, data) => {
X
xiaosi 已提交
2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845
          if (err) {
              console.error('failed to get peer devices: ' + JSON.stringify(err));
              return;
          }
          console.info("get peer devices: " + JSON.stringify(data));
          var len = Object.keys(data).length;
          for (var i = 0; i < len; ++i) {
              if (data[i].deviceName === "my_test_device") {
                  console.info("p2p connect to test device: " + data[i].deviceAddress);
                  var config = {
                      "deviceAddress":data[i].deviceAddress,
                      "netId":-2,
                      "passphrase":"",
                      "groupName":"",
                      "goBand":0,
                  }
L
liujiaojiao 已提交
2846
                  wifiManager.p2pConnect(config);
X
xiaosi 已提交
2847 2848 2849 2850
              }
          }
      });
  }
L
liujiaojiao 已提交
2851
  wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
X
xiaosi 已提交
2852 2853 2854 2855
  
  var recvP2pPersistentGroupChangeFunc = () => {
      console.info("p2p persistent group change receive event");
  
L
liujiaojiao 已提交
2856
      wifiManager.getCurrentP2pGroup((err, data) => {
X
xiaosi 已提交
2857 2858 2859 2860 2861 2862 2863
          if (err) {
              console.error('failed to get current group: ' + JSON.stringify(err));
              return;
          }
          console.info("get current group: " + JSON.stringify(data));
      });
  }
L
liujiaojiao 已提交
2864
  wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
X
xiaosi 已提交
2865
  
L
liujiaojiao 已提交
2866 2867 2868 2869
  setTimeout(function() {wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000);
  setTimeout(function() {wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000);
  setTimeout(function() {wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000);
  setTimeout(function() {wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000);
L
liujiaojiao 已提交
2870
  console.info("start discover devices -> " + wifiManager.startDiscoverDevices());
L
liujiaojiao 已提交
2871
```
X
xiaosi 已提交
2872

L
liujiaojiao 已提交
2873
## wifiManager.p2pCancelConnect<sup>9+</sup>
X
xiaosi 已提交
2874

X
xiaosi 已提交
2875
p2pCancelConnect(): void
X
xiaosi 已提交
2876 2877 2878

取消P2P连接。

2879
**需要权限:** ohos.permission.GET_WIFI_INFO 
X
xiaosi 已提交
2880 2881 2882

**系统能力:** SystemCapability.Communication.WiFi.P2P

2883
**错误码:**
X
xiaosi 已提交
2884

2885
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2886

2887
| **错误码ID** | **错误信息** |
2888
  | -------- | -------- |
2889
| 2801000  | Operation failed.|
X
xiaosi 已提交
2890

2891
**示例:**
L
liujiaojiao 已提交
2892 2893
```js
	import wifiManager from '@ohos.wifiManager';
2894 2895 2896 2897 2898 2899 2900

	try {
		wifiManager.p2pCancelConnect();	
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```
L
liujiaojiao 已提交
2901
## wifiManager.startDiscoverDevices<sup>10+</sup>
X
xiaosi 已提交
2902

L
liujiaojiao 已提交
2903
startDiscoverDevices(): void
X
xiaosi 已提交
2904 2905 2906

开始发现设备。

L
liujiaojiao 已提交
2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924
**需要权限:** ohos.permission.GET_WIFI_INFO 

**系统能力:** SystemCapability.Communication.WiFi.P2P

**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

| **错误码ID** | **错误信息** |
  | -------- | -------- |
| 2801000  | Operation failed.|

## wifiManager.startDiscoverDevices<sup>9+</sup>

startDiscoverDevices(): void

开始发现设备。

2925
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
2926 2927 2928

**系统能力:** SystemCapability.Communication.WiFi.P2P

2929
**错误码:**
X
xiaosi 已提交
2930

2931
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2932

2933
| **错误码ID** | **错误信息** |
2934
  | -------- | -------- |
2935
| 2801000  | Operation failed.|
X
xiaosi 已提交
2936

2937
**示例:**
L
liujiaojiao 已提交
2938 2939
```js
	import wifiManager from '@ohos.wifiManager';
2940 2941

	try {
L
liujiaojiao 已提交
2942
		wifiManager.startDiscoverDevices();	
2943 2944 2945 2946 2947
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2948
## wifiManager.stopDiscoverDevices<sup>9+</sup>
X
xiaosi 已提交
2949

L
liujiaojiao 已提交
2950
stopDiscoverDevices(): void
X
xiaosi 已提交
2951 2952 2953 2954 2955 2956 2957

停止发现设备。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

2958
**错误码:**
X
xiaosi 已提交
2959

2960
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2961

2962
| **错误码ID** | **错误信息** |
2963
  | -------- | -------- |
2964
| 2801000  | Operation failed.|
X
xiaosi 已提交
2965

2966
**示例:**
L
liujiaojiao 已提交
2967 2968
```js
	import wifiManager from '@ohos.wifiManager';
2969 2970

	try {
L
liujiaojiao 已提交
2971
		wifiManager.stopDiscoverDevices();	
2972 2973 2974 2975 2976
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
2977
## wifiManager.deletePersistentGroup<sup>9+</sup>
X
xiaosi 已提交
2978

L
liujiaojiao 已提交
2979
deletePersistentGroup(netId: number): void
X
xiaosi 已提交
2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995

删除永久组。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**


  | **参数名** | **类型** | 必填 | **说明** |
  | -------- | -------- | -------- | -------- |
  | netId | number | 是 | 组的ID。 |

2996
**错误码:**
X
xiaosi 已提交
2997

2998
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
2999

3000
| **错误码ID** | **错误信息** |
3001
  | -------- | -------- |
3002
| 2801000  | Operation failed.|
X
xiaosi 已提交
3003

3004
**示例:**
L
liujiaojiao 已提交
3005 3006
```js
	import wifiManager from '@ohos.wifiManager';
3007 3008 3009

	try {
		let netId = 0;
L
liujiaojiao 已提交
3010
		wifiManager.deletePersistentGroup(netId);	
3011 3012 3013 3014 3015
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
3016
## wifiManager.getP2pGroups<sup>9+</sup>
X
xiaosi 已提交
3017 3018 3019 3020 3021 3022 3023

getP2pGroups(): Promise&lt;Array&lt;WifiP2pGroupInfo&gt;&gt;

获取创建的所有P2P群组信息,使用Promise异步回调。

**系统接口:** 此接口为系统接口。

3024
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3025 3026 3027 3028 3029

**系统能力:** SystemCapability.Communication.WiFi.P2P

**返回值:**

3030 3031 3032
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt;&nbsp;&gt; | Promise对象。表示所有群组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
3033

3034 3035 3036 3037
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3038
| **错误码ID** | **错误信息** |
3039
  | -------- | -------- |
3040
| 2801000  | Operation failed.|
X
xiaosi 已提交
3041

3042
**示例:**
L
liujiaojiao 已提交
3043 3044
```js
	import wifiManager from '@ohos.wifiManager';
3045 3046 3047 3048 3049 3050 3051 3052 3053

	wifiManager.getP2pGroups((err, data) => {
    if (err) {
        console.error("get P2P groups error");
        return;
    }
		console.info("get P2P groups: " + JSON.stringify(data));
	});

L
liujiaojiao 已提交
3054
	wifiManager.getP2pGroups().then(data => {
3055 3056 3057 3058 3059
		console.info("get P2P groups: " + JSON.stringify(data));
	});
	
```

X
xiaosi 已提交
3060
## WifiP2pGroupInfo<sup>9+</sup>
X
xiaosi 已提交
3061 3062 3063 3064 3065

表示P2P群组相关信息。

**系统能力:** SystemCapability.Communication.WiFi.P2P

X
xiaosi 已提交
3066
| 名称 | 类型 | 可读 | 可写 | 说明 |
3067
| -------- | -------- | -------- | -------- | -------- |
X
xiaosi 已提交
3068
| isP2pGo | boolean | 是 | 否 | 是否是群主。 |
X
xiaosi 已提交
3069
| ownerInfo | [WifiP2pDevice](#wifip2pdevice9) | 是 | 否 | 群组的设备信息。 |
X
xiaosi 已提交
3070 3071 3072 3073 3074
| passphrase | string | 是 | 否 | 群组密钥。 |
| interface | string | 是 | 否 | 接口名称。 |
| groupName | string | 是 | 否 | 群组名称。 |
| networkId | number | 是 | 否 | 网络ID。 |
| frequency | number | 是 | 否 | 群组的频率。 |
X
xiaosi 已提交
3075
| clientDevices | [WifiP2pDevice[]](#wifip2pdevice9) | 是 | 否 | 接入的设备列表信息。 |
X
xiaosi 已提交
3076 3077 3078
| goIpAddress | string | 是 | 否 | 群组IP地址。 |


L
liujiaojiao 已提交
3079
## wifiManager.getP2pGroups<sup>9+</sup>
X
xiaosi 已提交
3080 3081 3082 3083 3084 3085 3086

getP2pGroups(callback: AsyncCallback&lt;Array&lt;WifiP2pGroupInfo&gt;&gt;): void

获取创建的所有P2P群组信息,使用callback方式作为异步方法。

**系统接口:** 此接口为系统接口。

3087
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3088 3089 3090 3091 3092

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

3093 3094 3095
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt;&gt; | 是 | 回调函数。当操作成功时,err为0,data表示所有群组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
3096

3097 3098 3099 3100
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3101
| **错误码ID** | **错误信息** |
3102
  | -------- | -------- |
3103
| 2801000  | Operation failed.|
X
xiaosi 已提交
3104

L
liujiaojiao 已提交
3105
## wifiManager.setDeviceName<sup>9+</sup>
X
xiaosi 已提交
3106

L
liujiaojiao 已提交
3107
setDeviceName(devName: string): void
X
xiaosi 已提交
3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122

设置设备名称。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.SET_WIFI_INFO 和 ohos.permission.MANAGE_WIFI_CONNECTION,仅系统应用可用。

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | devName | string | 是 | 设备名称。 |

3123
**错误码:**
X
xiaosi 已提交
3124

3125
以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)
X
xiaosi 已提交
3126

3127
| **错误码ID** | **错误信息** |
3128
  | -------- | -------- |
3129
| 2801000  | Operation failed.|
X
xiaosi 已提交
3130

3131
**示例:**
L
liujiaojiao 已提交
3132 3133
```js
	import wifiManager from '@ohos.wifiManager';
3134 3135 3136

	try {
		let name = "****";
L
liujiaojiao 已提交
3137
		wifiManager.setDeviceName(name);	
3138 3139 3140 3141 3142
	}catch(error){
		console.error("failed:" + JSON.stringify(error));
	}
```

L
liujiaojiao 已提交
3143
## wifiManager.on('wifiStateChange')<sup>9+</sup>
X
xiaosi 已提交
3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159

on(type: "wifiStateChange", callback: Callback&lt;number&gt;): void

注册WLAN状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |

3160 3161 3162 3163
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3164
| **错误码ID** | **错误信息** |
3165
  | -------- | -------- |
3166
| 2501000  | Operation failed.|
3167

X
xiaosi 已提交
3168 3169 3170 3171 3172 3173 3174 3175 3176 3177
**状态改变事件的枚举:**

| **枚举值** | **说明** |
| -------- | -------- |
| 0 | 未激活。 |
| 1 | 已激活。 |
| 2 | 激活中。 |
| 3 | 去激活中。 |


L
liujiaojiao 已提交
3178
## wifiManager.off('wifiStateChange')<sup>9+</sup>
X
xiaosi 已提交
3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192

off(type: "wifiStateChange", callback?: Callback&lt;number&gt;): void

取消注册WLAN状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
3193
  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3194

3195 3196 3197 3198
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3199
| **错误码ID** | **错误信息** |
3200
  | -------- | -------- |
3201
| 2501000  | Operation failed.|
3202

X
xiaosi 已提交
3203
**示例:**
L
liujiaojiao 已提交
3204
```js
L
liujiaojiao 已提交
3205
  import wifiManager from '@ohos.wifiManager';
X
xiaosi 已提交
3206 3207 3208 3209 3210 3211
  
  var recvPowerNotifyFunc = result => {
      console.info("Receive power state change event: " + result);
  }
  
  // Register event
L
liujiaojiao 已提交
3212
  wifiManager.on("wifiStateChange", recvPowerNotifyFunc);
X
xiaosi 已提交
3213 3214
  
  // Unregister event
L
liujiaojiao 已提交
3215
  wifiManager.off("wifiStateChange", recvPowerNotifyFunc);
L
liujiaojiao 已提交
3216
```
X
xiaosi 已提交
3217 3218


L
liujiaojiao 已提交
3219
## wifiManager.on('wifiConnectionChange')<sup>9+</sup>
X
xiaosi 已提交
3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242

on(type: "wifiConnectionChange", callback: Callback&lt;number&gt;): void

注册WLAN连接状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |

**连接状态改变事件的枚举:**

| **枚举值** | **说明** |
| -------- | -------- |
| 0 | 已断开。 |
| 1 | 已连接。 |

3243 3244 3245 3246
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3247
| **错误码ID** | **错误信息** |
3248
  | -------- | -------- |
3249
| 2501000  | Operation failed.|
X
xiaosi 已提交
3250

L
liujiaojiao 已提交
3251
## wifiManager.off('wifiConnectionChange')<sup>9+</sup>
X
xiaosi 已提交
3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265

off(type: "wifiConnectionChange", callback?: Callback&lt;number&gt;): void

取消注册WLAN连接状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
3266
  | callback | Callback&lt;number&gt; | 否 | 连接状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3267

3268 3269 3270 3271
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3272
| **错误码ID** | **错误信息** |
3273
  | -------- | -------- |
3274
| 2501000  | Operation failed.|
X
xiaosi 已提交
3275

3276
**示例:**
L
liujiaojiao 已提交
3277
```js
L
liujiaojiao 已提交
3278
  import wifiManager from '@ohos.wifiManager';
3279 3280 3281 3282 3283 3284
  
  var recvWifiConnectionChangeFunc = result => {
      console.info("Receive wifi connection change event: " + result);
  }
  
  // Register event
L
liujiaojiao 已提交
3285
  wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc);
3286 3287
  
  // Unregister event
L
liujiaojiao 已提交
3288
  wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc);
L
liujiaojiao 已提交
3289
```
3290

L
liujiaojiao 已提交
3291
## wifiManager.on('wifiScanStateChange')<sup>9+</sup>
X
xiaosi 已提交
3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314

on(type: "wifiScanStateChange", callback: Callback&lt;number&gt;): void

注册扫描状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |

**扫描状态改变事件的枚举:**

| **枚举值** | **说明** |
| -------- | -------- |
| 0 | 扫描失败。 |
| 1 | 扫描成功。 |

3315 3316 3317 3318
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3319
| **错误码ID** | **错误信息** |
3320
  | -------- | -------- |
3321
| 2501000  | Operation failed.|
X
xiaosi 已提交
3322

L
liujiaojiao 已提交
3323
## wifiManager.off('wifiScanStateChange')<sup>9+</sup>
X
xiaosi 已提交
3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337

off(type: "wifiScanStateChange", callback?: Callback&lt;number&gt;): void

取消注册扫描状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
3338
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3339

3340 3341 3342 3343
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3344
| **错误码ID** | **错误信息** |
3345
  | -------- | -------- |
3346
| 2501000  | Operation failed.|
X
xiaosi 已提交
3347

3348
**示例:**
L
liujiaojiao 已提交
3349
```js
L
liujiaojiao 已提交
3350
  import wifiManager from '@ohos.wifiManager';
3351 3352 3353 3354 3355 3356
  
  var recvWifiScanStateChangeFunc = result => {
      console.info("Receive Wifi scan state change event: " + result);
  }
  
  // Register event
L
liujiaojiao 已提交
3357
  wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc);
3358 3359
  
  // Unregister event
L
liujiaojiao 已提交
3360
  wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc);
L
liujiaojiao 已提交
3361
```
3362

L
liujiaojiao 已提交
3363
## wifiManager.on('wifiRssiChange')<sup>9+</sup>
X
xiaosi 已提交
3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379

on(type: "wifiRssiChange", callback: Callback&lt;number&gt;): void

注册RSSI状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"wifiRssiChange"字符串。 |
  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 |

3380 3381 3382 3383
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3384
| **错误码ID** | **错误信息** |
3385
  | -------- | -------- |
3386
| 2501000  | Operation failed.|
X
xiaosi 已提交
3387

L
liujiaojiao 已提交
3388
## wifiManager.off('wifiRssiChange')<sup>9+</sup>
X
xiaosi 已提交
3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399

off(type: "wifiRssiChange", callback?: Callback&lt;number&gt;): void

取消注册RSSI状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

L
liujiaojiao 已提交
3400 3401 3402 3403
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"wifiRssiChange"字符串。 |
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3404

3405 3406 3407 3408
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3409
| **错误码ID** | **错误信息** |
3410
  | -------- | -------- |
3411
| 2501000  | Operation failed.|
X
xiaosi 已提交
3412

3413
**示例:**
L
liujiaojiao 已提交
3414
```js
L
liujiaojiao 已提交
3415
  import wifiManager from '@ohos.wifiManager';
3416 3417 3418 3419 3420 3421 3422 3423 3424 3425
  
  var recvWifiRssiChangeFunc = result => {
      console.info("Receive wifi rssi change event: " + result);
  }
  
  // Register event
  wifiManager.on("wifiRssiChange", recvWifiRssiChangeFunc);
  
  // Unregister event
  wifiManager.off("wifiRssiChange", recvWifiRssiChangeFunc);
L
liujiaojiao 已提交
3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527
```
 ## wifiManager.on('streamChange')<sup>9+</sup>

on(type: "streamChange", callback: Callback&lt;number&gt;): void

注册WIFI流更改事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"streamChange"字符串。 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回0:无,1:向下,2:向上,3:双向。 |

## wifiManager.off('streamChange')<sup>9+</sup>

off(type: "streamChange", callback?: Callback&lt;number&gt;): void

取消注册WIFI流更改事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"streamChange"字符串。 |
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数,返回0:无,1:向下,2:向上,3:双向。 |

**示例:**
```js
import wifi from '@ohos.wifi';

var recvStreamChangeFunc = result => {
    console.info("Receive stream change event: " + result);
}

// Register event
wifi.on("streamChange", recvStreamChangeFunc);

// Unregister event
wifi.off("streamChange", recvStreamChangeFunc);

```
## wifiManager.on('deviceConfigChange')<sup>9+</sup>

on(type: "deviceConfigChange", callback: Callback&lt;number&gt;): void

注册WIFI设备配置更改事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"streamChange"字符串。 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回0: 添加配置, 1: 更改配置, 2: 删除配置. |

## wifiManager.off('deviceConfigChange')<sup>9+</sup>

off(type: "deviceConfigChange", callback: Callback&lt;number&gt;): void

取消注册WIFI设备配置更改事件。

**需要权限:** ohos.permission.MANAGE_WIFI_CONNECTION

**系统能力:** SystemCapability.Communication.WiFi.STA

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"streamChange"字符串。 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回0: 添加配置, 1: 更改配置, 2: 删除配置.|

**示例:**
```js
import wifi from '@ohos.wifi';

var recvDeviceConfigChangeFunc = result => {
    console.info("Receive device config change event: " + result);
}

// Register event
wifi.on("deviceConfigChange", recvDeviceConfigChangeFunc);

// Unregister event
wifi.off("deviceConfigChange", recvDeviceConfigChangeFunc);

L
liujiaojiao 已提交
3528
```
3529

L
liujiaojiao 已提交
3530
## wifiManager.on('hotspotStateChange')<sup>9+</sup>
X
xiaosi 已提交
3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541

on(type: "hotspotStateChange", callback: Callback&lt;number&gt;): void

注册热点状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

L
liujiaojiao 已提交
3542 3543 3544 3545
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"hotspotStateChange"字符串。 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
X
xiaosi 已提交
3546 3547 3548 3549 3550 3551 3552 3553 3554 3555

**热点状态改变事件的枚举:**

| **枚举值** | **说明** |
| -------- | -------- |
| 0 | 未激活。 |
| 1 | 已激活。 |
| 2 | 激活中。 |
| 3 | 去激活中。 |

3556 3557 3558 3559
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3560
| **错误码ID** | **错误信息** |
3561
  | -------- | -------- |
3562
| 2601000  | Operation failed.|
X
xiaosi 已提交
3563

L
liujiaojiao 已提交
3564
## wifiManager.off('hotspotStateChange')<sup>9+</sup>
X
xiaosi 已提交
3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575

off(type: "hotspotStateChange", callback?: Callback&lt;number&gt;): void

取消注册热点状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

L
liujiaojiao 已提交
3576 3577 3578 3579
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"hotspotStateChange"字符串。 |
| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3580

3581 3582 3583 3584
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3585
| **错误码ID** | **错误信息** |
3586
  | -------- | -------- |
3587
| 2601000  | Operation failed.|
X
xiaosi 已提交
3588

3589
**示例:**
L
liujiaojiao 已提交
3590
```js
L
liujiaojiao 已提交
3591
  import wifiManager from '@ohos.wifiManager';
3592 3593 3594 3595 3596 3597 3598 3599 3600 3601
  
  var recvHotspotStateChangeFunc = result => {
      console.info("Receive hotspot state change event: " + result);
  }
  
  // Register event
  wifiManager.on("hotspotStateChange", recvHotspotStateChangeFunc);
  
  // Unregister event
  wifiManager.off("hotspotStateChange", recvHotspotStateChangeFunc);
L
liujiaojiao 已提交
3602
```
3603

L
liujiaojiao 已提交
3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711
## wifiManager.on('hotspotStaJoin')<sup>9+</sup>

on(type: "hotspotStaJoin", callback: Callback&lt;StationInfo&gt;): void

注册wifi热点sta加入事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"hotspotStaJoin"字符串。 |
| callback | Callback&lt;StationInfo&gt; | 是 | 状态改变回调函数。 |

## wifiManager.off('hotspotStaJoin')<sup>9+</sup>

off(type: "hotspotStaJoin", callback?: Callback&lt;StationInfo&gt;): void

取消注册wifi热点sta加入事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"hotspotStaJoin"字符串。 |
| callback | Callback&lt;StationInfo&gt; | 否 | 状态改变回调函数。 |

**示例:**
```js
import wifi from '@ohos.wifi';

var recvHotspotStaJoinFunc = result => {
    console.info("Receive hotspot sta join event: " + result);
}

// Register event
wifi.on("hotspotStaJoin", recvHotspotStaJoinFunc);

// Unregister event
wifi.off("hotspotStaJoin", recvHotspotStaJoinFunc);

```

## wifiManager.on('hotspotStaLeave')<sup>9+</sup>

on(type: "hotspotStaLeave", callback: Callback&lt;StationInfo&gt;): void

注册wifi热点sta离开事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"hotspotStaLeave"字符串。 |
  | callback | Callback&lt;StationInf]&gt; | 是 | 状态改变回调函数。 |

## wifiManager.off('hotspotStaLeave')<sup>9+</sup>

off(type: "hotspotStaLeave", callback?: Callback&lt;StationInfo&gt;): void

取消注册wifi热点sta离开事件。

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.MANAGE_WIFI_HOTSPOT

**系统能力:** SystemCapability.Communication.WiFi.AP.Core

**参数:**

| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"hotspotStaLeave"字符串。 |
| callback | Callback&lt;StationInf]&gt; | 是 | 状态改变回调函数。 |

**示例:**
```js
import wifi from '@ohos.wifi';

var recvHotspotStaLeaveFunc = result => {
    console.info("Receive hotspot sta leave event: " + result);
}

// Register event
wifi.on("hotspotStaLeave", recvHotspotStaLeaveFunc);

// Unregister event
wifi.off("hotspotStaLeave", recvHotspotStaLeaveFunc);

```

L
liujiaojiao 已提交
3712
## wifiManager.on('p2pStateChange')<sup>9+</sup>
X
xiaosi 已提交
3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723

on(type: "p2pStateChange", callback: Callback&lt;number&gt;): void

注册P2P开关状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

L
liujiaojiao 已提交
3724 3725 3726 3727
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"p2pStateChange"字符串。 |
| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
X
xiaosi 已提交
3728

L
liujiaojiao 已提交
3729
** P2P状态改变事件的枚举:**
X
xiaosi 已提交
3730 3731 3732 3733 3734 3735 3736 3737 3738

| **枚举值** | **说明** |
| -------- | -------- |
| 1 | 空闲。 |
| 2 | 打开中。 |
| 3 | 已打开。 |
| 4 | 关闭中。 |
| 5 | 已关闭。 |

3739 3740 3741 3742
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3743
| **错误码ID** | **错误信息** |
3744
  | -------- | -------- |
3745
| 2801000  | Operation failed.|
3746

L
liujiaojiao 已提交
3747
## wifiManager.off('p2pStateChange')<sup>9+</sup>
X
xiaosi 已提交
3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761

off(type: "p2pStateChange", callback?: Callback&lt;number&gt;): void

取消注册P2P开关状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pStateChange"字符串。 |
3762
  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3763

3764 3765 3766 3767
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3768
| **错误码ID** | **错误信息** |
3769
  | -------- | -------- |
3770
| 2801000  | Operation failed.|
X
xiaosi 已提交
3771

3772
**示例:**
L
liujiaojiao 已提交
3773
```js
L
liujiaojiao 已提交
3774
  import wifiManager from '@ohos.wifiManager';
3775 3776 3777 3778 3779 3780 3781 3782 3783 3784
  
  var recvP2pStateChangeFunc = result => {
      console.info("Receive p2p state change event: " + result);
  }
  
  // Register event
  wifiManager.on("p2pStateChange", recvP2pStateChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pStateChange", recvP2pStateChangeFunc);
L
liujiaojiao 已提交
3785
```
3786

L
liujiaojiao 已提交
3787
## wifiManager.on('p2pConnectionChange')<sup>9+</sup>
X
xiaosi 已提交
3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801

on(type: "p2pConnectionChange", callback: Callback&lt;WifiP2pLinkedInfo&gt;): void

注册P2P连接状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
X
xiaosi 已提交
3802
  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 是 | 状态改变回调函数。 |
X
xiaosi 已提交
3803

3804 3805 3806 3807
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3808
| **错误码ID** | **错误信息** |
3809
  | -------- | -------- |
3810
| 2801000  | Operation failed.|
X
xiaosi 已提交
3811

L
liujiaojiao 已提交
3812
## wifiManager.off('p2pConnectionChange')<sup>9+</sup>
X
xiaosi 已提交
3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826

off(type: "p2pConnectionChange", callback?: Callback&lt;WifiP2pLinkedInfo&gt;): void

取消注册P2P连接状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
3827
  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3828

3829 3830 3831 3832
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3833
| **错误码ID** | **错误信息** |
3834
  | -------- | -------- |
3835
| 2801000  | Operation failed.|
X
xiaosi 已提交
3836

3837
**示例:**
L
liujiaojiao 已提交
3838
```js
L
liujiaojiao 已提交
3839
  import wifiManager from '@ohos.wifiManager';
3840 3841 3842 3843 3844 3845 3846 3847 3848 3849
  
  var recvP2pConnectionChangeFunc = result => {
      console.info("Receive p2p connection change event: " + result);
  }
  
  // Register event
  wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);
L
liujiaojiao 已提交
3850
```
3851

L
liujiaojiao 已提交
3852
## wifiManager.on('p2pDeviceChange')<sup>9+</sup>
X
xiaosi 已提交
3853 3854 3855 3856 3857

on(type: "p2pDeviceChange", callback: Callback&lt;WifiP2pDevice&gt;): void

注册P2P设备状态改变事件。

3858
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3859 3860 3861 3862 3863 3864 3865 3866

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
X
xiaosi 已提交
3867
  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 是 | 状态改变回调函数。 |
X
xiaosi 已提交
3868

3869 3870 3871 3872
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3873
| **错误码ID** | **错误信息** |
3874
  | -------- | -------- |
3875
| 2801000  | Operation failed.|
X
xiaosi 已提交
3876

L
liujiaojiao 已提交
3877
## wifiManager.off('p2pDeviceChange')<sup>9+</sup>
X
xiaosi 已提交
3878 3879 3880 3881 3882

off(type: "p2pDeviceChange", callback?: Callback&lt;WifiP2pDevice&gt;): void

取消注册P2P设备状态改变事件。

3883
**需要权限:** ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3884 3885 3886 3887 3888 3889 3890 3891

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
3892
  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
3893

3894 3895 3896 3897
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3898
| **错误码ID** | **错误信息** |
3899
  | -------- | -------- |
3900
| 2801000  | Operation failed.|
X
xiaosi 已提交
3901

3902
**示例:**
L
liujiaojiao 已提交
3903
```js
L
liujiaojiao 已提交
3904
  import wifiManager from '@ohos.wifiManager';
3905 3906
  
  var recvP2pDeviceChangeFunc = result => {
CoderAdo's avatar
CoderAdo 已提交
3907
      console.info("Receive p2p device change event: " + result);
3908 3909 3910 3911 3912 3913 3914
  }
  
  // Register event
  wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);
L
liujiaojiao 已提交
3915
```
3916

L
liujiaojiao 已提交
3917
## wifiManager.on('p2pPeerDeviceChange')<sup>9+</sup>
X
xiaosi 已提交
3918 3919 3920 3921 3922

on(type: "p2pPeerDeviceChange", callback: Callback&lt;WifiP2pDevice[]&gt;): void

注册P2P对端设备状态改变事件。

3923
**需要权限:** ohos.permission.GET_WIFI_INFO 和 ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3924 3925 3926 3927 3928

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

3929 3930 3931 3932
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
| callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 是 | 状态改变回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
3933

3934 3935 3936 3937
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3938
| **错误码ID** | **错误信息** |
3939
  | -------- | -------- |
3940
| 2801000  | Operation failed.|
X
xiaosi 已提交
3941

L
liujiaojiao 已提交
3942
## wifiManager.off('p2pPeerDeviceChange')<sup>9+</sup>
X
xiaosi 已提交
3943 3944 3945 3946 3947

off(type: "p2pPeerDeviceChange", callback?: Callback&lt;WifiP2pDevice[]&gt;): void

取消注册P2P对端设备状态改变事件。

3948
**需要权限:** ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
X
xiaosi 已提交
3949 3950 3951 3952 3953

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

3954 3955 3956 3957
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
| callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
X
xiaosi 已提交
3958

3959 3960 3961 3962
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

3963
| **错误码ID** | **错误信息** |
3964
  | -------- | -------- |
3965
| 2801000  | Operation failed.|
X
xiaosi 已提交
3966

3967
**示例:**
L
liujiaojiao 已提交
3968
```js
L
liujiaojiao 已提交
3969
  import wifiManager from '@ohos.wifiManager';
3970 3971
  
  var recvP2pPeerDeviceChangeFunc = result => {
CoderAdo's avatar
CoderAdo 已提交
3972
      console.info("Receive p2p peer device change event: " + result);
3973 3974 3975 3976 3977 3978 3979
  }
  
  // Register event
  wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
L
liujiaojiao 已提交
3980
```
3981

L
liujiaojiao 已提交
3982
## wifiManager.on('p2pPersistentGroupChange')<sup>9</sup>
X
xiaosi 已提交
3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998

on(type: "p2pPersistentGroupChange", callback: Callback&lt;void&gt;): void

注册P2P永久组状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
  | callback | Callback&lt;void&gt; | 是 | 状态改变回调函数。 |

3999 4000 4001 4002
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

4003
| **错误码ID** | **错误信息** |
4004
  | -------- | -------- |
4005
| 2801000  | Operation failed.|
X
xiaosi 已提交
4006

L
liujiaojiao 已提交
4007
## wifiManager.off('p2pPersistentGroupChange')<sup>9</sup>
X
xiaosi 已提交
4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018

off(type: "p2pPersistentGroupChange", callback?: Callback&lt;void&gt;): void

取消注册P2P永久组状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

L
liujiaojiao 已提交
4019 4020 4021 4022
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
| callback | Callback&lt;void&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
4023

4024 4025 4026 4027
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

4028
| **错误码ID** | **错误信息** |
4029
  | -------- | -------- |
4030
| 2801000  | Operation failed.|
X
xiaosi 已提交
4031

4032
**示例:**
L
liujiaojiao 已提交
4033
```js
L
liujiaojiao 已提交
4034
  import wifiManager from '@ohos.wifiManager';
4035 4036
  
  var recvP2pPersistentGroupChangeFunc = result => {
CoderAdo's avatar
CoderAdo 已提交
4037
      console.info("Receive p2p persistent group change event: " + result);
4038 4039 4040 4041 4042 4043 4044
  }
  
  // Register event
  wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
L
liujiaojiao 已提交
4045
```
4046

L
liujiaojiao 已提交
4047
## wifiManager.on('p2pDiscoveryChange')<sup>9+</sup>
X
xiaosi 已提交
4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070

on(type: "p2pDiscoveryChange", callback: Callback&lt;number&gt;): void

注册发现设备状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |

**发现设备状态改变事件的枚举:**

| **枚举值** | **说明** |
| -------- | -------- |
| 0 | 初始状态。 |
| 1 | 发现成功。 |

4071 4072 4073 4074
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

4075
| **错误码ID** | **错误信息** |
4076
  | -------- | -------- |
4077
| 2801000  | Operation failed.|
X
xiaosi 已提交
4078

L
liujiaojiao 已提交
4079
## wifiManager.off('p2pDiscoveryChange')<sup>9+</sup>
X
xiaosi 已提交
4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093

off(type: "p2pDiscoveryChange", callback?: Callback&lt;number&gt;): void

取消注册发现设备状态改变事件。

**需要权限:** ohos.permission.GET_WIFI_INFO

**系统能力:** SystemCapability.Communication.WiFi.P2P

**参数:**

  | **参数名** | **类型** | **必填** | **说明** |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
4094
  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
X
xiaosi 已提交
4095

4096 4097 4098 4099
**错误码:**

以下错误码的详细介绍请参见[WIFI错误码](../errorcodes/errorcode-wifi.md)

4100
| **错误码ID** | **错误信息** |
4101
  | -------- | -------- |
4102
| 2801000  | Operation failed.|
4103 4104

**示例:**
L
liujiaojiao 已提交
4105
```js
L
liujiaojiao 已提交
4106
  import wifiManager from '@ohos.wifiManager';
4107 4108
  
  var recvP2pDiscoveryChangeFunc = result => {
CoderAdo's avatar
CoderAdo 已提交
4109
      console.info("Receive p2p discovery change event: " + result);
4110 4111 4112 4113 4114 4115 4116
  }
  
  // Register event
  wifiManager.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
  
  // Unregister event
  wifiManager.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
L
liujiaojiao 已提交
4117
```