• 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
15## wifiManager.isWifiActive<sup>9+</sup>
16
17isWifiActive(): boolean
18
19查询WLAN是否已使能。
20
21**需要权限:** ohos.permission.GET_WIFI_INFO
22
23**系统能力:** SystemCapability.Communication.WiFi.STA
24
25**返回值:**
26
27  | **类型** | **说明** |
28  | -------- | -------- |
29  | boolean | true:已使能,&nbsp;false:未使能。 |
30
31**错误码:**
32
33以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
34
35| **错误码ID** | **错误信息** |
36  | -------- | -------- |
37| 2501000  | Operation failed.|
38
39**示例:**
40
41```ts
42	import wifiManager from '@ohos.wifiManager';
43
44	try {
45		let isWifiActive = wifiManager.isWifiActive();
46		console.info("isWifiActive:" + isWifiActive);
47	}catch(error){
48		console.error("failed:" + JSON.stringify(error));
49	}
50```
51
52## wifiManager.scan<sup>9+</sup><sup>(deprecated)</sup>
53
54scan(): void
55
56启动WLAN扫描。
57
58> **说明:**
59> 从 API version 9开始支持,从API version 10开始废弃。替代接口仅向系统应用开放。
60
61**需要权限:** ohos.permission.SET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
62
63**系统能力:** SystemCapability.Communication.WiFi.STA
64
65**错误码:**
66
67以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
68
69| **错误码ID** | **错误信息** |
70  | -------- | -------- |
71| 2501000  | Operation failed.|
72
73**示例:**
74
75```ts
76	import wifiManager from '@ohos.wifiManager';
77
78	try {
79		wifiManager.scan();
80	}catch(error){
81		console.error("failed:" + JSON.stringify(error));
82	}
83```
84
85
86## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup>
87
88getScanResults(): Promise&lt;Array&lt;WifiScanInfo&gt;&gt;
89
90获取扫描结果,使用Promise异步回调。
91
92> **说明:**
93> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。
94
95**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或(ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION))
96
97**系统能力:** SystemCapability.Communication.WiFi.STA
98
99**返回值:**
100
101| **类型** | **说明** |
102| -------- | -------- |
103| Promise&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt;&nbsp;&gt; | Promise对象。返回扫描到的热点列表。 |
104
105**错误码:**
106
107以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
108
109| **错误码ID** | **错误信息** |
110| -------- | -------- |
111| 2501000  | Operation failed.|
112
113## wifiManager.getScanResults<sup>9+</sup><sup>(deprecated)</sup>
114
115getScanResults(callback: AsyncCallback&lt;Array&lt;WifiScanInfo&gt;&gt;): void
116
117获取扫描结果,使用callback异步回调。
118
119> **说明:**
120> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。
121
122**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION))
123
124**系统能力:** SystemCapability.Communication.WiFi.STA
125
126**参数:**
127| **参数名** | **类型** | **必填** | **说明** |
128| -------- | -------- | -------- | -------- |
129| callback | AsyncCallback&lt;&nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt;&gt; | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 |
130  | Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt; | 返回扫描到的热点列表。 |
131
132**错误码:**
133
134以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
135
136| **错误码ID** | **错误信息** |
137| -------- | -------- |
138| 2501000  | Operation failed.|
139
140**示例:**
141```ts
142  import wifiManager from '@ohos.wifiManager';
143
144  wifiManager.getScanResults((err, result) => {
145      if (err) {
146          console.error("get scan info error");
147          return;
148      }
149
150      let len = result.length;
151      console.log("wifi received scan info: " + len);
152      for (let i = 0; i < len; ++i) {
153          console.info("ssid: " + result[i].ssid);
154          console.info("bssid: " + result[i].bssid);
155          console.info("capabilities: " + result[i].capabilities);
156          console.info("securityType: " + result[i].securityType);
157          console.info("rssi: " + result[i].rssi);
158          console.info("band: " + result[i].band);
159          console.info("frequency: " + result[i].frequency);
160          console.info("channelWidth: " + result[i].channelWidth);
161          console.info("timestamp: " + result[i].timestamp);
162      }
163  });
164
165  wifiManager.getScanResults().then(result => {
166      let len = result.length;
167      console.log("wifi received scan info: " + len);
168      for (let i = 0; i < len; ++i) {
169          console.info("ssid: " + result[i].ssid);
170          console.info("bssid: " + result[i].bssid);
171          console.info("capabilities: " + result[i].capabilities);
172          console.info("securityType: " + result[i].securityType);
173          console.info("rssi: " + result[i].rssi);
174          console.info("band: " + result[i].band);
175          console.info("frequency: " + result[i].frequency);
176          console.info("channelWidth: " + result[i].channelWidth);
177          console.info("timestamp: " + result[i].timestamp);
178      }
179  }).catch((err:number) => {
180      console.error("failed:" + JSON.stringify(err));
181  });
182```
183
184## wifiManager.getScanResultsSync<sup>9+</sup><sup>(deprecated)</sup>
185
186getScanResultsSync(): &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt;
187
188获取扫描结果,使用同步方式返回结果。
189
190> **说明:**
191> 从 API version 9开始支持,从API version 10开始废弃。建议使用[wifiManager.getScanInfoList](#wifimanagergetscaninfolist10)代替。
192
193**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MAC 或 (ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION))
194
195**系统能力:** SystemCapability.Communication.WiFi.STA
196
197**返回值:**
198
199| **类型** | **说明** |
200| -------- | -------- |
201| &nbsp;Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt; | 扫描结果数组。 |
202
203**错误码:**
204
205以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
206
207| **错误码ID** | **错误信息** |
208  | -------- | -------- |
209| 2501000  | Operation failed.|
210
211**示例:**
212
213```ts
214	import wifiManager from '@ohos.wifiManager';
215
216	try {
217		let scanInfoList = wifiManager.getScanResultsSync();
218		console.info("scanInfoList:" + JSON.stringify(scanInfoList));
219		let len = scanInfoList.length;
220        console.log("wifi received scan info: " + len);
221		if(len > 0){
222			for (let i = 0; i < len; ++i) {
223				console.info("ssid: " + scanInfoList[i].ssid);
224				console.info("bssid: " + scanInfoList[i].bssid);
225				console.info("capabilities: " + scanInfoList[i].capabilities);
226				console.info("securityType: " + scanInfoList[i].securityType);
227				console.info("rssi: " + scanInfoList[i].rssi);
228				console.info("band: " + scanInfoList[i].band);
229				console.info("frequency: " + scanInfoList[i].frequency);
230				console.info("channelWidth: " + scanInfoList[i].channelWidth);
231				console.info("timestamp: " + scanInfoList[i].timestamp);
232			}
233		}
234	}catch(error){
235		console.error("failed:" + JSON.stringify(error));
236	}
237
238```
239
240## wifiManager.getScanInfoList<sup>10+</sup>
241
242getScanInfoList(): Array&lt;WifiScanInfo&gt;
243
244获取扫描结果。
245
246**需要权限:** ohos.permission.GET_WIFI_INFO
247
248**系统能力:** SystemCapability.Communication.WiFi.STA
249
250**返回值:**
251
252| **类型** | **说明** |
253| -------- | -------- |
254| Array&lt;[WifiScanInfo](#wifiscaninfo9)&gt; | 返回扫描到的热点列表。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的bssid为真实设备地址,否则为随机设备地址。 |
255
256**错误码:**
257
258以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
259
260| **错误码ID** | **错误信息** |
261  | -------- | -------- |
262| 2501000  | Operation failed.|
263
264**示例:**
265
266```ts
267	import wifiManager from '@ohos.wifiManager';
268
269	try {
270		let scanInfoList = wifiManager.getScanInfoList();
271		console.info("scanInfoList:" + JSON.stringify(scanInfoList));
272		let len = scanInfoList.length;
273        console.log("wifi received scan info: " + len);
274		if(len > 0){
275			for (let i = 0; i < len; ++i) {
276				console.info("ssid: " + scanInfoList[i].ssid);
277				console.info("bssid: " + scanInfoList[i].bssid);
278				console.info("capabilities: " + scanInfoList[i].capabilities);
279				console.info("securityType: " + scanInfoList[i].securityType);
280				console.info("rssi: " + scanInfoList[i].rssi);
281				console.info("band: " + scanInfoList[i].band);
282				console.info("frequency: " + scanInfoList[i].frequency);
283				console.info("channelWidth: " + scanInfoList[i].channelWidth);
284				console.info("timestamp: " + scanInfoList[i].timestamp);
285			}
286		}
287	}catch(error){
288		console.error("failed:" + JSON.stringify(error));
289	}
290
291```
292
293## WifiScanInfo<sup>9+</sup>
294
295WLAN热点信息。
296
297**系统能力:** SystemCapability.Communication.WiFi.STA
298
299
300| **名称** | **类型** | **可读** | **可写** | **说明** |
301| -------- | -------- | -------- | -------- | -------- |
302| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 |
303| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 |
304| bssidType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 热点的BSSID类型。 |
305| capabilities | string | 是 | 否 | 热点能力。 |
306| securityType | [WifiSecurityType](#wifisecuritytype9) | 是 | 否 | WLAN加密类型。 |
307| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
308| band | number | 是 | 否 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 |
309| frequency | number | 是 | 否 | WLAN接入点的频率。 |
310| channelWidth | number | 是 | 否 | WLAN接入点的带宽,具体定义参见[WifiChannelWidth](#wifichannelwidth9)。 |
311| centerFrequency0 | number | 是 | 否 | 热点的中心频率。 |
312| centerFrequency1 | number | 是 | 否 | 热点的中心频率。如果热点使用两个不重叠的WLAN信道,则返回两个中心频率,分别用centerFrequency0和centerFrequency1表示。 |
313| infoElems | Array&lt;[WifiInfoElem](#wifiinfoelem9)&gt; | 是 | 否 | 信息元素。 |
314| timestamp | number | 是 | 否 | 时间戳。 |
315
316## DeviceAddressType<sup>10+</sup>
317
318wifi 设备地址(mac/bssid)类型。
319
320**系统能力:** SystemCapability.Communication.WiFi.Core
321
322| **名称** | **值** | **说明** |
323| -------- | -------- | -------- |
324| RANDOM_DEVICE_ADDRESS | 0 | 随机设备地址。 |
325| REAL_DEVICE_ADDRESS | 1 | 真实设备地址。 |
326
327## WifiSecurityType<sup>9+</sup>
328
329表示加密类型的枚举。
330
331**系统能力:** SystemCapability.Communication.WiFi.Core
332
333
334| **名称** | **值** | **说明** |
335| -------- | -------- | -------- |
336| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 |
337| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。候选网络配置不支持该加密类型。 |
338| WIFI_SEC_TYPE_WEP | 2 | Wired&nbsp;Equivalent&nbsp;Privacy&nbsp;(WEP)加密类型。候选网络配置不支持该加密类型。 |
339| WIFI_SEC_TYPE_PSK | 3 | Pre-shared&nbsp;key&nbsp;(PSK)加密类型。 |
340| WIFI_SEC_TYPE_SAE | 4 | Simultaneous&nbsp;Authentication&nbsp;of&nbsp;Equals&nbsp;(SAE)加密类型。 |
341| WIFI_SEC_TYPE_EAP | 5 | EAP加密类型。 |
342| WIFI_SEC_TYPE_EAP_SUITE_B | 6 | Suite-B 192位加密类型。 |
343| WIFI_SEC_TYPE_OWE | 7 | 机会性无线加密类型。 |
344| WIFI_SEC_TYPE_WAPI_CERT | 8 | WAPI-Cert加密类型。 |
345| WIFI_SEC_TYPE_WAPI_PSK | 9 | WAPI-PSK加密类型。 |
346
347
348## WifiBandType<sup>10+</sup>
349
350表示WIFI频段类型的枚举。
351
352**系统能力:** SystemCapability.Communication.WiFi.STA
353
354| **名称** | **值** | **说明** |
355| -------- | -------- | -------- |
356| WIFI_BAND_NONE | 0 | 无效频段类型。 |
357| WIFI_BAND_2G | 1 | 2.4G频段类型。 |
358| WIFI_BAND_5G | 2 | 5G频段类型。 |
359| WIFI_BAND_6G | 3 | 6G频段类型。 |
360| WIFI_BAND_60G | 4 | 60G频段类型。 |
361
362## WifiStandard<sup>10+</sup>
363
364表示WIFI标准的枚举。
365
366**系统能力:** SystemCapability.Communication.WiFi.STA
367
368| **名称** | **值** | **说明** |
369| -------- | -------- | -------- |
370| WIFI_STANDARD_UNDEFINED | 0 | 无效WIFI标准类型。 |
371| WIFI_STANDARD_11A | 1 | 802.11a WiFi标准类型。 |
372| WIFI_STANDARD_11B | 2 | 802.11b WiFi标准类型。 |
373| WIFI_STANDARD_11G | 3 | 802.11g WiFi标准类型。 |
374| WIFI_STANDARD_11N | 4 | 802.11n WiFi标准类型。 |
375| WIFI_STANDARD_11AC | 5 | 802.11ac WiFi标准类型。 |
376| WIFI_STANDARD_11AX | 6 | 802.11ax WiFi标准类型。 |
377| WIFI_STANDARD_11AD | 7 | 802.11ad WiFi标准类型。 |
378
379## WifiInfoElem<sup>9+</sup>
380
381WLAN热点信息。
382
383**系统能力:** SystemCapability.Communication.WiFi.STA
384
385
386| **名称** | **类型** | **可读** | **可写** | **说明** |
387| -------- | -------- | -------- | -------- | -------- |
388| eid | number | 是 | 否 | 元素ID。 |
389| content | Uint8Array | 是 | 否 | 元素内容。 |
390
391
392## WifiChannelWidth<sup>9+</sup>
393
394表示带宽类型的枚举。
395
396**系统能力:** SystemCapability.Communication.WiFi.STA
397
398
399| **名称** | **值** | **说明** |
400| -------- | -------- | -------- |
401| WIDTH_20MHZ | 0 | 20MHZ。 |
402| WIDTH_40MHZ | 1 | 40MHZ。 |
403| WIDTH_80MHZ | 2 | 80MHZ。 |
404| WIDTH_160MHZ | 3 | 160MHZ。 |
405| WIDTH_80MHZ_PLUS | 4 | 80MHZ<sup>+</sup>。 |
406| WIDTH_INVALID | 5 | 无效值 |
407
408
409## WifiDeviceConfig<sup>9+</sup>
410
411WLAN配置信息。
412
413**系统能力:** SystemCapability.Communication.WiFi.STA
414
415
416| **名称** | **类型** | **可读** | **可写** | **说明** |
417| -------- | -------- | -------- | -------- | -------- |
418| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 |
419| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 |
420| bssidType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 热点的BSSID类型。 |
421| preSharedKey | string | 是 | 否 | 热点的密钥,最大长度为64字节。当securityType为WIFI_SEC_TYPE_OPEN时该字段需为空串,其他加密类型不能为空串。当securityType为WIFI_SEC_TYPE_WEP时,该字段长度只允许为5、10、13、26、16和32字节其中之一,并且当字段长度为偶数时,该字段必须为纯十六进制数字构成。当securityType为WIFI_SEC_TYPE_SAE时,该字段最小长度为1字节。当securityType为WIFI_SEC_TYPE_PSK时,该字段最小长度为8字节。 |
422| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 |
423| securityType | [WifiSecurityType](#wifisecuritytype9)| 是 | 否 | 加密类型。 |
424| eapConfig<sup>10+</sup> | [WifiEapConfig](#wifieapconfig10) | 是 | 否 | 可扩展身份验证协议配置。只有securityType为WIFI_SEC_TYPE_EAP时需要填写。 |
425
426
427## WifiEapConfig<sup>10+</sup>
428
429可扩展身份验证协议配置信息。
430
431**系统能力:** SystemCapability.Communication.WiFi.STA
432
433| **名称** | **类型** | **可读** | **可写** | **说明** |
434| -------- | -------- | -------- | -------- | -------- |
435| eapMethod | [EapMethod](#eapmethod10) | 是 | 否 | EAP认证方式。 |
436| phase2Method | [Phase2Method](#phase2method10) | 是 | 否 | 第二阶段认证方式。只有eapMethod为EAP_PEAP或EAP_TTLS时需要填写。 |
437| identity | string | 是 | 否 | 身份信息。当eapMethod为EAP_PEAP、EAP_TLS或EAP_PWD时,该字段不能为空串。 |
438| anonymousIdentity | string | 是 | 否 | 匿名身份。暂未使用。 |
439| password | string | 是 | 否 | 密码。当eapMethod为EAP_PEAP或EAP_PWD时,该字段不能为空串。 |
440| caCertAlias | string | 是 | 否 | CA 证书别名。 |
441| caPath | string | 是 | 否 | CA 证书路径。 |
442| clientCertAlias | string | 是 | 否 | 客户端证书别名。 |
443| certEntry | Uint8Array | 是 | 是 | CA 证书内容。当eapMethod为EAP_TLS时,如果该字段为空,则clientCertAlias不能为空。 |
444| certPassword | string | 是 | 是 | CA证书密码。 |
445| altSubjectMatch | string | 是 | 否 | 替代主题匹配。 |
446| domainSuffixMatch | string | 是 | 否 | 域后缀匹配。 |
447| realm | string | 是 | 否 | 通行证凭证的领域。 |
448| plmn | string | 是 | 否 | 公共陆地移动网的直通凭证提供商。 |
449| eapSubId | number | 是 | 否 | SIM卡的子ID。 |
450
451
452## EapMethod<sup>10+</sup>
453
454表示EAP认证方式的枚举。
455
456**系统能力:** SystemCapability.Communication.WiFi.STA
457
458| 名称 | 值 | 说明 |
459| -------- | -------- | -------- |
460| EAP_NONE | 0 | 不指定。 |
461| EAP_PEAP | 1 | PEAP类型。 |
462| EAP_TLS | 2 | TLS类型。 |
463| EAP_TTLS | 3 | TTLS类型。 |
464| EAP_PWD | 4 | PWD类型。 |
465| EAP_SIM | 5 | SIM类型。 |
466| EAP_AKA | 6 | AKA类型。 |
467| EAP_AKA_PRIME | 7 | AKA Prime类型。 |
468| EAP_UNAUTH_TLS | 8 | UNAUTH TLS类型。 |
469
470
471## Phase2Method<sup>10+</sup>
472
473表示第二阶段认证方式的枚举。
474
475**系统能力:** SystemCapability.Communication.WiFi.STA
476
477| 名称 | 值 | 说明 |
478| -------- | -------- | -------- |
479| PHASE2_NONE | 0 | 不指定。 |
480| PHASE2_PAP | 1 | PAP类型。 |
481| PHASE2_MSCHAP | 2 | MSCHAP类型。 |
482| PHASE2_MSCHAPV2 | 3 | MSCHAPV2类型。 |
483| PHASE2_GTC | 4 | GTC类型。 |
484| PHASE2_SIM | 5 | SIM类型。 |
485| PHASE2_AKA | 6 | AKA类型。 |
486| PHASE2_AKA_PRIME | 7 | AKA Prime类型。 |
487
488
489
490
491## wifiManager.addCandidateConfig<sup>9+</sup>
492
493addCandidateConfig(config: WifiDeviceConfig): Promise&lt;number&gt;
494
495添加候选网络配置,使用Promise异步回调。
496
497**需要权限:** ohos.permission.SET_WIFI_INFO
498
499**系统能力:** SystemCapability.Communication.WiFi.STA
500
501**参数:**
502
503| **参数名** | **类型** | **必填** | **说明** |
504| -------- | -------- | -------- | -------- |
505| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
506
507**返回值:**
508
509  | **类型** | **说明** |
510  | -------- | -------- |
511  | Promise&lt;number&gt; | Promise对象。表示网络配置ID。 |
512
513**错误码:**
514
515以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
516
517| **错误码ID** | **错误信息** |
518  | -------- | -------- |
519| 2501000  | Operation failed.|
520
521**示例:**
522`````ts
523	import wifiManager from '@ohos.wifiManager';
524
525	try {
526		let config:wifiManager.WifiDeviceConfig = {
527			ssid : "****",
528			preSharedKey : "****",
529			securityType : 0
530		}
531		wifiManager.addCandidateConfig(config).then(result => {
532			console.info("result:" + JSON.stringify(result));
533		}).catch((err:number) => {
534			console.error("failed:" + JSON.stringify(err));
535		});
536	}catch(error){
537		console.error("failed:" + JSON.stringify(error));
538	}
539`````
540
541## wifiManager.addCandidateConfig<sup>9+</sup>
542
543addCandidateConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;number&gt;): void
544
545添加候选网络配置,使用callback异步回调。
546
547**需要权限:** ohos.permission.SET_WIFI_INFO
548
549**系统能力:** SystemCapability.Communication.WiFi.STA
550
551**参数:**
552
553| **参数名** | **类型** | **必填** | **说明** |
554| -------- | -------- | -------- | -------- |
555| config | [WifiDeviceConfig](#wifideviceconfig9) | 是 | WLAN配置信息。如果bssidType未指定值,则bssidType默认为随机设备地址类型。 |
556| callback | AsyncCallback&lt;number&gt; | 是 | 回调函数。当操作成功时,err为0,data为添加的网络配置ID,如果data值为-1,表示添加失败。如果操作出现错误,err为非0值。 |
557
558**错误码:**
559
560以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
561
562| **错误码ID** | **错误信息** |
563  | -------- | -------- |
564| 2501000  | Operation failed.|
565
566**示例:**
567`````ts
568	import wifiManager from '@ohos.wifiManager';
569
570	try {
571		let config:wifiManager.WifiDeviceConfig = {
572			ssid : "****",
573			preSharedKey : "****",
574			securityType : 0
575		}
576		wifiManager.addCandidateConfig(config,(error,result) => {
577			console.info("result:" + JSON.stringify(result));
578		});
579	}catch(error){
580		console.error("failed:" + JSON.stringify(error));
581	}
582`````
583
584## wifiManager.removeCandidateConfig<sup>9+</sup>
585
586removeCandidateConfig(networkId: number): Promise&lt;void&gt;
587
588移除候选网络配置,使用Promise异步回调。
589
590**需要权限:** ohos.permission.SET_WIFI_INFO
591
592**系统能力:** SystemCapability.Communication.WiFi.STA
593
594**参数:**
595
596  | **参数名** | **类型** | **必填** | **说明** |
597  | -------- | -------- | -------- | -------- |
598  | networkId | number | 是 | 网络配置ID。 |
599
600**返回值:**
601
602  | **类型** | **说明** |
603  | -------- | -------- |
604  | Promise&lt;void&gt; | Promise对象。 |
605
606**错误码:**
607
608以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
609
610| **错误码ID** | **错误信息** |
611  | -------- | -------- |
612| 2501000  | Operation failed.|
613
614**示例:**
615
616```ts
617	import wifiManager from '@ohos.wifiManager';
618
619	try {
620		let networkId = 0;
621		wifiManager.removeCandidateConfig(networkId).then(result => {
622			console.info("result:" + JSON.stringify(result));
623		}).catch((err:number) => {
624			console.error("failed:" + JSON.stringify(err));
625		});
626	}catch(error){
627		console.error("failed:" + JSON.stringify(error));
628	}
629```
630
631## wifiManager.removeCandidateConfig<sup>9+</sup>
632
633removeCandidateConfig(networkId: number, callback: AsyncCallback&lt;void&gt;): void
634
635移除候选网络配置,使用callback异步回调。
636
637**需要权限:** ohos.permission.SET_WIFI_INFO
638
639**系统能力:** SystemCapability.Communication.WiFi.STA
640
641**参数:**
642
643  | **参数名** | **类型** | **必填** | **说明** |
644  | -------- | -------- | -------- | -------- |
645  | networkId | number | 是 | 网络配置ID。 |
646  | callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。当操作成功时,err为0。如果error为非0,表示处理出现错误。 |
647
648**错误码:**
649
650以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
651
652| **错误码ID** | **错误信息** |
653  | -------- | -------- |
654| 2501000  | Operation failed.|
655
656**示例:**
657```ts
658	import wifiManager from '@ohos.wifiManager';
659
660	try {
661		let networkId = 0;
662		wifiManager.removeCandidateConfig(networkId,(error,result) => {
663		console.info("result:" + JSON.stringify(result));
664		});
665	}catch(error){
666		console.error("failed:" + JSON.stringify(error));
667	}
668```
669
670## wifiManager.getCandidateConfigs<sup>9+</sup>
671
672getCandidateConfigs(): &nbsp;Array&lt;WifiDeviceConfig&gt;
673
674获取候选网络配置。
675
676**需要权限:**
677
678API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
679
680API 10起:ohos.permission.GET_WIFI_INFO
681
682**系统能力:** SystemCapability.Communication.WiFi.STA
683
684**返回值:**
685
686  | **类型** | **说明** |
687  | -------- | -------- |
688  | &nbsp;Array&lt;[WifiDeviceConfig](#wifideviceconfig9)&gt; | 候选网络配置数组。 |
689
690**错误码:**
691
692以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
693
694| **错误码ID** | **错误信息** |
695  | -------- | -------- |
696| 2501000  | Operation failed.|
697
698**示例:**
699
700`````ts
701	import wifiManager from '@ohos.wifiManager';
702
703	try {
704		let configs = wifiManager.getCandidateConfigs();
705		console.info("configs:" + JSON.stringify(configs));
706		let len = configs.length;
707        console.log("result len: " + len);
708		if(len > 0){
709			for (let i = 0; i < len; ++i) {
710				console.info("ssid: " + configs[i].ssid);
711				console.info("bssid: " + configs[i].bssid);
712			}
713		}
714	}catch(error){
715		console.error("failed:" + JSON.stringify(error));
716	}
717
718`````
719
720## wifiManager.connectToCandidateConfig<sup>9+</sup>
721
722connectToCandidateConfig(networkId: number): void
723
724应用使用该接口连接到自己添加的候选网络(如果当前已经连接到热点,需要先断开连接)。
725
726**需要权限:** ohos.permission.SET_WIFI_INFO
727
728**系统能力:** SystemCapability.Communication.WiFi.STA
729
730**参数:**
731
732  | **参数名** | **类型** | **必填** | **说明** |
733  | -------- | -------- | -------- | -------- |
734  | networkId | number | 是 | 候选网络配置的ID。 |
735
736**错误码:**
737
738以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
739
740| **错误码ID** | **错误信息** |
741  | -------- | -------- |
742| 2501000  | Operation failed.|
743| 2501001  | Wifi is closed.|
744
745**示例:**
746```ts
747	import wifiManager from '@ohos.wifiManager';
748
749	try {
750		let networkId = 0; // 实际的候选网络ID,在添加候选网络时生成,取自WifiDeviceConfig.netId
751		wifiManager.connectToCandidateConfig(networkId);
752	}catch(error){
753		console.error("failed:" + JSON.stringify(error));
754	}
755
756```
757
758
759## wifiManager.getSignalLevel<sup>9+</sup>
760
761getSignalLevel(rssi: number, band: number): number
762
763查询WLAN信号强度。
764
765**需要权限:** ohos.permission.GET_WIFI_INFO
766
767**系统能力:** SystemCapability.Communication.WiFi.STA
768
769**参数:**
770
771  | **参数名** | **类型** | **必填** | **说明** |
772  | -------- | -------- | -------- | -------- |
773  | rssi | number | 是 | 热点的信号强度(dBm)。 |
774  | band | number | 是 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 |
775
776**返回值:**
777
778  | **类型** | **说明** |
779  | -------- | -------- |
780  | number | 信号强度,取值范围为[0,&nbsp;4]。 |
781
782**错误码:**
783
784以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
785
786| **错误码ID** | **错误信息** |
787  | -------- | -------- |
788| 2501000  | Operation failed.|
789
790**示例:**
791```ts
792	import wifiManager from '@ohos.wifiManager';
793
794	try {
795		let rssi = 0;
796		let band = 0;
797		let level = wifiManager.getSignalLevel(rssi,band);
798		console.info("level:" + JSON.stringify(level));
799	}catch(error){
800		console.error("failed:" + JSON.stringify(error));
801	}
802
803```
804
805## wifiManager.getLinkedInfo<sup>9+</sup>
806
807getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;
808
809获取WLAN连接信息,使用Promise异步回调。
810
811**需要权限:** ohos.permission.GET_WIFI_INFO812
813当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。
814
815**系统能力:** SystemCapability.Communication.WiFi.STA
816
817**返回值:**
818
819  | 类型 | 说明 |
820  | -------- | -------- |
821  | Promise&lt;[WifiLinkedInfo](#wifilinkedinfo9)&gt; | Promise对象。表示WLAN连接信息。 |
822
823**错误码:**
824
825以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
826
827| **错误码ID** | **错误信息** |
828  | -------- | -------- |
829| 2501000  | Operation failed.|
830| 2501001  | Wifi is closed.|
831
832## wifiManager.getLinkedInfo<sup>9+</sup>
833
834getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
835
836获取WLAN连接信息,使用callback异步回调。
837
838**需要权限:** ohos.permission.GET_WIFI_INFO839
840当macType是1 - 设备MAC地址时,获取 macAddress 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,macAddress 返回空字符串。
841
842**系统能力:** SystemCapability.Communication.WiFi.STA
843
844**参数:**
845
846  | 参数名 | 类型 | 必填 | 说明 |
847  | -------- | -------- | -------- | -------- |
848  | callback | AsyncCallback&lt;[WifiLinkedInfo](#wifilinkedinfo9)&gt; | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果err为非0,表示处理出现错误。 |
849
850**错误码:**
851
852以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
853
854| **错误码ID** | **错误信息** |
855  | -------- | -------- |
856| 2501000  | Operation failed.|
857| 2501001  | Wifi is closed.|
858
859**示例:**
860```ts
861  import wifiManager from '@ohos.wifiManager';
862
863  wifiManager.getLinkedInfo((err, data) => {
864      if (err) {
865          console.error("get linked info error");
866          return;
867      }
868      console.info("get wifi linked info: " + JSON.stringify(data));
869  });
870
871  wifiManager.getLinkedInfo().then(data => {
872      console.info("get wifi linked info: " + JSON.stringify(data));
873  }).catch((error:number) => {
874      console.info("get linked info error");
875  });
876```
877
878
879## WifiLinkedInfo<sup>9+</sup>
880
881提供WLAN连接的相关信息。
882
883**系统能力:** SystemCapability.Communication.WiFi.STA
884
885| 名称 | 类型 | 可读 | 可写 | 说明 |
886| -------- | -------- | -------- | -------- | -------- |
887| ssid | string | 是 | 否 | 热点的SSID,编码格式为UTF-8。 |
888| bssid | string | 是 | 否 | 热点的BSSID。 |
889| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
890| band | number | 是 | 否 | WLAN接入点的频段,1:2.4GHZ;2:5GHZ。 |
891| linkSpeed | number | 是 | 否 | WLAN接入点的上行速度。 |
892| rxLinkSpeed<sup>10+</sup> | number | 是 | 否 | WLAN接入点的下行速度。 |
893| maxSupportedTxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大上行速率。 |
894| maxSupportedRxLinkSpeed<sup>10+</sup> | number | 是 | 否 | 当前支持的最大下行速率。 |
895| frequency | number | 是 | 否 | WLAN接入点的频率。 |
896| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 |
897| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 |
898| macType | number | 是 | 否 | MAC地址类型。0 - 随机MAC地址,1 - 设备MAC地址。 |
899| macAddress | string | 是 | 否 | 设备的MAC地址。 |
900| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 |
901| connState | [ConnState](#connstate9) | 是 | 否 | WLAN连接状态。 |
902| channelWidth<sup>10+</sup> | [WifiChannelWidth](#wifichannelwidth9) | 是 | 否 | 当前连接热点的信道带宽。 |
903| wifiStandard<sup>10+</sup> | [WifiStandard](#wifistandard10) | 是 | 否 | 当前连接热点的WiFi标准。 |
904
905## ConnState<sup>9+</sup>
906
907表示WLAN连接状态的枚举。
908
909**系统能力:** SystemCapability.Communication.WiFi.STA
910
911| 名称 | 值 | 说明 |
912| -------- | -------- | -------- |
913| SCANNING | 0 | 设备正在搜索可用的AP。 |
914| CONNECTING | 1 | 正在建立WLAN连接。 |
915| AUTHENTICATING | 2 | WLAN连接正在认证中。 |
916| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 |
917| CONNECTED | 4 | WLAN连接已建立。 |
918| DISCONNECTING | 5 | WLAN连接正在断开。 |
919| DISCONNECTED | 6 | WLAN连接已断开。 |
920| UNKNOWN | 7 | WLAN连接建立失败。 |
921
922
923## wifiManager.isConnected<sup>9+</sup>
924
925isConnected(): boolean
926
927查询WLAN是否已连接。
928
929**需要权限:** ohos.permission.GET_WIFI_INFO
930
931**系统能力:** SystemCapability.Communication.WiFi.STA
932
933**返回值:**
934
935  | **类型** | **说明** |
936  | -------- | -------- |
937  | boolean | true:已连接,&nbsp;false:未连接。 |
938
939**错误码:**
940
941以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
942
943| **错误码ID** | **错误信息** |
944  | -------- | -------- |
945| 2501000  | Operation failed.|
946
947**示例:**
948```ts
949	import wifiManager from '@ohos.wifiManager';
950
951	try {
952		let ret = wifiManager.isConnected();
953		console.info("isConnected:" + ret);
954	}catch(error){
955		console.error("failed:" + JSON.stringify(error));
956	}
957
958```
959
960
961## wifiManager.isFeatureSupported<sup>9+</sup>
962
963isFeatureSupported(featureId: number): boolean
964
965判断设备是否支持相关WLAN特性。
966
967**需要权限:** ohos.permission.GET_WIFI_INFO
968
969**系统能力:** SystemCapability.Communication.WiFi.Core
970
971**参数:**
972
973  | **参数名** | **类型** | 必填 | **说明** |
974  | -------- | -------- | -------- | -------- |
975  | featureId | number | 是 | 特性ID值。 |
976
977**特性ID值枚举:**
978
979| 枚举值 | 说明 |
980| -------- | -------- |
981| 0x0001 | 基础结构模式特性。 |
982| 0x0002 | 5&nbsp;GHz带宽特性。 |
983| 0x0004 | GAS/ANQP特性。 |
984| 0x0008 | Wifi-Direct特性。 |
985| 0x0010 | Soft&nbsp;AP特性。 |
986| 0x0040 | Wi-Fi&nbsp;AWare组网特性。 |
987| 0x8000 | AP&nbsp;STA共存特性。 |
988| 0x8000000 | WPA3-Personal&nbsp;SAE特性。 |
989| 0x10000000 | WPA3-Enterprise&nbsp;Suite-B |
990| 0x20000000 | 增强开放特性。 |
991
992**返回值:**
993
994  | **类型** | **说明** |
995  | -------- | -------- |
996  | boolean | true:支持,&nbsp;false:不支持。 |
997
998**错误码:**
999
1000以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1001
1002| **错误码ID** | **错误信息** |
1003  | -------- | -------- |
1004| 2401000  | Operation failed.|
1005
1006**示例:**
1007```ts
1008	import wifiManager from '@ohos.wifiManager';
1009
1010	try {
1011		let featureId = 0;
1012		let ret = wifiManager.isFeatureSupported(featureId);
1013		console.info("isFeatureSupported:" + ret);
1014	}catch(error){
1015		console.error("failed:" + JSON.stringify(error));
1016	}
1017
1018```
1019
1020
1021## wifiManager.getIpInfo<sup>9+</sup>
1022
1023getIpInfo(): IpInfo
1024
1025获取IP信息。
1026
1027**需要权限:** ohos.permission.GET_WIFI_INFO
1028
1029**系统能力:** SystemCapability.Communication.WiFi.STA
1030
1031**返回值:**
1032
1033  | **类型** | **说明** |
1034  | -------- | -------- |
1035  | [IpInfo](#ipinfo9) | IP信息。 |
1036
1037**错误码:**
1038
1039以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1040
1041| **错误码ID** | **错误信息** |
1042  | -------- | -------- |
1043| 2501000  | Operation failed.|
1044
1045**示例:**
1046```ts
1047	import wifiManager from '@ohos.wifiManager';
1048
1049	try {
1050		let info = wifiManager.getIpInfo();
1051		console.info("info:" + JSON.stringify(info));
1052	}catch(error){
1053		console.error("failed:" + JSON.stringify(error));
1054	}
1055```
1056
1057## IpInfo<sup>9+</sup>
1058
1059IP信息。
1060
1061**系统能力:** SystemCapability.Communication.WiFi.STA
1062
1063| **名称** | **类型** | **可读** | **可写** | **说明** |
1064| -------- | -------- | -------- | -------- | -------- |
1065| ipAddress | number | 是 | 否 | IP地址。 |
1066| gateway | number | 是 | 否 | 网关。 |
1067| netmask | number | 是 | 否 | 掩码。 |
1068| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 |
1069| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 |
1070| serverIp | number | 是 | 否 | DHCP服务端IP地址。 |
1071| leaseDuration | number | 是 | 否 | IP地址租用时长,单位:秒。 |
1072
1073
1074## wifiManager.getIpv6Info<sup>10+</sup>
1075
1076getIpv6Info(): Ipv6Info
1077
1078获取IPV6信息。
1079
1080**需要权限:** ohos.permission.GET_WIFI_INFO
1081
1082**系统能力:** SystemCapability.Communication.WiFi.STA
1083
1084**返回值:**
1085
1086| **类型** | **说明** |
1087| -------- | -------- |
1088| Ipv6Info | Ipv6信息。 |
1089
1090**错误码:**
1091
1092以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1093
1094| **错误码ID** | **错误信息** |
1095  | -------- | -------- |
1096| 2501000  | Operation failed.|
1097
1098**示例:**
1099```ts
1100	import wifiManager from '@ohos.wifiManager';
1101
1102	try {
1103		let info = wifiManager.getIpv6Info();
1104		console.info("info:" + JSON.stringify(info));
1105	}catch(error){
1106		console.error("failed:" + JSON.stringify(error));
1107	}
1108```
1109## Ipv6Info <sup>10+</sup>
1110
1111Ipv6信息。
1112
1113**系统能力:** SystemCapability.Communication.WiFi.STA
1114
1115| **名称** | **类型** | **可读** | **可写** | **说明** |
1116| -------- | -------- | -------- | -------- | -------- |
1117| linkIpv6Address | string | 是 | 否 | 链路Ipv6地址。 |
1118| globalIpv6Address | string | 是 | 否 | 全局Ipv6地址。 |
1119| randomGlobalIpv6Address | string | 是 | 否 | 随机全局Ipv6地址。 预留字段,暂不支持。|
1120| gateway | string | 是 | 否 | 网关。 |
1121| netmask | string | 是 | 否 | 网络掩码。 |
1122| primaryDNS | string | 是 | 否 | 主DNS服务器Ipv6地址。 |
1123| secondDNS | string | 是 | 否 | 备DNS服务器Ipv6地址。 |
1124
1125
1126## wifiManager.getCountryCode<sup>9+</sup>
1127
1128getCountryCode(): string
1129
1130获取国家码信息。
1131
1132**需要权限:** ohos.permission.GET_WIFI_INFO
1133
1134**系统能力:** SystemCapability.Communication.WiFi.Core
1135
1136**返回值:**
1137
1138  | **类型** | **说明** |
1139  | -------- | -------- |
1140  | string | 国家码。 |
1141
1142**错误码:**
1143
1144以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1145
1146| **错误码ID** | **错误信息** |
1147  | -------- | -------- |
1148| 2401000  | Operation failed.|
1149
1150**示例:**
1151```ts
1152	import wifiManager from '@ohos.wifiManager';
1153
1154	try {
1155		let code = wifiManager.getCountryCode();
1156		console.info("code:" + code);
1157	}catch(error){
1158		console.error("failed:" + JSON.stringify(error));
1159	}
1160```
1161
1162
1163
1164
1165## wifiManager.isBandTypeSupported<sup>10+</sup>
1166
1167isBandTypeSupported(bandType: WifiBandType): boolean
1168
1169判断当前频段是否支持。
1170
1171**需要权限:** ohos.permission.GET_WIFI_INFO1172
1173**系统能力:** SystemCapability.Communication.WiFi.STA
1174
1175**参数:**
1176
1177  | **参数名** | **类型** | **必填** | **说明** |
1178  | -------- | -------- | -------- | -------- |
1179  | bandType | WifiBandType | 是 | Wifi 频段类型。 |
1180
1181**返回值:**
1182
1183  | **类型** | **说明** |
1184  | -------- | -------- |
1185  | boolean | true:支持,&nbsp;false:不支持。 |
1186
1187**错误码:**
1188
1189以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1190
1191| **错误码ID** | **错误信息** |
1192  | -------- | -------- |
1193| 2501000  | Operation failed.|
1194
1195**示例:**
1196```ts
1197	import wifiManager from '@ohos.wifiManager';
1198
1199	try {
1200		let type = 0;
1201		let isBandTypeSupported = wifiManager.isBandTypeSupported(type);
1202		console.info("isBandTypeSupported:" + isBandTypeSupported);
1203	}catch(error){
1204		console.error("failed:" + JSON.stringify(error));
1205	}
1206```
1207
1208
1209## wifiManager.isMeteredHotspot<sup>11+</sup>
1210
1211isMeteredHotspot(): boolean
1212
1213查询设备当前连接的wifi是否是手机热点。
1214
1215**需要权限:** ohos.permission.GET_WIFI_INFO
1216
1217**系统能力:** SystemCapability.Communication.WiFi.STA
1218
1219**返回值:**
1220
1221  | **类型** | **说明** |
1222  | -------- | -------- |
1223  | boolean | true:是手机热点,&nbsp;false:不是手机热点。 |
1224
1225**错误码:**
1226
1227以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1228
1229| **错误码ID** | **错误信息** |
1230  | -------- | -------- |
1231| 2501000  | Operation failed.|
1232
1233**示例:**
1234
1235```ts
1236	import wifiManager from '@ohos.wifiManager';
1237
1238	try {
1239		let isMeteredHotspot = wifiManager.isMeteredHotspot();
1240		console.info("isMeteredHotspot:" + isMeteredHotspot);
1241	}catch(error){
1242		console.error("failed:" + JSON.stringify(error));
1243	}
1244```
1245
1246
1247
1248## wifiManager.getP2pLinkedInfo<sup>9+</sup>
1249
1250getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;
1251
1252获取P2P连接信息,使用Promise异步回调。
1253
1254**需要权限:** ohos.permission.GET_WIFI_INFO
1255
1256获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,groupOwnerAddr 返回全零地址。
1257
1258**系统能力:** SystemCapability.Communication.WiFi.P2P
1259
1260**返回值:**
1261
1262  | 类型 | 说明 |
1263  | -------- | -------- |
1264  | Promise&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | Promise对象。表示P2P连接信息。 |
1265
1266**错误码:**
1267
1268以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1269
1270| **错误码ID** | **错误信息** |
1271  | -------- | -------- |
1272| 2801000  | Operation failed.|
1273
1274
1275## wifiManager.getP2pLinkedInfo<sup>9+</sup>
1276
1277getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void
1278
1279获取P2P连接信息,使用callback异步回调。
1280
1281**需要权限:** ohos.permission.GET_WIFI_INFO
1282
1283获取 groupOwnerAddr 还需申请ohos.permission.GET_WIFI_LOCAL_MAC权限,无该权限时,groupOwnerAddr 返回全零地址。
1284
1285**系统能力:** SystemCapability.Communication.WiFi.P2P
1286
1287**参数:**
1288
1289  | 参数名 | 类型 | 必填 | 说明 |
1290  | -------- | -------- | -------- | -------- |
1291  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果err为非0,表示处理出现错误。 |
1292
1293**错误码:**
1294
1295以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1296
1297| **错误码ID** | **错误信息** |
1298  | -------- | -------- |
1299| 2801000  | Operation failed.|
1300
1301**示例:**
1302```ts
1303	import wifiManager from '@ohos.wifiManager';
1304
1305	wifiManager.getP2pLinkedInfo((err, data) => {
1306    if (err) {
1307        console.error("get p2p linked info error");
1308        return;
1309    }
1310		console.info("get wifi p2p linked info: " + JSON.stringify(data));
1311	});
1312
1313	wifiManager.getP2pLinkedInfo().then(data => {
1314		console.info("get wifi p2p linked info: " + JSON.stringify(data));
1315	});
1316```
1317
1318
1319## WifiP2pLinkedInfo<sup>9+</sup>
1320
1321提供WLAN连接的相关信息。
1322
1323**系统能力:** SystemCapability.Communication.WiFi.P2P
1324
1325| 名称 | 类型 | 可读 | 可写 | 说明 |
1326| -------- | -------- | -------- | -------- | -------- |
1327| connectState | [P2pConnectState](#p2pconnectstate9) | 是 | 否 | P2P连接状态。 |
1328| isGroupOwner | boolean | 是 | 否 | 是否是群主。 |
1329| groupOwnerAddr | string | 是 | 否 | 群组IP地址。
1330
1331
1332## P2pConnectState<sup>9+</sup>
1333
1334表示P2P连接状态的枚举。
1335
1336**系统能力:** SystemCapability.Communication.WiFi.P2P
1337
1338| 名称 | 值 | 说明 |
1339| -------- | -------- | -------- |
1340| DISCONNECTED | 0 | 断开状态。 |
1341| CONNECTED | 1 | 连接状态。 |
1342
1343## wifiManager.getCurrentGroup<sup>9+</sup>
1344
1345getCurrentGroup(): Promise&lt;WifiP2pGroupInfo&gt;
1346
1347获取P2P当前组信息,使用Promise异步回调。
1348
1349**需要权限:**
1350
1351API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1352
1353API 10起:ohos.permission.GET_WIFI_INFO
1354
1355**系统能力:** SystemCapability.Communication.WiFi.P2P
1356
1357**返回值:**
1358
1359| 类型 | 说明 |
1360| -------- | -------- |
1361| Promise&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt; | Promise对象。表示当前组信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
1362
1363**错误码:**
1364
1365以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1366
1367| **错误码ID** | **错误信息** |
1368  | -------- | -------- |
1369| 2801000  | Operation failed.|
1370
1371## wifiManager.getCurrentGroup<sup>9+</sup>
1372
1373getCurrentGroup(callback: AsyncCallback&lt;WifiP2pGroupInfo&gt;): void
1374
1375获取P2P当前组信息,使用callback异步回调。
1376
1377**需要权限:**
1378
1379API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1380
1381API 10起:ohos.permission.GET_WIFI_INFO
1382
1383**系统能力:** SystemCapability.Communication.WiFi.P2P
1384
1385**参数:**
1386
1387| 参数名 | 类型 | 必填 | 说明 |
1388| -------- | -------- | -------- | -------- |
1389| callback | AsyncCallback&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
1390
1391**错误码:**
1392
1393以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1394
1395| **错误码ID** | **错误信息** |
1396  | -------- | -------- |
1397| 2801000  | Operation failed.|
1398
1399**示例:**
1400```ts
1401	import wifiManager from '@ohos.wifiManager';
1402	// p2p处于连接状态,才能正常获取到当前组信息
1403	wifiManager.getCurrentGroup((err, data) => {
1404    if (err) {
1405        console.error("get current P2P group error");
1406        return;
1407    }
1408		console.info("get current P2P group: " + JSON.stringify(data));
1409	});
1410
1411	wifiManager.getCurrentGroup().then(data => {
1412		console.info("get current P2P group: " + JSON.stringify(data));
1413	});
1414```
1415
1416## wifiManager.getP2pPeerDevices<sup>9+</sup>
1417
1418getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;
1419
1420获取P2P对端设备列表信息,使用Promise异步回调。
1421
1422**需要权限:**
1423
1424API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1425
1426API 10起:ohos.permission.GET_WIFI_INFO
1427
1428**系统能力:** SystemCapability.Communication.WiFi.P2P
1429
1430**返回值:**
1431
1432| 类型 | 说明 |
1433| -------- | -------- |
1434| Promise&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | Promise对象。表示对端设备列表信息。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
1435
1436**错误码:**
1437
1438以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1439
1440| **错误码ID** | **错误信息** |
1441  | -------- | -------- |
1442| 2801000  | Operation failed.|
1443
1444## wifiManager.getP2pPeerDevices<sup>9+</sup>
1445
1446getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void
1447
1448获取P2P对端设备列表信息,使用callback异步回调。
1449
1450**需要权限:**
1451
1452API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1453
1454API 10起:ohos.permission.GET_WIFI_INFO
1455
1456**系统能力:** SystemCapability.Communication.WiFi.P2P
1457
1458**参数:**
1459
1460| 参数名 | 类型 | 必填 | 说明 |
1461| -------- | -------- | -------- | -------- |
1462| callback | AsyncCallback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果err为非0,表示处理出现错误。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
1463
1464**错误码:**
1465
1466以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1467
1468| **错误码ID** | **错误信息** |
1469  | -------- | -------- |
1470| 2801000  | Operation failed.|
1471
1472**示例:**
1473```ts
1474	import wifiManager from '@ohos.wifiManager';
1475	// p2p处于连接状态,才能正常获取到对端设备列表信息
1476	wifiManager.getP2pPeerDevices((err, data) => {
1477    if (err) {
1478        console.error("get P2P peer devices error");
1479        return;
1480    }
1481		console.info("get P2P peer devices: " + JSON.stringify(data));
1482	});
1483
1484	wifiManager.getP2pPeerDevices().then(data => {
1485		console.info("get P2P peer devices: " + JSON.stringify(data));
1486	});
1487```
1488
1489## WifiP2pDevice<sup>9+</sup>
1490
1491表示P2P设备信息。
1492
1493**系统能力:** SystemCapability.Communication.WiFi.P2P
1494
1495| 名称 | 类型 | 可读 | 可写 | 说明 |
1496| -------- | -------- | -------- | -------- | -------- |
1497| deviceName | string | 是 | 否 | 设备名称。 |
1498| deviceAddress | string | 是 | 否 | 设备MAC地址。 |
1499| deviceAddressType<sup>10+</sup> | [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 设备MAC地址类型。 |
1500| primaryDeviceType | string | 是 | 否 | 主设备类型。 |
1501| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus9) | 是 | 否 | 设备状态。 |
1502| groupCapabilities | number | 是 | 否 | 群组能力。 |
1503
1504
1505## P2pDeviceStatus<sup>9+</sup>
1506
1507表示设备状态的枚举。
1508
1509**系统能力:** SystemCapability.Communication.WiFi.P2P
1510
1511| 名称 | 值 | 说明 |
1512| -------- | -------- | -------- |
1513| CONNECTED | 0 | 连接状态。 |
1514| INVITED | 1 | 邀请状态。 |
1515| FAILED | 2 | 失败状态。 |
1516| AVAILABLE | 3 | 可用状态。 |
1517| UNAVAILABLE | 4 | 不可用状态。 |
1518
1519
1520## wifiManager.getP2pLocalDevice<sup>9+</sup>
1521
1522getP2pLocalDevice(): Promise&lt;WifiP2pDevice&gt;
1523
1524获取P2P本端设备信息,使用Promise异步回调。
1525
1526**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.GET_WIFI_CONFIG
1527
1528**系统能力:** SystemCapability.Communication.WiFi.P2P
1529
1530**返回值:**
1531
1532  | 类型 | 说明 |
1533  | -------- | -------- |
1534  | Promise&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | Promise对象。表示本端设备信息。 |
1535
1536**错误码:**
1537
1538以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1539
1540| **错误码ID** | **错误信息** |
1541  | -------- | -------- |
1542| 2801000  | Operation failed.|
1543
1544## wifiManager.getP2pLocalDevice<sup>9+</sup>
1545
1546getP2pLocalDevice(callback: AsyncCallback&lt;WifiP2pDevice&gt;): void
1547
1548获取P2P本端设备信息,使用callback异步回调。
1549
1550**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.GET_WIFI_CONFIG
1551
1552**系统能力:** SystemCapability.Communication.WiFi.P2P
1553
1554**参数:**
1555
1556  | 参数名 | 类型 | 必填 | 说明 |
1557  | -------- | -------- | -------- | -------- |
1558  | callback | AsyncCallback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示本端设备信息。如果error为非0,表示处理出现错误。 |
1559
1560**错误码:**
1561
1562| **错误码ID** | **错误信息** |
1563  | -------- | -------- |
1564| 2801000  | Operation failed.|
1565
1566**示例:**
1567```ts
1568	import wifiManager from '@ohos.wifiManager';
1569	// p2p处于连接状态,才能正常获取到本端设备信息
1570	wifiManager.getP2pLocalDevice((err, data) => {
1571    if (err) {
1572        console.error("get P2P local device error");
1573        return;
1574    }
1575		console.info("get P2P local device: " + JSON.stringify(data));
1576	});
1577
1578	wifiManager.getP2pLocalDevice().then(data => {
1579		console.info("get P2P local device: " + JSON.stringify(data));
1580	});
1581```
1582
1583## wifiManager.createGroup<sup>9+</sup>
1584
1585createGroup(config: WifiP2PConfig): void
1586
1587创建群组。
1588
1589**需要权限:** ohos.permission.GET_WIFI_INFO
1590
1591**系统能力:** SystemCapability.Communication.WiFi.P2P
1592
1593**参数:**
1594
1595| **参数名** | **类型** | 必填 | **说明** |
1596| -------- | -------- | -------- | -------- |
1597| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 群组配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 |
1598
1599**错误码:**
1600
1601以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1602
1603| **错误码ID** | **错误信息** |
1604  | -------- | -------- |
1605| 2801000  | Operation failed.|
1606
1607**示例:**
1608```ts
1609	import wifiManager from '@ohos.wifiManager';
1610
1611	try {
1612		let config:wifiManager.WifiP2PConfig = {
1613			deviceAddress: "****",
1614			netId: 0,
1615			passphrase: "*****",
1616			groupName: "****",
1617			goBand: 0
1618		}
1619		wifiManager.createGroup(config);
1620
1621	}catch(error){
1622		console.error("failed:" + JSON.stringify(error));
1623	}
1624```
1625
1626## WifiP2PConfig<sup>9+</sup>
1627
1628表示P2P配置信息。
1629
1630**系统能力:** SystemCapability.Communication.WiFi.P2P
1631
1632| 名称 | 类型 | 可读 | 可写 | 说明 |
1633| -------- | -------- | -------- | -------- | -------- |
1634| deviceAddress | string | 是 | 否 | 设备地址。 |
1635| deviceAddressType<sup>10+</sup>| [DeviceAddressType](#deviceaddresstype10) | 是 | 否 | 设备地址类型。 |
1636| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 |
1637| passphrase | string | 是 | 否 | 群组密钥。 |
1638| groupName | string | 是 | 否 | 群组名称。 |
1639| goBand | [GroupOwnerBand](#groupownerband9) | 是 | 否 | 群组带宽。 |
1640
1641
1642## GroupOwnerBand<sup>9+</sup>
1643
1644表示群组带宽的枚举。
1645
1646**系统能力:** SystemCapability.Communication.WiFi.P2P
1647
1648| 名称 | 值 | 说明 |
1649| -------- | -------- | -------- |
1650| GO_BAND_AUTO | 0 | 自动模式。 |
1651| GO_BAND_2GHZ | 1 | 2.4GHZ。 |
1652| GO_BAND_5GHZ | 2 | 5GHZ。 |
1653
1654
1655## wifiManager.removeGroup<sup>9+</sup>
1656
1657removeGroup(): void
1658
1659移除群组。
1660
1661**需要权限:** ohos.permission.GET_WIFI_INFO
1662
1663**系统能力:** SystemCapability.Communication.WiFi.P2P
1664
1665**错误码:**
1666
1667以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1668
1669| **错误码ID** | **错误信息** |
1670  | -------- | -------- |
1671| 2801000  | Operation failed.|
1672
1673**示例:**
1674```ts
1675	import wifiManager from '@ohos.wifiManager';
1676
1677	try {
1678		wifiManager.removeGroup();
1679	}catch(error){
1680		console.error("failed:" + JSON.stringify(error));
1681	}
1682```
1683
1684## wifiManager.p2pConnect<sup>9+</sup>
1685
1686p2pConnect(config: WifiP2PConfig): void
1687
1688执行P2P连接。
1689
1690**需要权限:**
1691
1692API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1693
1694API 10起:ohos.permission.GET_WIFI_INFO
1695
1696**系统能力:** SystemCapability.Communication.WiFi.P2P
1697
1698**参数:**
1699
1700| **参数名** | **类型** | 必填 | **说明** |
1701| -------- | -------- | -------- | -------- |
1702| config | [WifiP2PConfig](#wifip2pconfig9) | 是 | 连接配置信息。如果DeviceAddressType未指定值,则DeviceAddressType默认为随机设备地址类型。 |
1703
1704**错误码:**
1705
1706以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1707
1708| **错误码ID** | **错误信息** |
1709  | -------- | -------- |
1710| 2801000  | Operation failed.|
1711
1712**示例:**
1713```ts
1714  import wifiManager from '@ohos.wifiManager';
1715
1716  let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => {
1717      console.info("p2p connection change receive event: " + JSON.stringify(result));
1718      wifiManager.getP2pLinkedInfo((err, data) => {
1719          if (err) {
1720              console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err));
1721              return;
1722          }
1723          console.info("get getP2pLinkedInfo: " + JSON.stringify(data));
1724      });
1725  }
1726  wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
1727
1728  let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => {
1729      console.info("p2p device change receive event: " + JSON.stringify(result));
1730  }
1731  wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
1732
1733  let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => {
1734      console.info("p2p peer device change receive event: " + JSON.stringify(result));
1735      wifiManager.getP2pPeerDevices((err, data) => {
1736          if (err) {
1737              console.error('failed to get peer devices: ' + JSON.stringify(err));
1738              return;
1739          }
1740          console.info("get peer devices: " + JSON.stringify(data));
1741          let len = data.length;
1742          for (let i = 0; i < len; ++i) {
1743              if (data[i].deviceName === "my_test_device") {
1744                  console.info("p2p connect to test device: " + data[i].deviceAddress);
1745                  let config:wifiManager.WifiP2PConfig = {
1746                      deviceAddress:data[i].deviceAddress,
1747                      netId:-2,
1748                      passphrase:"",
1749                      groupName:"",
1750                      goBand:0,
1751                  }
1752                  wifiManager.p2pConnect(config);
1753              }
1754          }
1755      });
1756  }
1757  wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
1758
1759  let recvP2pPersistentGroupChangeFunc = () => {
1760      console.info("p2p persistent group change receive event");
1761
1762      wifiManager.getCurrentGroup((err, data) => {
1763          if (err) {
1764              console.error('failed to get current group: ' + JSON.stringify(err));
1765              return;
1766          }
1767          console.info("get current group: " + JSON.stringify(data));
1768      });
1769  }
1770  wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
1771
1772  setTimeout(() => {wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000);
1773  setTimeout(() =>  {wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000);
1774  setTimeout(() =>  {wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000);
1775  setTimeout(() =>  {wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000);
1776  console.info("start discover devices -> " + wifiManager.startDiscoverDevices());
1777```
1778
1779## wifiManager.p2pCancelConnect<sup>9+</sup>
1780
1781p2pCancelConnect(): void
1782
1783取消P2P连接。
1784
1785**需要权限:** ohos.permission.GET_WIFI_INFO
1786
1787**系统能力:** SystemCapability.Communication.WiFi.P2P
1788
1789**错误码:**
1790
1791以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1792
1793| **错误码ID** | **错误信息** |
1794  | -------- | -------- |
1795| 2801000  | Operation failed.|
1796
1797**示例:**
1798```ts
1799	import wifiManager from '@ohos.wifiManager';
1800
1801	try {
1802		wifiManager.p2pCancelConnect();
1803	}catch(error){
1804		console.error("failed:" + JSON.stringify(error));
1805	}
1806```
1807
1808## wifiManager.startDiscoverDevices<sup>9+</sup>
1809
1810startDiscoverDevices(): void
1811
1812开始发现设备。
1813
1814**需要权限:**
1815
1816API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1817
1818API 10起:ohos.permission.GET_WIFI_INFO
1819
1820**系统能力:** SystemCapability.Communication.WiFi.P2P
1821
1822**错误码:**
1823
1824以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1825
1826| **错误码ID** | **错误信息** |
1827  | -------- | -------- |
1828| 2801000  | Operation failed.|
1829
1830**示例:**
1831```ts
1832	import wifiManager from '@ohos.wifiManager';
1833
1834	try {
1835		wifiManager.startDiscoverDevices();
1836	}catch(error){
1837		console.error("failed:" + JSON.stringify(error));
1838	}
1839```
1840
1841## wifiManager.stopDiscoverDevices<sup>9+</sup>
1842
1843stopDiscoverDevices(): void
1844
1845停止发现设备。
1846
1847**需要权限:** ohos.permission.GET_WIFI_INFO
1848
1849**系统能力:** SystemCapability.Communication.WiFi.P2P
1850
1851**错误码:**
1852
1853以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1854
1855| **错误码ID** | **错误信息** |
1856  | -------- | -------- |
1857| 2801000  | Operation failed.|
1858
1859**示例:**
1860```ts
1861	import wifiManager from '@ohos.wifiManager';
1862
1863	try {
1864		wifiManager.stopDiscoverDevices();
1865	}catch(error){
1866		console.error("failed:" + JSON.stringify(error));
1867	}
1868```
1869
1870
1871
1872## WifiP2pGroupInfo<sup>9+</sup>
1873
1874表示P2P群组相关信息。
1875
1876**系统能力:** SystemCapability.Communication.WiFi.P2P
1877
1878| 名称 | 类型 | 可读 | 可写 | 说明 |
1879| -------- | -------- | -------- | -------- | -------- |
1880| isP2pGo | boolean | 是 | 否 | 是否是群主。 |
1881| ownerInfo | [WifiP2pDevice](#wifip2pdevice9) | 是 | 否 | 群组的设备信息。 |
1882| passphrase | string | 是 | 否 | 群组密钥。 |
1883| interface | string | 是 | 否 | 接口名称。 |
1884| groupName | string | 是 | 否 | 群组名称。 |
1885| networkId | number | 是 | 否 | 网络ID。 |
1886| frequency | number | 是 | 否 | 群组的频率。 |
1887| clientDevices | [WifiP2pDevice[]](#wifip2pdevice9) | 是 | 否 | 接入的设备列表信息。 |
1888| goIpAddress | string | 是 | 否 | 群组IP地址。 |
1889
1890
1891## wifiManager.on('wifiStateChange')<sup>9+</sup>
1892
1893on(type: "wifiStateChange", callback: Callback&lt;number&gt;): void
1894
1895注册WLAN状态改变事件。
1896
1897**需要权限:** ohos.permission.GET_WIFI_INFO
1898
1899**系统能力:** SystemCapability.Communication.WiFi.STA
1900
1901**参数:**
1902
1903  | **参数名** | **类型** | **必填** | **说明** |
1904  | -------- | -------- | -------- | -------- |
1905  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
1906  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1907
1908**错误码:**
1909
1910以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1911
1912| **错误码ID** | **错误信息** |
1913  | -------- | -------- |
1914| 2501000  | Operation failed.|
1915
1916**状态改变事件的枚举:**
1917
1918| **枚举值** | **说明** |
1919| -------- | -------- |
1920| 0 | 未激活。 |
1921| 1 | 已激活。 |
1922| 2 | 激活中。 |
1923| 3 | 去激活中。 |
1924
1925
1926## wifiManager.off('wifiStateChange')<sup>9+</sup>
1927
1928off(type: "wifiStateChange", callback?: Callback&lt;number&gt;): void
1929
1930取消注册WLAN状态改变事件。
1931
1932**需要权限:** ohos.permission.GET_WIFI_INFO
1933
1934**系统能力:** SystemCapability.Communication.WiFi.STA
1935
1936**参数:**
1937
1938  | **参数名** | **类型** | **必填** | **说明** |
1939  | -------- | -------- | -------- | -------- |
1940  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
1941  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1942
1943**错误码:**
1944
1945以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1946
1947| **错误码ID** | **错误信息** |
1948  | -------- | -------- |
1949| 2501000  | Operation failed.|
1950
1951**示例:**
1952```ts
1953  import wifiManager from '@ohos.wifiManager';
1954
1955  let recvPowerNotifyFunc = (result:number) => {
1956      console.info("Receive power state change event: " + result);
1957  }
1958
1959  // Register event
1960  wifiManager.on("wifiStateChange", recvPowerNotifyFunc);
1961
1962  // Unregister event
1963  wifiManager.off("wifiStateChange", recvPowerNotifyFunc);
1964```
1965
1966
1967## wifiManager.on('wifiConnectionChange')<sup>9+</sup>
1968
1969on(type: "wifiConnectionChange", callback: Callback&lt;number&gt;): void
1970
1971注册WLAN连接状态改变事件。
1972
1973**需要权限:** ohos.permission.GET_WIFI_INFO
1974
1975**系统能力:** SystemCapability.Communication.WiFi.STA
1976
1977**参数:**
1978
1979  | **参数名** | **类型** | **必填** | **说明** |
1980  | -------- | -------- | -------- | -------- |
1981  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
1982  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1983
1984**连接状态改变事件的枚举:**
1985
1986| **枚举值** | **说明** |
1987| -------- | -------- |
1988| 0 | 已断开。 |
1989| 1 | 已连接。 |
1990
1991**错误码:**
1992
1993以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
1994
1995| **错误码ID** | **错误信息** |
1996  | -------- | -------- |
1997| 2501000  | Operation failed.|
1998
1999## wifiManager.off('wifiConnectionChange')<sup>9+</sup>
2000
2001off(type: "wifiConnectionChange", callback?: Callback&lt;number&gt;): void
2002
2003取消注册WLAN连接状态改变事件。
2004
2005**需要权限:** ohos.permission.GET_WIFI_INFO
2006
2007**系统能力:** SystemCapability.Communication.WiFi.STA
2008
2009**参数:**
2010
2011  | **参数名** | **类型** | **必填** | **说明** |
2012  | -------- | -------- | -------- | -------- |
2013  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
2014  | callback | Callback&lt;number&gt; | 否 | 连接状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2015
2016**错误码:**
2017
2018以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2019
2020| **错误码ID** | **错误信息** |
2021  | -------- | -------- |
2022| 2501000  | Operation failed.|
2023
2024**示例:**
2025```ts
2026  import wifiManager from '@ohos.wifiManager';
2027
2028  let recvWifiConnectionChangeFunc = (result:number) => {
2029      console.info("Receive wifi connection change event: " + result);
2030  }
2031
2032  // Register event
2033  wifiManager.on("wifiConnectionChange", recvWifiConnectionChangeFunc);
2034
2035  // Unregister event
2036  wifiManager.off("wifiConnectionChange", recvWifiConnectionChangeFunc);
2037```
2038
2039## wifiManager.on('wifiScanStateChange')<sup>9+</sup>
2040
2041on(type: "wifiScanStateChange", callback: Callback&lt;number&gt;): void
2042
2043注册扫描状态改变事件。
2044
2045**需要权限:** ohos.permission.GET_WIFI_INFO
2046
2047**系统能力:** SystemCapability.Communication.WiFi.STA
2048
2049**参数:**
2050
2051  | **参数名** | **类型** | **必填** | **说明** |
2052  | -------- | -------- | -------- | -------- |
2053  | type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
2054  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
2055
2056**扫描状态改变事件的枚举:**
2057
2058| **枚举值** | **说明** |
2059| -------- | -------- |
2060| 0 | 扫描失败。 |
2061| 1 | 扫描成功。 |
2062
2063**错误码:**
2064
2065以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2066
2067| **错误码ID** | **错误信息** |
2068  | -------- | -------- |
2069| 2501000  | Operation failed.|
2070
2071## wifiManager.off('wifiScanStateChange')<sup>9+</sup>
2072
2073off(type: "wifiScanStateChange", callback?: Callback&lt;number&gt;): void
2074
2075取消注册扫描状态改变事件。
2076
2077**需要权限:** ohos.permission.GET_WIFI_INFO
2078
2079**系统能力:** SystemCapability.Communication.WiFi.STA
2080
2081**参数:**
2082
2083| **参数名** | **类型** | **必填** | **说明** |
2084| -------- | -------- | -------- | -------- |
2085| type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
2086| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2087
2088**错误码:**
2089
2090以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2091
2092| **错误码ID** | **错误信息** |
2093  | -------- | -------- |
2094| 2501000  | Operation failed.|
2095
2096**示例:**
2097```ts
2098  import wifiManager from '@ohos.wifiManager';
2099
2100  let recvWifiScanStateChangeFunc = (result:number) => {
2101      console.info("Receive Wifi scan state change event: " + result);
2102  }
2103
2104  // Register event
2105  wifiManager.on("wifiScanStateChange", recvWifiScanStateChangeFunc);
2106
2107  // Unregister event
2108  wifiManager.off("wifiScanStateChange", recvWifiScanStateChangeFunc);
2109```
2110
2111## wifiManager.on('wifiRssiChange')<sup>9+</sup>
2112
2113on(type: "wifiRssiChange", callback: Callback&lt;number&gt;): void
2114
2115注册RSSI状态改变事件。
2116
2117**需要权限:** ohos.permission.GET_WIFI_INFO
2118
2119**系统能力:** SystemCapability.Communication.WiFi.STA
2120
2121**参数:**
2122
2123  | **参数名** | **类型** | **必填** | **说明** |
2124  | -------- | -------- | -------- | -------- |
2125  | type | string | 是 | 固定填"wifiRssiChange"字符串。 |
2126  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 |
2127
2128**错误码:**
2129
2130以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2131
2132| **错误码ID** | **错误信息** |
2133  | -------- | -------- |
2134| 2501000  | Operation failed.|
2135
2136## wifiManager.off('wifiRssiChange')<sup>9+</sup>
2137
2138off(type: "wifiRssiChange", callback?: Callback&lt;number&gt;): void
2139
2140取消注册RSSI状态改变事件。
2141
2142**需要权限:** ohos.permission.GET_WIFI_INFO
2143
2144**系统能力:** SystemCapability.Communication.WiFi.STA
2145
2146**参数:**
2147
2148| **参数名** | **类型** | **必填** | **说明** |
2149| -------- | -------- | -------- | -------- |
2150| type | string | 是 | 固定填"wifiRssiChange"字符串。 |
2151| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2152
2153**错误码:**
2154
2155以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2156
2157| **错误码ID** | **错误信息** |
2158  | -------- | -------- |
2159| 2501000  | Operation failed.|
2160
2161**示例:**
2162```ts
2163  import wifiManager from '@ohos.wifiManager';
2164
2165  let recvWifiRssiChangeFunc = (result:number) => {
2166      console.info("Receive wifi rssi change event: " + result);
2167  }
2168
2169  // Register event
2170  wifiManager.on("wifiRssiChange", recvWifiRssiChangeFunc);
2171
2172  // Unregister event
2173  wifiManager.off("wifiRssiChange", recvWifiRssiChangeFunc);
2174```
2175
2176## wifiManager.on('hotspotStateChange')<sup>9+</sup>
2177
2178on(type: "hotspotStateChange", callback: Callback&lt;number&gt;): void
2179
2180注册热点状态改变事件。
2181
2182**需要权限:** ohos.permission.GET_WIFI_INFO
2183
2184**系统能力:** SystemCapability.Communication.WiFi.AP.Core
2185
2186**参数:**
2187
2188| **参数名** | **类型** | **必填** | **说明** |
2189| -------- | -------- | -------- | -------- |
2190| type | string | 是 | 固定填"hotspotStateChange"字符串。 |
2191| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
2192
2193**热点状态改变事件的枚举:**
2194
2195| **枚举值** | **说明** |
2196| -------- | -------- |
2197| 0 | 未激活。 |
2198| 1 | 已激活。 |
2199| 2 | 激活中。 |
2200| 3 | 去激活中。 |
2201
2202**错误码:**
2203
2204以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2205
2206| **错误码ID** | **错误信息** |
2207  | -------- | -------- |
2208| 2601000  | Operation failed.|
2209
2210## wifiManager.off('hotspotStateChange')<sup>9+</sup>
2211
2212off(type: "hotspotStateChange", callback?: Callback&lt;number&gt;): void
2213
2214取消注册热点状态改变事件。
2215
2216**需要权限:** ohos.permission.GET_WIFI_INFO
2217
2218**系统能力:** SystemCapability.Communication.WiFi.AP.Core
2219
2220**参数:**
2221
2222| **参数名** | **类型** | **必填** | **说明** |
2223| -------- | -------- | -------- | -------- |
2224| type | string | 是 | 固定填"hotspotStateChange"字符串。 |
2225| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2226
2227**错误码:**
2228
2229以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2230
2231| **错误码ID** | **错误信息** |
2232  | -------- | -------- |
2233| 2601000  | Operation failed.|
2234
2235**示例:**
2236```ts
2237  import wifiManager from '@ohos.wifiManager';
2238
2239  let recvHotspotStateChangeFunc = (result:number) => {
2240      console.info("Receive hotspot state change event: " + result);
2241  }
2242
2243  // Register event
2244  wifiManager.on("hotspotStateChange", recvHotspotStateChangeFunc);
2245
2246  // Unregister event
2247  wifiManager.off("hotspotStateChange", recvHotspotStateChangeFunc);
2248```
2249
2250
2251## wifiManager.on('p2pStateChange')<sup>9+</sup>
2252
2253on(type: "p2pStateChange", callback: Callback&lt;number&gt;): void
2254
2255注册P2P开关状态改变事件。
2256
2257**需要权限:** ohos.permission.GET_WIFI_INFO
2258
2259**系统能力:** SystemCapability.Communication.WiFi.P2P
2260
2261**参数:**
2262
2263| **参数名** | **类型** | **必填** | **说明** |
2264| -------- | -------- | -------- | -------- |
2265| type | string | 是 | 固定填"p2pStateChange"字符串。 |
2266| callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
2267
2268** P2P状态改变事件的枚举:**
2269
2270| **枚举值** | **说明** |
2271| -------- | -------- |
2272| 1 | 空闲。 |
2273| 2 | 打开中。 |
2274| 3 | 已打开。 |
2275| 4 | 关闭中。 |
2276| 5 | 已关闭。 |
2277
2278**错误码:**
2279
2280以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2281
2282| **错误码ID** | **错误信息** |
2283  | -------- | -------- |
2284| 2801000  | Operation failed.|
2285
2286## wifiManager.off('p2pStateChange')<sup>9+</sup>
2287
2288off(type: "p2pStateChange", callback?: Callback&lt;number&gt;): void
2289
2290取消注册P2P开关状态改变事件。
2291
2292**需要权限:** ohos.permission.GET_WIFI_INFO
2293
2294**系统能力:** SystemCapability.Communication.WiFi.P2P
2295
2296**参数:**
2297
2298  | **参数名** | **类型** | **必填** | **说明** |
2299  | -------- | -------- | -------- | -------- |
2300  | type | string | 是 | 固定填"p2pStateChange"字符串。 |
2301  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2302
2303**错误码:**
2304
2305以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2306
2307| **错误码ID** | **错误信息** |
2308  | -------- | -------- |
2309| 2801000  | Operation failed.|
2310
2311**示例:**
2312```ts
2313  import wifiManager from '@ohos.wifiManager';
2314
2315  let recvP2pStateChangeFunc = (result:number) => {
2316      console.info("Receive p2p state change event: " + result);
2317  }
2318
2319  // Register event
2320  wifiManager.on("p2pStateChange", recvP2pStateChangeFunc);
2321
2322  // Unregister event
2323  wifiManager.off("p2pStateChange", recvP2pStateChangeFunc);
2324```
2325
2326## wifiManager.on('p2pConnectionChange')<sup>9+</sup>
2327
2328on(type: "p2pConnectionChange", callback: Callback&lt;WifiP2pLinkedInfo&gt;): void
2329
2330注册P2P连接状态改变事件。
2331
2332**需要权限:** ohos.permission.GET_WIFI_INFO
2333
2334**系统能力:** SystemCapability.Communication.WiFi.P2P
2335
2336**参数:**
2337
2338  | **参数名** | **类型** | **必填** | **说明** |
2339  | -------- | -------- | -------- | -------- |
2340  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
2341  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 是 | 状态改变回调函数。 |
2342
2343**错误码:**
2344
2345以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2346
2347| **错误码ID** | **错误信息** |
2348  | -------- | -------- |
2349| 2801000  | Operation failed.|
2350
2351## wifiManager.off('p2pConnectionChange')<sup>9+</sup>
2352
2353off(type: "p2pConnectionChange", callback?: Callback&lt;WifiP2pLinkedInfo&gt;): void
2354
2355取消注册P2P连接状态改变事件。
2356
2357**需要权限:** ohos.permission.GET_WIFI_INFO
2358
2359**系统能力:** SystemCapability.Communication.WiFi.P2P
2360
2361**参数:**
2362
2363  | **参数名** | **类型** | **必填** | **说明** |
2364  | -------- | -------- | -------- | -------- |
2365  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
2366  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2367
2368**错误码:**
2369
2370以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2371
2372| **错误码ID** | **错误信息** |
2373  | -------- | -------- |
2374| 2801000  | Operation failed.|
2375
2376**示例:**
2377```ts
2378  import wifiManager from '@ohos.wifiManager';
2379
2380  let recvP2pConnectionChangeFunc = (result:wifiManager.WifiP2pLinkedInfo) => {
2381      console.info("Receive p2p connection change event: " + result);
2382  }
2383
2384  // Register event
2385  wifiManager.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
2386
2387  // Unregister event
2388  wifiManager.off("p2pConnectionChange", recvP2pConnectionChangeFunc);
2389```
2390
2391## wifiManager.on('p2pDeviceChange')<sup>9+</sup>
2392
2393on(type: "p2pDeviceChange", callback: Callback&lt;WifiP2pDevice&gt;): void
2394
2395注册P2P设备状态改变事件。
2396
2397**需要权限:**
2398
2399API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
2400
2401API 10起:ohos.permission.GET_WIFI_INFO
2402
2403**系统能力:** SystemCapability.Communication.WiFi.P2P
2404
2405**参数:**
2406
2407  | **参数名** | **类型** | **必填** | **说明** |
2408  | -------- | -------- | -------- | -------- |
2409  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
2410  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 是 | 状态改变回调函数。 |
2411
2412**错误码:**
2413
2414以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2415
2416| **错误码ID** | **错误信息** |
2417  | -------- | -------- |
2418| 2801000  | Operation failed.|
2419
2420## wifiManager.off('p2pDeviceChange')<sup>9+</sup>
2421
2422off(type: "p2pDeviceChange", callback?: Callback&lt;WifiP2pDevice&gt;): void
2423
2424取消注册P2P设备状态改变事件。
2425
2426**需要权限:**
2427
2428API 9:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
2429
2430API 10起:无
2431
2432**系统能力:** SystemCapability.Communication.WiFi.P2P
2433
2434**参数:**
2435
2436  | **参数名** | **类型** | **必填** | **说明** |
2437  | -------- | -------- | -------- | -------- |
2438  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
2439  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2440
2441**错误码:**
2442
2443以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2444
2445| **错误码ID** | **错误信息** |
2446  | -------- | -------- |
2447| 2801000  | Operation failed.|
2448
2449**示例:**
2450```ts
2451  import wifiManager from '@ohos.wifiManager';
2452
2453  let recvP2pDeviceChangeFunc = (result:wifiManager.WifiP2pDevice) => {
2454      console.info("Receive p2p device change event: " + result);
2455  }
2456
2457  // Register event
2458  wifiManager.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
2459
2460  // Unregister event
2461  wifiManager.off("p2pDeviceChange", recvP2pDeviceChangeFunc);
2462```
2463
2464## wifiManager.on('p2pPeerDeviceChange')<sup>9+</sup>
2465
2466on(type: "p2pPeerDeviceChange", callback: Callback&lt;WifiP2pDevice[]&gt;): void
2467
2468注册P2P对端设备状态改变事件。
2469
2470**需要权限:**
2471
2472API 9:ohos.permission.GET_WIFI_INFOohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
2473
2474API 10起:ohos.permission.GET_WIFI_INFO
2475
2476**系统能力:** SystemCapability.Communication.WiFi.P2P
2477
2478**参数:**
2479
2480| **参数名** | **类型** | **必填** | **说明** |
2481| -------- | -------- | -------- | -------- |
2482| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
2483| callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 是 | 状态改变回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
2484
2485**错误码:**
2486
2487以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2488
2489| **错误码ID** | **错误信息** |
2490  | -------- | -------- |
2491| 2801000  | Operation failed.|
2492
2493## wifiManager.off('p2pPeerDeviceChange')<sup>9+</sup>
2494
2495off(type: "p2pPeerDeviceChange", callback?: Callback&lt;WifiP2pDevice[]&gt;): void
2496
2497取消注册P2P对端设备状态改变事件。
2498
2499**需要权限:**
2500
2501API 9:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
2502
2503API 10起:无
2504
2505**系统能力:** SystemCapability.Communication.WiFi.P2P
2506
2507**参数:**
2508
2509| **参数名** | **类型** | **必填** | **说明** |
2510| -------- | -------- | -------- | -------- |
2511| type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
2512| callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice9)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。如果应用申请了ohos.permission.GET_WIFI_PEERS_MAC权限,则返回结果中的deviceAddress为真实设备地址,否则为随机设备地址。 |
2513
2514**错误码:**
2515
2516以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2517
2518| **错误码ID** | **错误信息** |
2519  | -------- | -------- |
2520| 2801000  | Operation failed.|
2521
2522**示例:**
2523```ts
2524  import wifiManager from '@ohos.wifiManager';
2525
2526  let recvP2pPeerDeviceChangeFunc = (result:wifiManager.WifiP2pDevice[]) => {
2527      console.info("Receive p2p peer device change event: " + result);
2528  }
2529
2530  // Register event
2531  wifiManager.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
2532
2533  // Unregister event
2534  wifiManager.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
2535```
2536
2537## wifiManager.on('p2pPersistentGroupChange')<sup>9+</sup>
2538
2539on(type: "p2pPersistentGroupChange", callback: Callback&lt;void&gt;): void
2540
2541注册P2P永久组状态改变事件。
2542
2543**需要权限:** ohos.permission.GET_WIFI_INFO
2544
2545**系统能力:** SystemCapability.Communication.WiFi.P2P
2546
2547**参数:**
2548
2549  | **参数名** | **类型** | **必填** | **说明** |
2550  | -------- | -------- | -------- | -------- |
2551  | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
2552  | callback | Callback&lt;void&gt; | 是 | 状态改变回调函数。 |
2553
2554**错误码:**
2555
2556以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2557
2558| **错误码ID** | **错误信息** |
2559  | -------- | -------- |
2560| 2801000  | Operation failed.|
2561
2562## wifiManager.off('p2pPersistentGroupChange')<sup>9+</sup>
2563
2564off(type: "p2pPersistentGroupChange", callback?: Callback&lt;void&gt;): void
2565
2566取消注册P2P永久组状态改变事件。
2567
2568**需要权限:** ohos.permission.GET_WIFI_INFO
2569
2570**系统能力:** SystemCapability.Communication.WiFi.P2P
2571
2572**参数:**
2573
2574| **参数名** | **类型** | **必填** | **说明** |
2575| -------- | -------- | -------- | -------- |
2576| type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
2577| callback | Callback&lt;void&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2578
2579**错误码:**
2580
2581以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2582
2583| **错误码ID** | **错误信息** |
2584  | -------- | -------- |
2585| 2801000  | Operation failed.|
2586
2587**示例:**
2588```ts
2589  import wifiManager from '@ohos.wifiManager';
2590
2591  let recvP2pPersistentGroupChangeFunc = (result:void) => {
2592      console.info("Receive p2p persistent group change event: " + result);
2593  }
2594
2595  // Register event
2596  wifiManager.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
2597
2598  // Unregister event
2599  wifiManager.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
2600```
2601
2602## wifiManager.on('p2pDiscoveryChange')<sup>9+</sup>
2603
2604on(type: "p2pDiscoveryChange", callback: Callback&lt;number&gt;): void
2605
2606注册发现设备状态改变事件。
2607
2608**需要权限:** ohos.permission.GET_WIFI_INFO
2609
2610**系统能力:** SystemCapability.Communication.WiFi.P2P
2611
2612**参数:**
2613
2614  | **参数名** | **类型** | **必填** | **说明** |
2615  | -------- | -------- | -------- | -------- |
2616  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
2617  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
2618
2619**发现设备状态改变事件的枚举:**
2620
2621| **枚举值** | **说明** |
2622| -------- | -------- |
2623| 0 | 初始状态。 |
2624| 1 | 发现成功。 |
2625
2626**错误码:**
2627
2628以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2629
2630| **错误码ID** | **错误信息** |
2631  | -------- | -------- |
2632| 2801000  | Operation failed.|
2633
2634## wifiManager.off('p2pDiscoveryChange')<sup>9+</sup>
2635
2636off(type: "p2pDiscoveryChange", callback?: Callback&lt;number&gt;): void
2637
2638取消注册发现设备状态改变事件。
2639
2640**需要权限:** ohos.permission.GET_WIFI_INFO
2641
2642**系统能力:** SystemCapability.Communication.WiFi.P2P
2643
2644**参数:**
2645
2646  | **参数名** | **类型** | **必填** | **说明** |
2647  | -------- | -------- | -------- | -------- |
2648  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
2649  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
2650
2651**错误码:**
2652
2653以下错误码的详细介绍请参见[WIFI错误码](errorcode-wifi.md)。
2654
2655| **错误码ID** | **错误信息** |
2656  | -------- | -------- |
2657| 2801000  | Operation failed.|
2658
2659**示例:**
2660```ts
2661  import wifiManager from '@ohos.wifiManager';
2662
2663  let recvP2pDiscoveryChangeFunc = (result:number) => {
2664      console.info("Receive p2p discovery change event: " + result);
2665  }
2666
2667  // Register event
2668  wifiManager.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
2669
2670  // Unregister event
2671  wifiManager.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
2672```