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