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