1# @ohos.wifi (WLAN)
2
3该模块主要提供WLAN基础功能、P2P(peer-to-peer)功能和WLAN消息通知的相应服务,让应用可以通过WLAN和其他设备互联互通。
4
5> **说明:**
6>
7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> 从API Version 9 开始,该接口不再维护,推荐使用[`@ohos.wifiManager (WLAN)`](js-apis-wifiManager.md)等相关接口。
9
10
11## 导入模块
12
13```ts
14import wifi from '@ohos.wifi';
15```
16
17
18## wifi.isWifiActive
19
20isWifiActive(): boolean
21
22查询WLAN是否已使能。
23
24**需要权限:** ohos.permission.GET_WIFI_INFO
25
26**系统能力:** SystemCapability.Communication.WiFi.STA
27
28**返回值:**
29
30  | **类型** | **说明** |
31  | -------- | -------- |
32  | boolean | true:已使能, false:未使能。 |
33
34**示例:**
35
36```ts
37import wifi from '@ohos.wifi';
38
39try {
40	let isWifiActive = wifi.isWifiActive();
41	console.info("isWifiActive:" + isWifiActive);
42}catch(error){
43	console.error("failed:" + JSON.stringify(error));
44}
45```
46
47## wifi.scan
48
49scan(): boolean
50
51启动WLAN扫描。
52
53**需要权限:** ohos.permission.SET_WIFI_INFOohos.permission.LOCATION
54
55**系统能力:** SystemCapability.Communication.WiFi.STA
56
57**返回值:**
58
59  | **类型** | **说明** |
60  | -------- | -------- |
61  | boolean | true:扫描操作执行成功, false:扫描操作执行失败。 |
62
63**示例:**
64
65```ts
66import wifi from '@ohos.wifi';
67
68try {
69	wifi.scan();
70}catch(error){
71	console.error("failed:" + JSON.stringify(error));
72}
73```
74
75## wifi.getScanInfos
76
77getScanInfos(): Promise<Array<WifiScanInfo>>
78
79获取扫描结果,使用Promise异步回调。
80
81**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MACohos.permission.LOCATION)
82ohos.permission.GET_WIFI_PEERS_MAC权限仅系统应用可申请。
83
84**系统能力:** SystemCapability.Communication.WiFi.STA
85
86**返回值:**
87
88  | **类型** | **说明** |
89  | -------- | -------- |
90  | Promise< Array<[WifiScanInfo](#wifiscaninfo)> > | Promise对象。返回扫描到的热点列表。 |
91
92
93## wifi.getScanInfos
94
95getScanInfos(callback: AsyncCallback<Array<WifiScanInfo>>): void
96
97获取扫描结果,使用callback异步回调。
98
99**需要权限:** ohos.permission.GET_WIFI_INFO 和 (ohos.permission.GET_WIFI_PEERS_MACohos.permission.LOCATION)
100ohos.permission.GET_WIFI_PEERS_MAC权限仅系统应用可申请。
101
102**系统能力:** SystemCapability.Communication.WiFi.STA
103
104**参数:**
105
106  | **参数名** | **类型** | **必填** | **说明** |
107  | -------- | -------- | -------- | -------- |
108  | callback | AsyncCallback< Array<[WifiScanInfo](#wifiscaninfo)>> | 是 | 回调函数。当成功时,err为0,data为扫描到的热点;否则err为非0值,data为空。 |
109
110**示例:**
111
112```ts
113import wifi from '@ohos.wifi';
114
115wifi.getScanInfos((err, result) => {
116    if (err) {
117        console.error("get scan info error");
118        return;
119    }
120
121    let len = result.length;
122    console.log("wifi received scan info: " + len);
123    for (let i = 0; i < len; ++i) {
124        console.info("ssid: " + result[i].ssid);
125        console.info("bssid: " + result[i].bssid);
126        console.info("capabilities: " + result[i].capabilities);
127        console.info("securityType: " + result[i].securityType);
128        console.info("rssi: " + result[i].rssi);
129        console.info("band: " + result[i].band);
130        console.info("frequency: " + result[i].frequency);
131        console.info("channelWidth: " + result[i].channelWidth);
132        console.info("timestamp: " + result[i].timestamp);
133    }
134});
135
136wifi.getScanInfos().then(result => {
137    let len = result.length;
138    console.log("wifi received scan info: " + len);
139    for (let i = 0; i < len; ++i) {
140        console.info("ssid: " + result[i].ssid);
141        console.info("bssid: " + result[i].bssid);
142        console.info("capabilities: " + result[i].capabilities);
143        console.info("securityType: " + result[i].securityType);
144        console.info("rssi: " + result[i].rssi);
145        console.info("band: " + result[i].band);
146        console.info("frequency: " + result[i].frequency);
147        console.info("channelWidth: " + result[i].channelWidth);
148        console.info("timestamp: " + result[i].timestamp);
149    }
150});
151```
152
153
154## WifiScanInfo
155
156WLAN热点信息。
157
158**系统能力:** SystemCapability.Communication.WiFi.STA
159
160
161| **名称** | **类型** | **可读** | **可写** | **说明** |
162| -------- | -------- | -------- | -------- | -------- |
163| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 |
164| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 |
165| capabilities | string | 是 | 否 | 热点能力。 |
166| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | WLAN加密类型。 |
167| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
168| band | number | 是 | 否 | WLAN接入点的频段。 |
169| frequency | number | 是 | 否 | WLAN接入点的频率。 |
170| channelWidth | number | 是 | 否 | WLAN接入点的带宽。 |
171| timestamp | number | 是 | 否 | 时间戳。 |
172
173
174## WifiSecurityType
175
176表示加密类型的枚举。
177
178**系统能力:** SystemCapability.Communication.WiFi.Core
179
180
181| **名称** | **值** | **说明** |
182| -------- | -------- | -------- |
183| WIFI_SEC_TYPE_INVALID | 0 | 无效加密类型。 |
184| WIFI_SEC_TYPE_OPEN | 1 | 开放加密类型。 |
185| WIFI_SEC_TYPE_WEP | 2 | Wired&nbsp;Equivalent&nbsp;Privacy&nbsp;(WEP)加密类型。 |
186| WIFI_SEC_TYPE_PSK | 3 | Pre-shared&nbsp;key&nbsp;(PSK)加密类型。 |
187| WIFI_SEC_TYPE_SAE | 4 | Simultaneous&nbsp;Authentication&nbsp;of&nbsp;Equals&nbsp;(SAE)加密类型。 |
188
189
190
191## WifiDeviceConfig
192
193WLAN配置信息。
194
195**系统能力:** SystemCapability.Communication.WiFi.STA
196
197
198| **名称** | **类型** | **可读** | **可写** | **说明** |
199| -------- | -------- | -------- | -------- | -------- |
200| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 |
201| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 |
202| preSharedKey | string | 是 | 否 | 热点的密钥,最大长度为64字节。 |
203| isHiddenSsid | boolean | 是 | 否 | 是否是隐藏网络。 |
204| securityType | [WifiSecurityType](#wifisecuritytype) | 是 | 否 | 加密类型。 |
205
206
207
208## wifi.addUntrustedConfig<sup>7+</sup>
209
210addUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
211
212添加不可信网络配置,使用Promise异步回调。
213
214**需要权限:** ohos.permission.SET_WIFI_INFO
215
216**系统能力:** SystemCapability.Communication.WiFi.STA
217
218**参数:**
219
220  | **参数名** | **类型** | **必填** | **说明** |
221  | -------- | -------- | -------- | -------- |
222  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
223
224**返回值:**
225
226  | **类型** | **说明** |
227  | -------- | -------- |
228  | Promise&lt;boolean&gt; | Promise对象。表示操作结果,true: 成功, false: 失败。 |
229
230**示例:**
231```ts
232import wifi from '@ohos.wifi';
233
234try {
235	let config:wifi.WifiDeviceConfig = {
236		ssid : "****",
237		bssid:  "****",
238		preSharedKey: "****",
239		isHiddenSsid: false,
240		securityType: 0,
241		creatorUid: 0,
242		disableReason: 0,
243		netId: 0,
244		randomMacType: 0,
245		randomMacAddr:  "****",
246		ipType: 0,
247		staticIp: {
248			ipAddress: 0,
249			gateway: 0,
250			dnsServers: [],
251			domains: []
252		}
253	}
254	wifi.addUntrustedConfig(config).then(result => {
255		console.info("result:" + JSON.stringify(result));
256	});
257}catch(error){
258	console.error("failed:" + JSON.stringify(error));
259}
260```
261
262## wifi.addUntrustedConfig<sup>7+</sup>
263
264addUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
265
266添加不可信网络配置,使用callback异步回调。
267
268**需要权限:** ohos.permission.SET_WIFI_INFO
269
270**系统能力:** SystemCapability.Communication.WiFi.STA
271
272**参数:**
273
274  | **参数名** | **类型** | **必填** | **说明** |
275  | -------- | -------- | -------- | -------- |
276  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
277  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 |
278
279**示例:**
280```ts
281import wifi from '@ohos.wifi';
282
283try {
284	let config:wifi.WifiDeviceConfig = {
285		ssid : "****",
286		bssid:  "****",
287		preSharedKey: "****",
288		isHiddenSsid: false,
289		securityType: 0,
290		creatorUid: 0,
291		disableReason: 0,
292		netId: 0,
293		randomMacType: 0,
294		randomMacAddr:  "****",
295		ipType: 0,
296		staticIp: {
297			ipAddress: 0,
298			gateway: 0,
299			dnsServers: [],
300			domains: []
301		}
302	}
303	wifi.addUntrustedConfig(config,(error,result) => {
304		console.info("result:" + JSON.stringify(result));
305	});
306}catch(error){
307	console.error("failed:" + JSON.stringify(error));
308}
309```
310
311## wifi.removeUntrustedConfig<sup>7+</sup>
312
313removeUntrustedConfig(config: WifiDeviceConfig): Promise&lt;boolean&gt;
314
315移除不可信网络配置,使用Promise异步回调。
316
317**需要权限:** ohos.permission.SET_WIFI_INFO
318
319**系统能力:** SystemCapability.Communication.WiFi.STA
320
321**参数:**
322
323  | **参数名** | **类型** | **必填** | **说明** |
324  | -------- | -------- | -------- | -------- |
325  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
326
327**返回值:**
328
329  | **类型** | **说明** |
330  | -------- | -------- |
331  | Promise&lt;boolean&gt; | Promise对象。表示操作结果,true: 成功, false: 失败。 |
332
333**示例:**
334
335```ts
336import wifi from '@ohos.wifi';
337
338try {
339	let config:wifi.WifiDeviceConfig = {
340		ssid : "****",
341		bssid:  "****",
342		preSharedKey: "****",
343		isHiddenSsid: false,
344		securityType: 0,
345		creatorUid: 0,
346		disableReason: 0,
347		netId: 0,
348		randomMacType: 0,
349		randomMacAddr:  "****",
350		ipType: 0,
351		staticIp: {
352			ipAddress: 0,
353			gateway: 0,
354			dnsServers: [],
355			domains: []
356		}
357	}
358	wifi.removeUntrustedConfig(config).then(result => {
359		console.info("result:" + JSON.stringify(result));
360	});
361}catch(error){
362	console.error("failed:" + JSON.stringify(error));
363}
364```
365
366
367## wifi.removeUntrustedConfig<sup>7+</sup>
368
369removeUntrustedConfig(config: WifiDeviceConfig, callback: AsyncCallback&lt;boolean&gt;): void
370
371移除不可信网络配置,使用callback异步回调。
372
373**需要权限:** ohos.permission.SET_WIFI_INFO
374
375**系统能力:** SystemCapability.Communication.WiFi.STA
376
377**参数:**
378
379  | **参数名** | **类型** | **必填** | **说明** |
380  | -------- | -------- | -------- | -------- |
381  | config | [WifiDeviceConfig](#wifideviceconfig) | 是 | WLAN配置信息。 |
382  | callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。当操作成功时,err为0,data表示操作结果,true: 成功, false: 失败。如果error为非0,表示处理出现错误。 |
383
384**示例:**
385```ts
386import wifi from '@ohos.wifi';
387
388try {
389	let config:wifi.WifiDeviceConfig = {
390		ssid : "****",
391		bssid:  "****",
392		preSharedKey: "****",
393		isHiddenSsid: false,
394		securityType: 0,
395		creatorUid: 0,
396		disableReason: 0,
397		netId: 0,
398		randomMacType: 0,
399		randomMacAddr:  "****",
400		ipType: 0,
401		staticIp: {
402			ipAddress: 0,
403			gateway: 0,
404			dnsServers: [],
405			domains: []
406		}
407	}
408	wifi.removeUntrustedConfig(config,(error,result) => {
409	console.info("result:" + JSON.stringify(result));
410	});
411}catch(error){
412	console.error("failed:" + JSON.stringify(error));
413}
414```
415
416
417## wifi.getSignalLevel
418
419getSignalLevel(rssi: number, band: number): number
420
421查询WLAN信号强度。
422
423**需要权限:** ohos.permission.GET_WIFI_INFO
424
425**系统能力:** SystemCapability.Communication.WiFi.STA
426
427**参数:**
428
429  | **参数名** | **类型** | **必填** | **说明** |
430  | -------- | -------- | -------- | -------- |
431  | rssi | number | 是 | 热点的信号强度(dBm)。 |
432  | band | number | 是 | WLAN接入点的频段。 |
433
434**返回值:**
435
436  | **类型** | **说明** |
437  | -------- | -------- |
438  | number | 信号强度,取值范围为[0,&nbsp;4]。 |
439
440**示例:**
441```ts
442import wifi from '@ohos.wifi';
443
444try {
445	let rssi = 0;
446	let band = 0;
447	let level = wifi.getSignalLevel(rssi,band);
448	console.info("level:" + JSON.stringify(level));
449}catch(error){
450	console.error("failed:" + JSON.stringify(error));
451}
452
453```
454
455## wifi.getLinkedInfo
456
457getLinkedInfo(): Promise&lt;WifiLinkedInfo&gt;
458
459获取WLAN连接信息,使用Promise异步回调。
460
461**需要权限:** ohos.permission.GET_WIFI_INFO
462
463**系统能力:** SystemCapability.Communication.WiFi.STA
464
465**返回值:**
466
467  | 类型 | 说明 |
468  | -------- | -------- |
469  | Promise&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | Promise对象。表示WLAN连接信息。 |
470
471
472## wifi.getLinkedInfo
473
474getLinkedInfo(callback: AsyncCallback&lt;WifiLinkedInfo&gt;): void
475
476获取WLAN连接信息,使用callback异步回调。
477
478**需要权限:** ohos.permission.GET_WIFI_INFO
479
480**系统能力:** SystemCapability.Communication.WiFi.STA
481
482**参数:**
483
484  | 参数名 | 类型 | 必填 | 说明 |
485  | -------- | -------- | -------- | -------- |
486  | callback | AsyncCallback&lt;[WifiLinkedInfo](#wifilinkedinfo)&gt; | 是 | 回调函数。当获取成功时,err为0,data表示WLAN连接信息。如果error为非0,表示处理出现错误。 |
487
488**示例:**
489```ts
490import wifi from '@ohos.wifi';
491
492wifi.getLinkedInfo((err, data:wifi.WifiLinkedInfo) => {
493    if (err) {
494        console.error("get linked info error");
495        return;
496    }
497    console.info("get wifi linked info: " + JSON.stringify(data));
498});
499
500wifi.getLinkedInfo().then(data => {
501    console.info("get wifi linked info: " + JSON.stringify(data));
502}).catch((error:number) => {
503    console.info("get linked info error");
504});
505```
506
507
508## WifiLinkedInfo
509
510提供WLAN连接的相关信息。
511
512**系统能力:** SystemCapability.Communication.WiFi.STA
513
514| 名称 | 类型 | 可读 | 可写 | 说明 |
515| -------- | -------- | -------- | -------- | -------- |
516| ssid | string | 是 | 否 | 热点的SSID,最大长度为32字节,编码格式为UTF-8。 |
517| bssid | string | 是 | 否 | 热点的BSSID,例如:00:11:22:33:44:55。 |
518| rssi | number | 是 | 否 | 热点的信号强度(dBm)。 |
519| band | number | 是 | 否 | WLAN接入点的频段。 |
520| linkSpeed | number | 是 | 否 | WLAN接入点的速度。 |
521| frequency | number | 是 | 否 | WLAN接入点的频率。 |
522| isHidden | boolean | 是 | 否 | WLAN接入点是否是隐藏网络。 |
523| isRestricted | boolean | 是 | 否 | WLAN接入点是否限制数据量。 |
524| macAddress | string | 是 | 否 | 设备的MAC地址。 |
525| ipAddress | number | 是 | 否 | WLAN连接的IP地址。 |
526| connState | [ConnState](#connstate) | 是 | 否 | WLAN连接状态。 |
527
528
529## ConnState
530
531表示WLAN连接状态的枚举。
532
533**系统能力:** SystemCapability.Communication.WiFi.STA
534
535| 名称 | 值 | 说明 |
536| -------- | -------- | -------- |
537| SCANNING | 0 | 设备正在搜索可用的AP。 |
538| CONNECTING | 1 | 正在建立WLAN连接。 |
539| AUTHENTICATING | 2 | WLAN连接正在认证中。 |
540| OBTAINING_IPADDR | 3 | 正在获取WLAN连接的IP地址。 |
541| CONNECTED | 4 | WLAN连接已建立。 |
542| DISCONNECTING | 5 | WLAN连接正在断开。 |
543| DISCONNECTED | 6 | WLAN连接已断开。 |
544| UNKNOWN | 7 | WLAN连接建立失败。 |
545
546
547## wifi.isConnected<sup>7+</sup>
548
549isConnected(): boolean
550
551查询WLAN是否已连接。
552
553**需要权限:** ohos.permission.GET_WIFI_INFO
554
555**系统能力:** SystemCapability.Communication.WiFi.STA
556
557**返回值:**
558
559  | **类型** | **说明** |
560  | -------- | -------- |
561  | boolean | true:已连接,&nbsp;false:未连接。 |
562
563
564
565## wifi.isFeatureSupported<sup>7+</sup>
566
567isFeatureSupported(featureId: number): boolean
568
569判断设备是否支持相关WLAN特性。
570
571**需要权限:** ohos.permission.GET_WIFI_INFO
572
573**系统能力:** SystemCapability.Communication.WiFi.Core
574
575**参数:**
576
577
578  | **参数名** | **类型** | 必填 | **说明** |
579  | -------- | -------- | -------- | -------- |
580  | featureId | number | 是 | 特性ID值。 |
581
582**返回值:**
583
584  | **类型** | **说明** |
585  | -------- | -------- |
586  | boolean | true:支持,&nbsp;false:不支持。 |
587
588**示例:**
589```ts
590import wifi from '@ohos.wifi';
591
592try {
593	let featureId = 0;
594	let ret = wifi.isFeatureSupported(featureId);
595	console.info("isFeatureSupported:" + ret);
596}catch(error){
597	console.error("failed:" + JSON.stringify(error));
598}
599
600```
601
602
603## wifi.getIpInfo<sup>7+</sup>
604
605getIpInfo(): IpInfo
606
607获取IP信息。
608
609**需要权限:** ohos.permission.GET_WIFI_INFO
610
611**系统能力:** SystemCapability.Communication.WiFi.STA
612
613**返回值:**
614
615  | **类型** | **说明** |
616  | -------- | -------- |
617  | [IpInfo](#ipinfo7) | IP信息。 |
618
619**示例:**
620```ts
621import wifi from '@ohos.wifi';
622
623try {
624	let info = wifi.getIpInfo();
625	console.info("info:" + JSON.stringify(info));
626}catch(error){
627	console.error("failed:" + JSON.stringify(error));
628}
629```
630
631## IpInfo<sup>7+</sup>
632
633IP信息。
634
635**系统能力:** SystemCapability.Communication.WiFi.AP.Core
636
637| **名称** | **类型** | **可读** | **可写** | **说明** |
638| -------- | -------- | -------- | -------- | -------- |
639| ipAddress | number | 是 | 否 | IP地址。 |
640| gateway | number | 是 | 否 | 网关。 |
641| netmask | number | 是 | 否 | 掩码。 |
642| primaryDns | number | 是 | 否 | 主DNS服务器IP地址。 |
643| secondDns | number | 是 | 否 | 备DNS服务器IP地址。 |
644| serverIp | number | 是 | 否 | DHCP服务端IP地址。 |
645| leaseDuration | number | 是 | 否 | IP地址租用时长。 |
646
647
648## wifi.getCountryCode<sup>7+</sup>
649
650getCountryCode(): string
651
652获取国家码信息。
653
654**需要权限:** ohos.permission.GET_WIFI_INFO
655
656**系统能力:** SystemCapability.Communication.WiFi.Core
657
658**返回值:**
659
660  | **类型** | **说明** |
661  | -------- | -------- |
662  | string | 国家码。 |
663
664**示例:**
665```ts
666import wifi from '@ohos.wifi';
667
668try {
669	let code = wifi.getCountryCode();
670	console.info("code:" + code);
671}catch(error){
672	console.error("failed:" + JSON.stringify(error));
673}
674```
675
676
677## wifi.getP2pLinkedInfo<sup>8+</sup>
678
679getP2pLinkedInfo(): Promise&lt;WifiP2pLinkedInfo&gt;
680
681获取P2P连接信息,使用Promise异步回调。
682
683**需要权限:** ohos.permission.GET_WIFI_INFO
684
685**系统能力:** SystemCapability.Communication.WiFi.P2P
686
687**返回值:**
688
689  | 类型 | 说明 |
690  | -------- | -------- |
691  | Promise&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | Promise对象。表示P2P连接信息。 |
692
693
694
695## WifiP2pLinkedInfo<sup>8+</sup>
696
697提供WLAN连接的相关信息。
698
699**系统能力:** SystemCapability.Communication.WiFi.P2P
700
701| 名称 | 类型 | 可读 | 可写 | 说明 |
702| -------- | -------- | -------- | -------- | -------- |
703| connectState | [P2pConnectState](#p2pconnectstate8) | 是 | 否 | P2P连接状态。 |
704| isGroupOwner | boolean | 是 | 否 | 是否是群主。 |
705| groupOwnerAddr | string | 是 | 否 | 群组MAC地址。
706
707
708## P2pConnectState<sup>8+</sup>
709
710表示P2P连接状态的枚举。
711
712**系统能力:** SystemCapability.Communication.WiFi.P2P
713
714| 名称 | 值 | 说明 |
715| -------- | -------- | -------- |
716| DISCONNECTED | 0 | 断开状态。 |
717| CONNECTED | 1 | 连接状态。 |
718
719
720## wifi.getP2pLinkedInfo<sup>8+</sup>
721
722getP2pLinkedInfo(callback: AsyncCallback&lt;WifiP2pLinkedInfo&gt;): void
723
724获取P2P连接信息,使用callback异步回调。
725
726**需要权限:** ohos.permission.GET_WIFI_INFO
727
728**系统能力:** SystemCapability.Communication.WiFi.P2P
729
730**参数:**
731
732  | 参数名 | 类型 | 必填 | 说明 |
733  | -------- | -------- | -------- | -------- |
734  | callback | AsyncCallback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示P2P连接信息。如果error为非0,表示处理出现错误。 |
735
736**示例:**
737```ts
738import wifi from '@ohos.wifi';
739
740wifi.getP2pLinkedInfo((err, data:wifi.WifiP2pLinkedInfo) => {
741   if (err) {
742       console.error("get p2p linked info error");
743       return;
744   }
745	console.info("get wifi p2p linked info: " + JSON.stringify(data));
746});
747
748wifi.getP2pLinkedInfo().then(data => {
749	console.info("get wifi p2p linked info: " + JSON.stringify(data));
750});
751```
752
753## wifi.getCurrentGroup<sup>8+</sup>
754
755getCurrentGroup(): Promise&lt;WifiP2pGroupInfo&gt;
756
757获取P2P当前组信息,使用Promise异步回调。
758
759**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
760
761**系统能力:** SystemCapability.Communication.WiFi.P2P
762
763**返回值:**
764
765  | 类型 | 说明 |
766  | -------- | -------- |
767  | Promise&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt; | Promise对象。表示当前组信息。 |
768
769
770## wifi.getCurrentGroup<sup>8+</sup>
771
772getCurrentGroup(callback: AsyncCallback&lt;WifiP2pGroupInfo&gt;): void
773
774获取P2P当前组信息,使用callback异步回调。
775
776**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
777
778**系统能力:** SystemCapability.Communication.WiFi.P2P
779
780**参数:**
781
782  | 参数名 | 类型 | 必填 | 说明 |
783  | -------- | -------- | -------- | -------- |
784  | callback | AsyncCallback&lt;[WifiP2pGroupInfo](#wifip2pgroupinfo8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示当前组信息。如果error为非0,表示处理出现错误。 |
785
786**示例:**
787```ts
788import wifi from '@ohos.wifi';
789
790wifi.getCurrentGroup((err, data:wifi.WifiP2pGroupInfo) => {
791   if (err) {
792       console.error("get current P2P group error");
793       return;
794   }
795	console.info("get current P2P group: " + JSON.stringify(data));
796});
797
798wifi.getCurrentGroup().then(data => {
799	console.info("get current P2P group: " + JSON.stringify(data));
800});
801```
802
803## wifi.getP2pPeerDevices<sup>8+</sup>
804
805getP2pPeerDevices(): Promise&lt;WifiP2pDevice[]&gt;
806
807获取P2P对端设备列表信息,使用Promise异步回调。
808
809**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
810
811**系统能力:** SystemCapability.Communication.WiFi.P2P
812
813**返回值:**
814
815  | 类型 | 说明 |
816  | -------- | -------- |
817  | Promise&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | Promise对象。表示对端设备列表信息。 |
818
819
820## wifi.getP2pPeerDevices<sup>8+</sup>
821
822getP2pPeerDevices(callback: AsyncCallback&lt;WifiP2pDevice[]&gt;): void
823
824获取P2P对端设备列表信息,使用callback异步回调。
825
826**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
827
828**系统能力:** SystemCapability.Communication.WiFi.P2P
829
830**参数:**
831
832  | 参数名 | 类型 | 必填 | 说明 |
833  | -------- | -------- | -------- | -------- |
834  | callback | AsyncCallback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 是 | 回调函数。当操作成功时,err为0,data表示对端设备列表信息。如果error为非0,表示处理出现错误。 |
835
836**示例:**
837```ts
838import wifi from '@ohos.wifi';
839
840wifi.getP2pPeerDevices((err, data:wifi.WifiP2pDevice) => {
841   if (err) {
842       console.error("get P2P peer devices error");
843       return;
844   }
845	console.info("get P2P peer devices: " + JSON.stringify(data));
846});
847
848wifi.getP2pPeerDevices().then(data => {
849	console.info("get P2P peer devices: " + JSON.stringify(data));
850});
851```
852
853## WifiP2pDevice<sup>8+</sup>
854
855表示P2P设备信息。
856
857**系统能力:** SystemCapability.Communication.WiFi.P2P
858
859| 名称 | 类型 | 可读 | 可写 | 说明 |
860| -------- | -------- | -------- | -------- | -------- |
861| deviceName | string | 是 | 否 | 设备名称。 |
862| deviceAddress | string | 是 | 否 | 设备MAC地址。 |
863| primaryDeviceType | string | 是 | 否 | 主设备类型。 |
864| deviceStatus | [P2pDeviceStatus](#p2pdevicestatus8) | 是 | 否 | 设备状态。 |
865| groupCapabilitys | number | 是 | 否 | 群组能力。 |
866
867
868## P2pDeviceStatus<sup>8+</sup>
869
870表示设备状态的枚举。
871
872**系统能力:** SystemCapability.Communication.WiFi.P2P
873
874| 名称 | 值 | 说明 |
875| -------- | -------- | -------- |
876| CONNECTED | 0 | 连接状态。 |
877| INVITED | 1 | 邀请状态。 |
878| FAILED | 2 | 失败状态。 |
879| AVAILABLE | 3 | 可用状态。 |
880| UNAVAILABLE | 4 | 不可用状态。 |
881
882
883## wifi.createGroup<sup>8+</sup>
884
885createGroup(config: WifiP2PConfig): boolean
886
887创建群组。
888
889**需要权限:** ohos.permission.GET_WIFI_INFO
890
891**系统能力:** SystemCapability.Communication.WiFi.P2P
892
893**参数:**
894
895  | **参数名** | **类型** | 必填 | **说明** |
896  | -------- | -------- | -------- | -------- |
897  | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 群组配置信息。 |
898
899**返回值:**
900
901  | 类型 | 说明 |
902  | -------- | -------- |
903  | boolean | true:创建群组操作执行成功,&nbsp;false:创建群组操作执行失败。 |
904
905**示例:**
906```ts
907import wifi from '@ohos.wifi';
908
909try {
910	let config:wifi.WifiP2PConfig = {
911		deviceAddress: "****",
912		netId: 0,
913		passphrase: "*****",
914		groupName: "****",
915		goBand: 0
916	}
917	wifi.createGroup(config);
918
919}catch(error){
920	console.error("failed:" + JSON.stringify(error));
921}
922```
923
924## WifiP2PConfig<sup>8+</sup>
925
926表示P2P配置信息。
927
928**系统能力:** SystemCapability.Communication.WiFi.P2P
929
930| 名称 | 类型 | 可读 | 可写 | 说明 |
931| -------- | -------- | -------- | -------- | -------- |
932| deviceAddress | string | 是 | 否 | 设备地址。 |
933| netId | number | 是 | 否 | 网络ID。创建群组时-1表示创建临时组,-2表示创建永久组。 |
934| passphrase | string | 是 | 否 | 群组密钥。 |
935| groupName | string | 是 | 否 | 群组名称。 |
936| goBand | [GroupOwnerBand](#groupownerband8) | 是 | 否 | 群组带宽。 |
937
938
939## GroupOwnerBand<sup>8+</sup>
940
941表示群组带宽的枚举。
942
943**系统能力:** SystemCapability.Communication.WiFi.P2P
944
945| 名称 | 值 | 说明 |
946| -------- | -------- | -------- |
947| GO_BAND_AUTO | 0 | 自动模式。 |
948| GO_BAND_2GHZ | 1 | 2GHZ。 |
949| GO_BAND_5GHZ | 2 | 5GHZ。 |
950
951
952## wifi.removeGroup<sup>8+</sup>
953
954removeGroup(): boolean
955
956移除群组。
957
958**需要权限:** ohos.permission.GET_WIFI_INFO
959
960**系统能力:** SystemCapability.Communication.WiFi.P2P
961
962**返回值:**
963
964  | 类型 | 说明 |
965  | -------- | -------- |
966  | boolean | true:操作执行成功,&nbsp;false:操作执行失败。 |
967
968**示例:**
969```ts
970import wifi from '@ohos.wifi';
971
972try {
973	wifi.removeGroup();
974}catch(error){
975	console.error("failed:" + JSON.stringify(error));
976}
977```
978
979## wifi.p2pConnect<sup>8+</sup>
980
981p2pConnect(config: WifiP2PConfig): boolean
982
983执行P2P连接。
984
985**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
986
987**系统能力:** SystemCapability.Communication.WiFi.P2P
988
989**参数:**
990
991
992  | **参数名** | **类型** | 必填 | **说明** |
993  | -------- | -------- | -------- | -------- |
994  | config | [WifiP2PConfig](#wifip2pconfig8) | 是 | 连接配置信息。 |
995
996**返回值:**
997
998  | 类型 | 说明 |
999  | -------- | -------- |
1000  | boolean | true:操作执行成功,&nbsp;false:操作执行失败。 |
1001
1002
1003**示例:**
1004```ts
1005import wifi from '@ohos.wifi';
1006
1007let recvP2pConnectionChangeFunc = (result:wifi.WifiP2pLinkedInfo) => {
1008    console.info("p2p connection change receive event: " + JSON.stringify(result));
1009    wifi.getP2pLinkedInfo((err, data:wifi.WifiP2pLinkedInfo) => {
1010        if (err) {
1011            console.error('failed to get getP2pLinkedInfo: ' + JSON.stringify(err));
1012            return;
1013        }
1014        console.info("get getP2pLinkedInfo: " + JSON.stringify(data));
1015    });
1016}
1017wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
1018
1019let recvP2pDeviceChangeFunc = (result:wifi.WifiP2pDevice) => {
1020    console.info("p2p device change receive event: " + JSON.stringify(result));
1021}
1022wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
1023
1024let recvP2pPeerDeviceChangeFunc = (result:wifi.WifiP2pDevice[]) => {
1025    console.info("p2p peer device change receive event: " + JSON.stringify(result));
1026    wifi.getP2pPeerDevices((err, data:wifi.WifiP2pDevice) => {
1027        if (err) {
1028            console.error('failed to get peer devices: ' + JSON.stringify(err));
1029            return;
1030        }
1031        console.info("get peer devices: " + JSON.stringify(data));
1032        let len = data.length;
1033        for (let i = 0; i < len; ++i) {
1034            if (data[i].deviceName === "my_test_device") {
1035                console.info("p2p connect to test device: " + data[i].deviceAddress);
1036                let config:wifi.WifiP2PConfig = {
1037                    deviceAddress:data[i].deviceAddress,
1038                    netId:-2,
1039                    passphrase:"",
1040                    groupName:"",
1041                    goBand:0,
1042                }
1043                wifi.p2pConnect(config);
1044            }
1045        }
1046    });
1047}
1048wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
1049
1050let recvP2pPersistentGroupChangeFunc = () => {
1051    console.info("p2p persistent group change receive event");
1052
1053    wifi.getCurrentGroup((err, data:wifi.WifiP2pGroupInfo) => {
1054        if (err) {
1055            console.error('failed to get current group: ' + JSON.stringify(err));
1056            return;
1057        }
1058        console.info("get current group: " + JSON.stringify(data));
1059    });
1060}
1061wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
1062
1063setTimeout(() => {wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);}, 125 * 1000);
1064setTimeout(() => {wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);}, 125 * 1000);
1065setTimeout(() => {wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);}, 125 * 1000);
1066setTimeout(() => {wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);}, 125 * 1000);
1067console.info("start discover devices -> " + wifi.startDiscoverDevices());
1068```
1069
1070## wifi.p2pCancelConnect<sup>8+</sup>
1071
1072p2pCancelConnect(): boolean
1073
1074取消P2P连接。
1075
1076**需要权限:** ohos.permission.GET_WIFI_INFO
1077
1078**系统能力:** SystemCapability.Communication.WiFi.P2P
1079
1080**返回值:**
1081
1082  | 类型 | 说明 |
1083  | -------- | -------- |
1084  | boolean | true:操作执行成功,&nbsp;false:操作执行失败。 |
1085
1086**示例:**
1087```ts
1088import wifi from '@ohos.wifi';
1089
1090try {
1091	wifi.p2pCancelConnect();
1092}catch(error){
1093	console.error("failed:" + JSON.stringify(error));
1094}
1095```
1096
1097## wifi.startDiscoverDevices<sup>8+</sup>
1098
1099startDiscoverDevices(): boolean
1100
1101开始发现设备。
1102
1103**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
1104
1105**系统能力:** SystemCapability.Communication.WiFi.P2P
1106
1107**返回值:**
1108
1109  | 类型 | 说明 |
1110  | -------- | -------- |
1111  | boolean | true:操作执行成功,&nbsp;false:操作执行失败。 |
1112
1113**示例:**
1114```ts
1115import wifi from '@ohos.wifi';
1116
1117try {
1118	wifi.startDiscoverDevices();
1119}catch(error){
1120	console.error("failed:" + JSON.stringify(error));
1121}
1122```
1123
1124## wifi.stopDiscoverDevices<sup>8+</sup>
1125
1126stopDiscoverDevices(): boolean
1127
1128停止发现设备。
1129
1130**需要权限:** ohos.permission.GET_WIFI_INFO
1131
1132**系统能力:** SystemCapability.Communication.WiFi.P2P
1133
1134**返回值:**
1135
1136  | 类型 | 说明 |
1137  | -------- | -------- |
1138  | boolean | true:操作执行成功,操作执行失败。 |
1139
1140**示例:**
1141```ts
1142import wifi from '@ohos.wifi';
1143
1144try {
1145	wifi.stopDiscoverDevices();
1146}catch(error){
1147	console.error("failed:" + JSON.stringify(error));
1148}
1149```
1150
1151
1152
1153## WifiP2pGroupInfo<sup>8+</sup>
1154
1155表示P2P群组相关信息。
1156
1157**系统能力:** SystemCapability.Communication.WiFi.P2P
1158
1159| 名称 | 类型 | 可读 | 可写 | 说明 |
1160| -------- | -------- | -------- | -------- | -------- |
1161| isP2pGo | boolean | 是 | 否 | 是否是群主。 |
1162| ownerInfo | [WifiP2pDevice](#wifip2pdevice8) | 是 | 否 | 群组的设备信息。 |
1163| passphrase | string | 是 | 否 | 群组密钥。 |
1164| interface | string | 是 | 否 | 接口名称。 |
1165| groupName | string | 是 | 否 | 群组名称。 |
1166| networkId | number | 是 | 否 | 网络ID。 |
1167| frequency | number | 是 | 否 | 群组的频率。 |
1168| clientDevices | [WifiP2pDevice[]](#wifip2pdevice8) | 是 | 否 | 接入的设备列表信息。 |
1169| goIpAddress | string | 是 | 否 | 群组IP地址。 |
1170
1171
1172
1173## wifi.on('wifiStateChange')<sup>7+</sup>
1174
1175on(type: 'wifiStateChange', callback: Callback&lt;number&gt;): void
1176
1177注册WLAN状态改变事件。
1178
1179**需要权限:** ohos.permission.GET_WIFI_INFO
1180
1181**系统能力:** SystemCapability.Communication.WiFi.STA
1182
1183**参数:**
1184
1185  | **参数名** | **类型** | **必填** | **说明** |
1186  | -------- | -------- | -------- | -------- |
1187  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
1188  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1189
1190**状态改变事件的枚举:**
1191
1192| **枚举值** | **说明** |
1193| -------- | -------- |
1194| 0 | 未激活。 |
1195| 1 | 已激活。 |
1196| 2 | 激活中。 |
1197| 3 | 去激活中。 |
1198
1199
1200## wifi.off('wifiStateChange')<sup>7+</sup>
1201
1202off(type: 'wifiStateChange', callback?: Callback&lt;number&gt;): void
1203
1204取消注册WLAN状态改变事件。
1205
1206**需要权限:** ohos.permission.GET_WIFI_INFO
1207
1208**系统能力:** SystemCapability.Communication.WiFi.STA
1209
1210**参数:**
1211
1212  | **参数名** | **类型** | **必填** | **说明** |
1213  | -------- | -------- | -------- | -------- |
1214  | type | string | 是 | 固定填"wifiStateChange"字符串。 |
1215  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1216
1217**示例:**
1218```ts
1219import wifi from '@ohos.wifi';
1220
1221let recvPowerNotifyFunc = (result:number) => {
1222    console.info("Receive power state change event: " + result);
1223}
1224
1225// Register event
1226wifi.on("wifiStateChange", recvPowerNotifyFunc);
1227
1228// Unregister event
1229wifi.off("wifiStateChange", recvPowerNotifyFunc);
1230```
1231
1232
1233## wifi.on('wifiConnectionChange')<sup>7+</sup>
1234
1235on(type: 'wifiConnectionChange', callback: Callback&lt;number&gt;): void
1236
1237注册WLAN连接状态改变事件。
1238
1239**需要权限:** ohos.permission.GET_WIFI_INFO
1240
1241**系统能力:** SystemCapability.Communication.WiFi.STA
1242
1243**参数:**
1244
1245  | **参数名** | **类型** | **必填** | **说明** |
1246  | -------- | -------- | -------- | -------- |
1247  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
1248  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1249
1250**连接状态改变事件的枚举:**
1251
1252| **枚举值** | **说明** |
1253| -------- | -------- |
1254| 0 | 已断开。 |
1255| 1 | 已连接。 |
1256
1257
1258## wifi.off('wifiConnectionChange')<sup>7+</sup>
1259
1260off(type: 'wifiConnectionChange', callback?: Callback&lt;number&gt;): void
1261
1262取消注册WLAN连接状态改变事件。
1263
1264**需要权限:** ohos.permission.GET_WIFI_INFO
1265
1266**系统能力:** SystemCapability.Communication.WiFi.STA
1267
1268**参数:**
1269
1270  | **参数名** | **类型** | **必填** | **说明** |
1271  | -------- | -------- | -------- | -------- |
1272  | type | string | 是 | 固定填"wifiConnectionChange"字符串。 |
1273  | callback | Callback&lt;number&gt; | 否 | 连接状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1274
1275**示例:**
1276```ts
1277import wifi from '@ohos.wifi';
1278
1279let recvWifiConnectionChangeFunc = (result:number) => {
1280    console.info("Receive wifi connection change event: " + result);
1281}
1282
1283// Register event
1284wifi.on("wifiConnectionChange", recvWifiConnectionChangeFunc);
1285
1286// Unregister event
1287wifi.off("wifiConnectionChange", recvWifiConnectionChangeFunc);
1288```
1289
1290## wifi.on('wifiScanStateChange')<sup>7+</sup>
1291
1292on(type: 'wifiScanStateChange', callback: Callback&lt;number&gt;): void
1293
1294注册扫描状态改变事件。
1295
1296**需要权限:** ohos.permission.GET_WIFI_INFO
1297
1298**系统能力:** SystemCapability.Communication.WiFi.STA
1299
1300**参数:**
1301
1302  | **参数名** | **类型** | **必填** | **说明** |
1303  | -------- | -------- | -------- | -------- |
1304  | type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
1305  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1306
1307**扫描状态改变事件的枚举:**
1308
1309| **枚举值** | **说明** |
1310| -------- | -------- |
1311| 0 | 扫描失败。 |
1312| 1 | 扫描成功。 |
1313
1314
1315## wifi.off('wifiScanStateChange')<sup>7+</sup>
1316
1317off(type: 'wifiScanStateChange', callback?: Callback&lt;number&gt;): void
1318
1319取消注册扫描状态改变事件。
1320
1321**需要权限:** ohos.permission.GET_WIFI_INFO
1322
1323**系统能力:** SystemCapability.Communication.WiFi.STA
1324
1325**参数:**
1326
1327| **参数名** | **类型** | **必填** | **说明** |
1328| -------- | -------- | -------- | -------- |
1329| type | string | 是 | 固定填"wifiScanStateChange"字符串。 |
1330| callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1331
1332**示例:**
1333```ts
1334import wifi from '@ohos.wifi';
1335
1336let recvWifiScanStateChangeFunc = (result:number) => {
1337    console.info("Receive Wifi scan state change event: " + result);
1338}
1339
1340// Register event
1341wifi.on("wifiScanStateChange", recvWifiScanStateChangeFunc);
1342
1343// Unregister event
1344wifi.off("wifiScanStateChange", recvWifiScanStateChangeFunc);
1345```
1346
1347## wifi.on('wifiRssiChange')<sup>7+</sup>
1348
1349on(type: 'wifiRssiChange', callback: Callback&lt;number&gt;): void
1350
1351注册RSSI状态改变事件。
1352
1353**需要权限:** ohos.permission.GET_WIFI_INFO
1354
1355**系统能力:** SystemCapability.Communication.WiFi.STA
1356
1357**参数:**
1358
1359  | **参数名** | **类型** | **必填** | **说明** |
1360  | -------- | -------- | -------- | -------- |
1361  | type | string | 是 | 固定填"wifiRssiChange"字符串。 |
1362  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数,返回以dBm为单位的RSSI值。 |
1363
1364
1365## wifi.off('wifiRssiChange')<sup>7+</sup>
1366
1367off(type: 'wifiRssiChange', callback?: Callback&lt;number&gt;): void
1368
1369取消注册RSSI状态改变事件。
1370
1371**需要权限:** ohos.permission.GET_WIFI_INFO
1372
1373**系统能力:** SystemCapability.Communication.WiFi.STA
1374
1375**参数:**
1376
1377  | **参数名** | **类型** | **必填** | **说明** |
1378  | -------- | -------- | -------- | -------- |
1379  | type | string | 是 | 固定填"wifiRssiChange"字符串。 |
1380  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1381
1382**示例:**
1383```ts
1384import wifi from '@ohos.wifi';
1385
1386let recvWifiRssiChangeFunc = (result:number) => {
1387    console.info("Receive wifi rssi change event: " + result);
1388}
1389
1390// Register event
1391wifi.on("wifiRssiChange", recvWifiRssiChangeFunc);
1392
1393// Unregister event
1394wifi.off("wifiRssiChange", recvWifiRssiChangeFunc);
1395
1396```
1397
1398
1399## wifi.on('hotspotStateChange')<sup>7+</sup>
1400
1401on(type: 'hotspotStateChange', callback: Callback&lt;number&gt;): void
1402
1403注册热点状态改变事件。
1404
1405**需要权限:** ohos.permission.GET_WIFI_INFO
1406
1407**系统能力:** SystemCapability.Communication.WiFi.AP.Core
1408
1409**参数:**
1410
1411  | **参数名** | **类型** | **必填** | **说明** |
1412  | -------- | -------- | -------- | -------- |
1413  | type | string | 是 | 固定填"hotspotStateChange"字符串。 |
1414  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1415
1416**热点状态改变事件的枚举:**
1417
1418| **枚举值** | **说明** |
1419| -------- | -------- |
1420| 0 | 未激活。 |
1421| 1 | 已激活。 |
1422| 2 | 激活中。 |
1423| 3 | 去激活中。 |
1424
1425**示例:**
1426```ts
1427import wifi from '@ohos.wifi';
1428
1429let recvHotspotStateChangeFunc = (result:number) => {
1430    console.info("Receive hotspot state change event: " + result);
1431}
1432
1433// Register event
1434wifi.on("hotspotStateChange", recvHotspotStateChangeFunc);
1435
1436// Unregister event
1437wifi.off("hotspotStateChange", recvHotspotStateChangeFunc);
1438```
1439
1440## wifi.off('hotspotStateChange')<sup>7+</sup>
1441
1442off(type: 'hotspotStateChange', callback?: Callback&lt;number&gt;): void
1443
1444取消注册热点状态改变事件。
1445
1446**需要权限:** ohos.permission.GET_WIFI_INFO
1447
1448**系统能力:** SystemCapability.Communication.WiFi.AP.Core
1449
1450**参数:**
1451
1452  | **参数名** | **类型** | **必填** | **说明** |
1453  | -------- | -------- | -------- | -------- |
1454  | type | string | 是 | 固定填"hotspotStateChange"字符串。 |
1455  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1456
1457
1458
1459## wifi.on('p2pStateChange')<sup>8+</sup>
1460
1461on(type: 'p2pStateChange', callback: Callback&lt;number&gt;): void
1462
1463注册P2P开关状态改变事件。
1464
1465**需要权限:** ohos.permission.GET_WIFI_INFO
1466
1467**系统能力:** SystemCapability.Communication.WiFi.P2P
1468
1469**参数:**
1470
1471  | **参数名** | **类型** | **必填** | **说明** |
1472  | -------- | -------- | -------- | -------- |
1473  | type | string | 是 | 固定填"p2pStateChange"字符串。 |
1474  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1475
1476**P2P状态改变事件的枚举:**
1477
1478| **枚举值** | **说明** |
1479| -------- | -------- |
1480| 1 | 空闲。 |
1481| 2 | 打开中。 |
1482| 3 | 已打开。 |
1483| 4 | 关闭中。 |
1484| 5 | 已关闭。 |
1485
1486## wifi.off('p2pStateChange')<sup>8+</sup>
1487
1488off(type: 'p2pStateChange', callback?: Callback&lt;number&gt;): void
1489
1490取消注册P2P开关状态改变事件。
1491
1492**需要权限:** ohos.permission.GET_WIFI_INFO
1493
1494**系统能力:** SystemCapability.Communication.WiFi.P2P
1495
1496**参数:**
1497
1498  | **参数名** | **类型** | **必填** | **说明** |
1499  | -------- | -------- | -------- | -------- |
1500  | type | string | 是 | 固定填"p2pStateChange"字符串。 |
1501  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1502
1503**示例:**
1504```ts
1505import wifi from '@ohos.wifi';
1506
1507let recvP2pStateChangeFunc = (result:number) => {
1508    console.info("Receive p2p state change event: " + result);
1509}
1510
1511// Register event
1512wifi.on("p2pStateChange", recvP2pStateChangeFunc);
1513
1514// Unregister event
1515wifi.off("p2pStateChange", recvP2pStateChangeFunc);
1516```
1517
1518## wifi.on('p2pConnectionChange')<sup>8+</sup>
1519
1520on(type: 'p2pConnectionChange', callback: Callback&lt;WifiP2pLinkedInfo&gt;): void
1521
1522注册P2P连接状态改变事件。
1523
1524**需要权限:** ohos.permission.GET_WIFI_INFO
1525
1526**系统能力:** SystemCapability.Communication.WiFi.P2P
1527
1528**参数:**
1529
1530  | **参数名** | **类型** | **必填** | **说明** |
1531  | -------- | -------- | -------- | -------- |
1532  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
1533  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 是 | 状态改变回调函数。 |
1534
1535
1536## wifi.off('p2pConnectionChange')<sup>8+</sup>
1537
1538off(type: 'p2pConnectionChange', callback?: Callback&lt;WifiP2pLinkedInfo&gt;): void
1539
1540取消注册P2P连接状态改变事件。
1541
1542**需要权限:** ohos.permission.GET_WIFI_INFO
1543
1544**系统能力:** SystemCapability.Communication.WiFi.P2P
1545
1546**参数:**
1547
1548  | **参数名** | **类型** | **必填** | **说明** |
1549  | -------- | -------- | -------- | -------- |
1550  | type | string | 是 | 固定填"p2pConnectionChange"字符串。 |
1551  | callback | Callback&lt;[WifiP2pLinkedInfo](#wifip2plinkedinfo8)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1552
1553**示例:**
1554```ts
1555import wifi from '@ohos.wifi';
1556
1557let recvP2pConnectionChangeFunc = (result:wifi.WifiP2pLinkedInfo) => {
1558    console.info("Receive p2p connection change event: " + result);
1559}
1560
1561// Register event
1562wifi.on("p2pConnectionChange", recvP2pConnectionChangeFunc);
1563
1564// Unregister event
1565wifi.off("p2pConnectionChange", recvP2pConnectionChangeFunc);
1566```
1567
1568## wifi.on('p2pDeviceChange')<sup>8+</sup>
1569
1570on(type: 'p2pDeviceChange', callback: Callback&lt;WifiP2pDevice&gt;): void
1571
1572注册P2P设备状态改变事件。
1573
1574**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
1575
1576**系统能力:** SystemCapability.Communication.WiFi.P2P
1577
1578**参数:**
1579
1580  | **参数名** | **类型** | **必填** | **说明** |
1581  | -------- | -------- | -------- | -------- |
1582  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
1583  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | 是 | 状态改变回调函数。 |
1584
1585
1586## wifi.off('p2pDeviceChange')<sup>8+</sup>
1587
1588off(type: 'p2pDeviceChange', callback?: Callback&lt;WifiP2pDevice&gt;): void
1589
1590取消注册P2P设备状态改变事件。
1591
1592**需要权限:** ohos.permission.LOCATION
1593
1594**系统能力:** SystemCapability.Communication.WiFi.P2P
1595
1596**参数:**
1597
1598  | **参数名** | **类型** | **必填** | **说明** |
1599  | -------- | -------- | -------- | -------- |
1600  | type | string | 是 | 固定填"p2pDeviceChange"字符串。 |
1601  | callback | Callback&lt;[WifiP2pDevice](#wifip2pdevice8)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1602
1603**示例:**
1604```ts
1605import wifi from '@ohos.wifi';
1606
1607let recvP2pDeviceChangeFunc = (result:wifi.WifiP2pDevice) => {
1608    console.info("Receive p2p device change event: " + result);
1609}
1610
1611// Register event
1612wifi.on("p2pDeviceChange", recvP2pDeviceChangeFunc);
1613
1614// Unregister event
1615wifi.off("p2pDeviceChange", recvP2pDeviceChangeFunc);
1616```
1617
1618## wifi.on('p2pPeerDeviceChange')<sup>8+</sup>
1619
1620on(type: 'p2pPeerDeviceChange', callback: Callback&lt;WifiP2pDevice[]&gt;): void
1621
1622注册P2P对端设备状态改变事件。
1623
1624**需要权限:** ohos.permission.GET_WIFI_INFOohos.permission.LOCATION
1625
1626**系统能力:** SystemCapability.Communication.WiFi.P2P
1627
1628**参数:**
1629
1630  | **参数名** | **类型** | **必填** | **说明** |
1631  | -------- | -------- | -------- | -------- |
1632  | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
1633  | callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 是 | 状态改变回调函数。 |
1634
1635
1636## wifi.off('p2pPeerDeviceChange')<sup>8+</sup>
1637
1638off(type: 'p2pPeerDeviceChange', callback?: Callback&lt;WifiP2pDevice[]&gt;): void
1639
1640取消注册P2P对端设备状态改变事件。
1641
1642**需要权限:** ohos.permission.LOCATION
1643
1644**系统能力:** SystemCapability.Communication.WiFi.P2P
1645
1646**参数:**
1647
1648  | **参数名** | **类型** | **必填** | **说明** |
1649  | -------- | -------- | -------- | -------- |
1650  | type | string | 是 | 固定填"p2pPeerDeviceChange"字符串。 |
1651  | callback | Callback&lt;[WifiP2pDevice[]](#wifip2pdevice8)&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1652
1653**示例:**
1654```ts
1655import wifi from '@ohos.wifi';
1656
1657let recvP2pPeerDeviceChangeFunc = (result:wifi.WifiP2pDevice[]) => {
1658    console.info("Receive p2p peer device change event: " + result);
1659}
1660
1661// Register event
1662wifi.on("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
1663
1664// Unregister event
1665wifi.off("p2pPeerDeviceChange", recvP2pPeerDeviceChangeFunc);
1666```
1667
1668## wifi.on('p2pPersistentGroupChange')<sup>8+</sup>
1669
1670on(type: 'p2pPersistentGroupChange', callback: Callback&lt;void&gt;): void
1671
1672注册P2P永久组状态改变事件。
1673
1674**需要权限:** ohos.permission.GET_WIFI_INFO
1675
1676**系统能力:** SystemCapability.Communication.WiFi.P2P
1677
1678**参数:**
1679
1680  | **参数名** | **类型** | **必填** | **说明** |
1681  | -------- | -------- | -------- | -------- |
1682  | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
1683  | callback | Callback&lt;void&gt; | 是 | 状态改变回调函数。 |
1684
1685
1686## wifi.off('p2pPersistentGroupChange')<sup>8+</sup>
1687
1688off(type: 'p2pPersistentGroupChange', callback?: Callback&lt;void&gt;): void
1689
1690取消注册P2P永久组状态改变事件。
1691
1692**需要权限:** ohos.permission.GET_WIFI_INFO
1693
1694**系统能力:** SystemCapability.Communication.WiFi.P2P
1695
1696**参数:**
1697
1698  | **参数名** | **类型** | **必填** | **说明** |
1699  | -------- | -------- | -------- | -------- |
1700  | type | string | 是 | 固定填"p2pPersistentGroupChange"字符串。 |
1701  | callback | Callback&lt;void&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1702
1703**示例:**
1704```ts
1705import wifi from '@ohos.wifi';
1706
1707let recvP2pPersistentGroupChangeFunc = (result:void) => {
1708    console.info("Receive p2p persistent group change event: " + result);
1709}
1710
1711// Register event
1712wifi.on("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
1713
1714// Unregister event
1715wifi.off("p2pPersistentGroupChange", recvP2pPersistentGroupChangeFunc);
1716
1717```
1718
1719## wifi.on('p2pDiscoveryChange')<sup>8+</sup>
1720
1721on(type: 'p2pDiscoveryChange', callback: Callback&lt;number&gt;): void
1722
1723注册发现设备状态改变事件。
1724
1725**需要权限:** ohos.permission.GET_WIFI_INFO
1726
1727**系统能力:** SystemCapability.Communication.WiFi.P2P
1728
1729**参数:**
1730
1731  | **参数名** | **类型** | **必填** | **说明** |
1732  | -------- | -------- | -------- | -------- |
1733  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
1734  | callback | Callback&lt;number&gt; | 是 | 状态改变回调函数。 |
1735
1736**发现设备状态改变事件的枚举:**
1737
1738| **枚举值** | **说明** |
1739| -------- | -------- |
1740| 0 | 初始状态。 |
1741| 1 | 发现成功。 |
1742
1743
1744## wifi.off('p2pDiscoveryChange')<sup>8+</sup>
1745
1746off(type: 'p2pDiscoveryChange', callback?: Callback&lt;number&gt;): void
1747
1748取消注册发现设备状态改变事件。
1749
1750**需要权限:** ohos.permission.GET_WIFI_INFO
1751
1752**系统能力:** SystemCapability.Communication.WiFi.P2P
1753
1754**参数:**
1755
1756  | **参数名** | **类型** | **必填** | **说明** |
1757  | -------- | -------- | -------- | -------- |
1758  | type | string | 是 | 固定填"p2pDiscoveryChange"字符串。 |
1759  | callback | Callback&lt;number&gt; | 否 | 状态改变回调函数。如果callback不填,将取消注册该事件关联的所有回调函数。 |
1760
1761**示例:**
1762```ts
1763import wifi from '@ohos.wifi';
1764
1765let recvP2pDiscoveryChangeFunc = (result:number) => {
1766    console.info("Receive p2p discovery change event: " + result);
1767}
1768
1769// Register event
1770wifi.on("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
1771
1772// Unregister event
1773wifi.off("p2pDiscoveryChange", recvP2pDiscoveryChangeFunc);
1774```