• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.net.policy (网络策略管理)
2
3网络策略管理通过对用户使用数据流量进行控制管理,采用防火墙技术实现网络策略的管理。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```js
12import policy from '@ohos.net.policy'
13```
14
15## policy.setBackgroundPolicy
16
17setBackgroundPolicy(isAllowed: boolean, callback: AsyncCallback\<void>): void
18
19设置后台网络策略,使用callback方式作为异步方法。
20
21**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
22
23**系统能力**:SystemCapability.Communication.NetManager.Core
24
25**参数:**
26
27| 参数名   | 类型                                    | 必填 | 说明       |
28| -------- | --------------------------------------- | ---- | ---------- |
29| isAllowed | boolean | 是   | 是否允许应用后台使用数据 |
30| callback | AsyncCallback\<void> | 是   | 回调函数,成功返回设置后台网络策略的结果,失败返回错误码错误信息。 |
31
32**错误码:**
33
34| 错误码ID | 错误信息                                      |
35| ------- | -------------------------------------------- |
36| 201     | Permission denied.                           |
37| 401     | Parameter error.                             |
38| 2100001 | Invalid parameter value.                |
39| 2100002 | Operation failed. Cannot connect to service.|
40| 2100003 | System internal error.                  |
41
42**示例:**
43
44```js
45policy.setBackgroundPolicy(Boolean(Number.parseInt(this.isBoolean))), (error, data) => {
46    this.callBack(error, data);
47    console.log(JSON.stringify(error))
48    console.log(JSON.stringify(data))
49});
50```
51
52## policy.setBackgroundPolicy
53
54setBackgroundPolicy(isAllowed: boolean): Promise\<void>
55
56设置后台网络策略,使用Promise方式作为异步方法。
57
58**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
59
60**系统能力**:SystemCapability.Communication.NetManager.Core
61
62**参数:**
63
64| 参数名   | 类型                                    | 必填 | 说明       |
65| -------- | --------------------------------------- | ---- | ---------- |
66| isAllowed | boolean | 是   | 是否允许应用后台使用数据 |
67
68**错误码:**
69
70| 错误码ID | 错误信息                                      |
71| ------- | -------------------------------------------- |
72| 201     | Permission denied.                           |
73| 401     | Parameter error.                             |
74| 2100001 | Invalid parameter value.                |
75| 2100002 | Operation failed. Cannot connect to service.|
76| 2100003 | System internal error.                  |
77
78**返回值:**
79
80| 类型                              | 说明                                  |
81| --------------------------------- | ------------------------------------- |
82| Promise\<void> | 以Promise形式返回设定结果,失败返回错误码错误信息。 |
83
84**示例:**
85
86```js
87policy.setBackgroundPolicy(Boolean(Number.parseInt(this.isBoolean))).then(function(error, data) {
88    console.log(JSON.stringify(error))
89    console.log(JSON.stringify(data))
90})
91```
92
93## policy.isBackgroundAllowed
94
95isBackgroundAllowed(callback: AsyncCallback\<boolean>): void
96
97获取后台网络策略,使用callback方式作为异步方法。
98
99**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
100
101**系统能力**:SystemCapability.Communication.NetManager.Core
102
103**参数:**
104
105| 参数名   | 类型                                    | 必填 | 说明       |
106| -------- | --------------------------------------- | ---- | ---------- |
107| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回true代表后台策略为允许。失败返回错误码错误信息。 |
108
109**错误码:**
110
111| 错误码ID | 错误信息                                      |
112| ------- | -------------------------------------------- |
113| 201     | Permission denied.                           |
114| 2100002 | Operation failed. Cannot connect to service.|
115| 2100003 | System internal error.                  |
116
117**示例:**
118
119```js
120policy.isBackgroundAllowed((error, data) => {
121    this.callBack(error, data);
122    console.log(JSON.stringify(error))
123    console.log(JSON.stringify(data))
124});
125```
126
127## policy.isBackgroundAllowed
128
129isBackgroundAllowed(): Promise\<boolean>;
130
131获取后台网络策略,使用Promise方式作为异步方法。
132
133**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
134
135**系统能力**:SystemCapability.Communication.NetManager.Core
136
137**返回值:**
138
139| 类型                              | 说明                                  |
140| --------------------------------- | ------------------------------------- |
141| Promise\<boolean> | 以Promise形式返回设定结果。 返回true代表后台策略为允许。失败返回错误码错误信息。|
142
143**错误码:**
144
145| 错误码ID | 错误信息                                      |
146| ------- | -------------------------------------------- |
147| 201     | Permission denied.                           |
148| 2100002 | Operation failed. Cannot connect to service.|
149| 2100003 | System internal error.                  |
150
151**示例:**
152
153```js
154policy.isBackgroundAllowed().then(function(error, data) {
155    console.log(JSON.stringify(error))
156    console.log(JSON.stringify(data))
157})
158
159```
160
161## policy.setPolicyByUid
162
163setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback\<void>): void
164
165设置对应uid应用的访问计量网络的策略,使用callback方式作为异步方法。
166
167**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
168
169**系统能力**:SystemCapability.Communication.NetManager.Core
170
171**参数:**
172
173| 参数名   | 类型                                    | 必填 | 说明       |
174| -------- | --------------------------------------- | ---- | ---------- |
175| uid | number | 是   | 应用的唯一标识符 |
176| policy | [NetUidPolicy](#netuidpolicy) | 是 | 应用对应的策略 |
177| callback | AsyncCallback\<void> | 是   | 回调函数,成功返回设定结果。失败返回错误码错误信息。 |
178
179**错误码:**
180
181| 错误码ID | 错误信息                                      |
182| ------- | -------------------------------------------- |
183| 201     | Permission denied.                           |
184| 401     | Parameter error.                             |
185| 2100001 | Invalid parameter value.                |
186| 2100002 | Operation failed. Cannot connect to service.|
187| 2100003 | System internal error.                  |
188
189**示例:**
190
191```js
192let param = {
193    uid: Number.parseInt(this.firstParam), policy: Number.parseInt(this.currentNetUidPolicy)
194}
195policy.setPolicyByUid(Number.parseInt(this.firstParam), Number.parseInt(this.currentNetUidPolicy), (error, data) => {
196    this.callBack(error, data);
197});
198```
199
200## policy.setPolicyByUid
201
202setPolicyByUid(uid: number, policy: NetUidPolicy): Promise\<void>;
203
204设置对应uid应用的访问计量网络的策略,使用Promise方式作为异步方法。
205
206**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
207
208**系统能力**:SystemCapability.Communication.NetManager.Core
209
210**参数:**
211
212| 参数名   | 类型                                    | 必填 | 说明       |
213| -------- | --------------------------------------- | ---- | ---------- |
214| uid | number | 是   | 应用的唯一标识符 |
215| policy | [NetUidPolicy](#netuidpolicy) | 是 | 应用对应的策略 |
216
217**返回值:**
218
219| 类型                              | 说明                                  |
220| --------------------------------- | ------------------------------------- |
221| Promise\<void> | 以Promise形式返回设定结果。失败返回错误码错误信息。 |
222
223**错误码:**
224
225| 错误码ID | 错误信息                                      |
226| ------- | -------------------------------------------- |
227| 201     | Permission denied.                           |
228| 401     | Parameter error.                             |
229| 2100001 | Invalid parameter value.                |
230| 2100002 | Operation failed. Cannot connect to service.|
231| 2100003 | System internal error.                  |
232
233**示例:**
234
235```js
236let param = {
237    uid: Number.parseInt(this.firstParam), policy: Number.parseInt(this.currentNetUidPolicy)
238}
239policy.setPolicyByUid(Number.parseInt(this.firstParam), Number.parseInt(this.currentNetUidPolicy)).then(function(error, data) {
240    console.log(JSON.stringify(error))
241    console.log(JSON.stringify(data))
242})
243
244```
245
246## policy.getPolicyByUid
247
248getPolicyByUid(uid: number, callback: AsyncCallback\<NetUidPolicy>): void
249
250通过应用uid获取策略,使用callback方式作为异步方法。
251
252**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
253
254**系统能力**:SystemCapability.Communication.NetManager.Core
255
256**参数:**
257
258| 参数名   | 类型                                    | 必填 | 说明       |
259| -------- | --------------------------------------- | ---- | ---------- |
260| uid | number | 是 | app唯一标识符 |
261| callback | AsyncCallback\<[NetUidPolicy](#netuidpolicy)> | 是   | 回调函数,成功返回获取策略结果,失败返回错误码错误信息。 |
262
263**错误码:**
264
265| 错误码ID | 错误信息                                      |
266| ------- | -------------------------------------------- |
267| 201     | Permission denied.                           |
268| 401     | Parameter error.                             |
269| 2100001 | Invalid parameter value.                |
270| 2100002 | Operation failed. Cannot connect to service.|
271| 2100003 | System internal error.                  |
272
273**示例:**
274
275```js
276policy.getPolicyByUid(Number.parseInt(this.firstParam), (error, data) => {
277    this.callBack(error, data);
278});
279```
280
281## policy.getPolicyByUid
282
283getPolicyByUid(uid: number): Promise\<NetUidPolicy>;
284
285通过应用uid获取策略,使用Promise方式作为异步方法。
286
287**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
288
289**系统能力**:SystemCapability.Communication.NetManager.Core
290
291**参数:**
292
293| 参数名   | 类型                                    | 必填 | 说明       |
294| -------- | --------------------------------------- | ---- | ---------- |
295| uid | number | 是 | app唯一标识符 |
296
297**返回值:**
298
299| 类型                              | 说明                                  |
300| --------------------------------- | ------------------------------------- |
301| Promise\<[NetUidPolicy](#netuidpolicy)> | 以Promise形式返回获取策略结果。失败返回错误码错误信息。|
302
303**错误码:**
304
305| 错误码ID | 错误信息                                      |
306| ------- | -------------------------------------------- |
307| 201     | Permission denied.                           |
308| 401     | Parameter error.                             |
309| 2100001 | Invalid parameter value.                |
310| 2100002 | Operation failed. Cannot connect to service.|
311| 2100003 | System internal error.                  |
312
313**示例:**
314
315```js
316policy.getPolicyByUid(Number.parseInt(this.firstParam)).then(function(error, data) {
317    console.log(JSON.stringify(error))
318    console.log(JSON.stringify(data))
319})
320
321```
322
323## policy.getUidsByPolicy
324
325getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback\<Array\<number>>): void
326
327通过策略获取设置这一策略的应用uid数组,使用callback方式作为异步方法。
328
329**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
330
331**系统能力**:SystemCapability.Communication.NetManager.Core
332
333**参数:**
334
335| 参数名   | 类型                                    | 必填 | 说明       |
336| -------- | --------------------------------------- | ---- | ---------- |
337| policy | [NetUidPolicy](#netuidpolicy) | 是 | 应用对应的计量网络下的策略 |
338| callback | AsyncCallback\<Array\<number>> | 是   | 回调函数,成功返回应用的uid数组,失败返回错误码错误信息。|
339
340**错误码:**
341
342| 错误码ID | 错误信息                                      |
343| ------- | -------------------------------------------- |
344| 201     | Permission denied.                           |
345| 401     | Parameter error.                             |
346| 2100001 | Invalid parameter value.                |
347| 2100002 | Operation failed. Cannot connect to service.|
348| 2100003 | System internal error.                  |
349
350**示例:**
351
352```js
353policy.getUidsByPolicy(Number.parseInt(this.currentNetUidPolicy), (error, data) => {
354    this.callBack(error, data);
355});
356```
357
358## policy.getUidsByPolicy
359
360function getUidsByPolicy(policy: NetUidPolicy): Promise\<Array\<number>>;
361
362通过策略获取设置这一策略的应用uid数组,使用Promise方式作为异步方法。
363
364**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
365
366**系统能力**:SystemCapability.Communication.NetManager.Core
367
368**参数:**
369
370| 参数名   | 类型                                    | 必填 | 说明       |
371| -------- | --------------------------------------- | ---- | ---------- |
372| policy | [NetUidPolicy](#netuidpolicy) | 是 | app对应的计量网络下的策略 |
373
374**返回值:**
375
376| 类型                              | 说明                                  |
377| --------------------------------- | ------------------------------------- |
378| Promise\<Array\<number>> | 以Promise形式返回应用的uid数组,失败返回错误码错误信息。|
379
380**错误码:**
381
382| 错误码ID | 错误信息                                      |
383| ------- | -------------------------------------------- |
384| 201     | Permission denied.                           |
385| 401     | Parameter error.                             |
386| 2100001 | Invalid parameter value.                |
387| 2100002 | Operation failed. Cannot connect to service.|
388| 2100003 | System internal error.                  |
389
390**示例:**
391
392```js
393policy.getUidsByPolicy(Number.parseInt(this.firstParam)).then(function(error, data) {
394    console.log(JSON.stringify(error))
395    console.log(JSON.stringify(data))
396})
397
398```
399
400## policy.getNetQuotaPolicies
401
402getNetQuotaPolicies(callback: AsyncCallback\<Array\<NetQuotaPolicy>>): void
403
404获取计量网络策略,使用callback方式作为异步方法。
405
406**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
407
408**系统能力**:SystemCapability.Communication.NetManager.Core
409
410**参数:**
411
412| 参数名   | 类型                                    | 必填 | 说明       |
413| -------- | --------------------------------------- | ---- | ---------- |
414| callback | AsyncCallback\<Array\<[NetQuotaPolicy](#netquotapolicy)>> | 是   | 回调函数,返回获取结果。 |
415
416**错误码:**
417
418| 错误码ID | 错误信息                                      |
419| ------- | -------------------------------------------- |
420| 201     | Permission denied.                           |
421| 2100002 | Operation failed. Cannot connect to service.|
422| 2100003 | System internal error.                  |
423
424**示例:**
425
426```js
427policy.getNetQuotaPolicies((error, data) => {
428    this.callBack(error, data);
429});
430```
431
432## policy.getNetQuotaPolicies
433
434getNetQuotaPolicies(): Promise\<Array\<NetQuotaPolicy>>;
435
436获取计量网络策略,使用Promise方式作为异步方法。
437
438**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
439
440**系统能力**:SystemCapability.Communication.NetManager.Core
441
442**返回值:**
443
444| 类型                              | 说明                                  |
445| --------------------------------- | ------------------------------------- |
446| Promise\<Array\<[NetQuotaPolicy](#netquotapolicy)>> | 以Promise形式返回设定结果。 |
447
448**错误码:**
449
450| 错误码ID | 错误信息                                      |
451| ------- | -------------------------------------------- |
452| 201     | Permission denied.                           |
453| 2100002 | Operation failed. Cannot connect to service.|
454| 2100003 | System internal error.                  |
455
456**示例:**
457
458```js
459policy.getNetQuotaPolicies().then(function(error, data) {
460    console.log(JSON.stringify(error))
461    console.log(JSON.stringify(data))
462})
463
464```
465
466## policy.setNetQuotaPolicies
467
468setNetQuotaPolicies(quotaPolicies: Array\<NetQuotaPolicy>, callback: AsyncCallback\<void>): void
469
470设置计量网络策略,使用callback方式作为异步方法。
471
472**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
473
474**系统能力**:SystemCapability.Communication.NetManager.Core
475
476**参数:**
477
478| 参数名   | 类型                                    | 必填 | 说明       |
479| -------- | --------------------------------------- | ---- | ---------- |
480| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy)> | 是 | 计量网络策略 |
481| callback | AsyncCallback\<void> | 是   | 回调函数,返回设定结果。 |
482
483**错误码:**
484
485| 错误码ID | 错误信息                                      |
486| ------- | -------------------------------------------- |
487| 201     | Permission denied.                           |
488| 401     | Parameter error.                             |
489| 2100001 | Invalid parameter value.                |
490| 2100002 | Operation failed. Cannot connect to service.|
491| 2100003 | System internal error.                  |
492
493**示例:**
494
495```js
496let param = {netType:Number.parseInt(this.netType), iccid:this.iccid, ident:this.ident, periodDuration:this.periodDuration, warningBytes:Number.parseInt(this.warningBytes),
497    limitBytes:Number.parseInt(this.limitBytes), lastWarningRemind:this.lastWarningRemind, lastLimitRemind:this.lastLimitRemind, metered:Boolean(Number.parseInt(this.metered)), limitAction:this.limitAction};
498this.netQuotaPolicyList.push(param);
499
500policy.setNetQuotaPolicies(this.netQuotaPolicyList, (error, data) => {
501    this.callBack(error, data);
502});
503```
504
505## policy.setNetQuotaPolicies
506
507setNetQuotaPolicies(quotaPolicies: Array\<NetQuotaPolicy>): Promise\<void>;
508
509设置计量网络策略,使用Promise方式作为异步方法。
510
511**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
512
513**系统能力**:SystemCapability.Communication.NetManager.Core
514
515**参数:**
516
517| 参数名   | 类型                                    | 必填 | 说明       |
518| -------- | --------------------------------------- | ---- | ---------- |
519| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy)> | 是 | 计量网络策略 |
520
521**错误码:**
522
523| 错误码ID | 错误信息                                      |
524| ------- | -------------------------------------------- |
525| 201     | Permission denied.                           |
526| 401     | Parameter error.                             |
527| 2100001 | Invalid parameter value.                |
528| 2100002 | Operation failed. Cannot connect to service.|
529| 2100003 | System internal error.                  |
530
531**返回值:**
532
533| 类型                              | 说明                                  |
534| --------------------------------- | ------------------------------------- |
535| Promise\<void> | 以Promise形式返回设定结果。 |
536
537**示例:**
538
539```js
540let param = {netType:Number.parseInt(this.netType), iccid:this.iccid, ident:this.ident, periodDuration:this.periodDuration, warningBytes:Number.parseInt(this.warningBytes),
541    limitBytes:Number.parseInt(this.limitBytes), lastWarningRemind:this.lastWarningRemind, lastLimitRemind:this.lastLimitRemind, metered:Boolean(Number.parseInt(this.metered)), limitAction:this.limitAction};
542this.netQuotaPolicyList.push(param);
543
544policy.setNetQuotaPolicies(this.netQuotaPolicyList).then(function(error, data) {
545    console.log(JSON.stringify(error))
546    console.log(JSON.stringify(data))
547})
548```
549
550## policy.restoreAllPolicies
551
552restoreAllPolicies(iccid: string, callback: AsyncCallback\<void>): void
553
554重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用callback方式作为异步方法。
555
556**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
557
558**系统能力**:SystemCapability.Communication.NetManager.Core
559
560**参数:**
561
562| 参数名   | 类型                                    | 必填 | 说明       |
563| -------- | --------------------------------------- | ---- | ---------- |
564| iccid | string | 是 | SIM卡ID|
565| callback | AsyncCallback\<void> | 是   | 回调函数,返回重置结果。 |
566
567**错误码:**
568
569| 错误码ID | 错误信息                                      |
570| ------- | -------------------------------------------- |
571| 201     | Permission denied.                           |
572| 401     | Parameter error.                             |
573| 2100001 | Invalid parameter value.                |
574| 2100002 | Operation failed. Cannot connect to service.|
575| 2100003 | System internal error.                  |
576
577**示例:**
578
579```js
580this.firstParam = iccid;
581policy.restoreAllPolicies(this.firstParam, (error, data) => {
582    this.callBack(error, data);
583});
584```
585
586## policy.restoreAllPolicies
587
588restoreAllPolicies(iccid: string): Promise\<void>;
589
590重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用Promise方式作为异步方法。
591
592**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
593
594**系统能力**:SystemCapability.Communication.NetManager.Core
595
596**参数:**
597
598| 参数名   | 类型                                    | 必填 | 说明       |
599| -------- | --------------------------------------- | ---- | ---------- |
600| iccid | string | 是 | SIM卡ID|
601
602**返回值:**
603
604| 类型                              | 说明                                  |
605| --------------------------------- | ------------------------------------- |
606| Promise\<void> | 以Promise形式返回设定结果。 |
607
608**错误码:**
609
610| 错误码ID | 错误信息                                      |
611| ------- | -------------------------------------------- |
612| 201     | Permission denied.                           |
613| 401     | Parameter error.                             |
614| 2100001 | Invalid parameter value.                |
615| 2100002 | Operation failed. Cannot connect to service.|
616| 2100003 | System internal error.                  |
617
618**示例:**
619
620```js
621this.firstParam = iccid;
622policy.restoreAllPolicies(this.firstParam).then(function(error, data){
623    console.log(JSON.stringify(error))
624    console.log(JSON.stringify(data))
625})
626
627```
628
629## policy.isUidNetAllowed
630
631isUidNetAllowed(uid: number, isMetered: boolean, callback: AsyncCallback\<boolean>): void
632
633获取对应uid能否访问计量或非计量网络,使用callback方式作为异步方法。
634
635**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
636
637**系统能力**:SystemCapability.Communication.NetManager.Core
638
639**参数:**
640
641| 参数名   | 类型                                    | 必填 | 说明       |
642| -------- | --------------------------------------- | ---- | ---------- |
643| uid | number | 是 | app唯一标识符 |
644| isMetered | boolean | 是 | 是否为计量网络 |
645| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回true表示这个uid可以访问对应的计量网络。 |
646
647**错误码:**
648
649| 错误码ID | 错误信息                                      |
650| ------- | -------------------------------------------- |
651| 201     | Permission denied.                           |
652| 401     | Parameter error.                             |
653| 2100001 | Invalid parameter value.                |
654| 2100002 | Operation failed. Cannot connect to service.|
655| 2100003 | System internal error.                  |
656
657**示例:**
658
659```js
660
661let param = {
662    uid: Number.parseInt(this.firstParam), isMetered: Boolean(Number.parseInt(this.isBoolean))
663}
664policy.isUidNetAllowed(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (error, data) => {
665    this.callBack(error, data);
666});
667```
668
669## policy.isUidNetAllowed
670
671isUidNetAllowed(uid: number, isMetered: boolean): Promise\<boolean>;
672
673获取对应uid能否访问计量或非计量网络,使用Promise方式作为异步方法。
674
675**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
676
677**系统能力**:SystemCapability.Communication.NetManager.Core
678
679**参数:**
680
681| 参数名   | 类型                                    | 必填 | 说明       |
682| -------- | --------------------------------------- | ---- | ---------- |
683| uid | number | 是 | app唯一标识符 |
684| isMetered | boolean | 是 | 是否为计量网络 |
685
686**返回值:**
687
688| 类型                              | 说明                                  |
689| --------------------------------- | ------------------------------------- |
690| Promise\<boolean> | 以Promise形式返回设定结果。 |
691
692**错误码:**
693
694| 错误码ID | 错误信息                                      |
695| ------- | -------------------------------------------- |
696| 201     | Permission denied.                           |
697| 401     | Parameter error.                             |
698| 2100001 | Invalid parameter value.                |
699| 2100002 | Operation failed. Cannot connect to service.|
700| 2100003 | System internal error.                  |
701
702**示例:**
703
704```js
705
706let param = {
707    uid: Number.parseInt(this.firstParam), isMetered: Boolean(Number.parseInt(this.isBoolean))
708}
709policy.isUidNetAllowed(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean))).then(function(error, data) {
710    console.log(JSON.stringify(error))
711    console.log(JSON.stringify(data))
712})
713
714```
715
716## policy.isUidNetAllowed
717
718isUidNetAllowed(uid: number, iface: string, callback: AsyncCallback\<boolean>): void
719
720获取对应uid能否访问指定的iface的网络,使用callback方式作为异步方法。
721
722**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
723
724**系统能力**:SystemCapability.Communication.NetManager.Core
725
726**参数:**
727
728| 参数名   | 类型                                    | 必填 | 说明       |
729| -------- | --------------------------------------- | ---- | ---------- |
730| uid | number | 是 | app唯一标识符 |
731| iface | string | 是 | 网络对应的名称 |
732| callback | AsyncCallback\<boolean> | 是   | 回调函数,返回true表示这个uid可以访问对应iface的网络。 |
733
734**错误码:**
735
736| 错误码ID | 错误信息                                      |
737| ------- | -------------------------------------------- |
738| 201     | Permission denied.                           |
739| 401     | Parameter error.                             |
740| 2100001 | Invalid parameter value.                |
741| 2100002 | Operation failed. Cannot connect to service.|
742| 2100003 | System internal error.                  |
743
744**示例:**
745
746```js
747
748let param = {
749    uid: Number.parseInt(this.firstParam), iface: this.secondParam
750}
751policy.isUidNetAllowed(Number.parseInt(this.firstParam), this.secondParam, (error, data) => {
752    this.callBack(error, data);
753});
754```
755
756## policy.isUidNetAllowed
757
758isUidNetAllowed(uid: number, iface: string): Promise\<boolean>;
759
760获取对应uid能否访问指定的iface的网络,使用Promise方式作为异步方法。
761
762**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
763
764**系统能力**:SystemCapability.Communication.NetManager.Core
765
766**参数:**
767
768| 参数名   | 类型                                    | 必填 | 说明       |
769| -------- | --------------------------------------- | ---- | ---------- |
770| uid | number | 是 | app唯一标识符 |
771| iface | string | 是 | 网络对应的名称 |
772
773**返回值:**
774
775| 类型                              | 说明                                  |
776| --------------------------------- | ------------------------------------- |
777| Promise\<boolean> | 以Promise形式返回设定结果。 |
778
779**错误码:**
780
781| 错误码ID | 错误信息                                      |
782| ------- | -------------------------------------------- |
783| 201     | Permission denied.                           |
784| 401     | Parameter error.                             |
785| 2100001 | Invalid parameter value.                |
786| 2100002 | Operation failed. Cannot connect to service.|
787| 2100003 | System internal error.                  |
788
789**示例:**
790
791```js
792let param = {
793    uid: Number.parseInt(this.firstParam), iface: this.secondParam
794}
795policy.isUidNetAllowed(Number.parseInt(this.firstParam), this.secondParam).then(function(error, data) {
796    console.log(JSON.stringify(error))
797    console.log(JSON.stringify(data))
798})
799
800```
801
802## policy.setDeviceIdleAllowList
803
804setDeviceIdleAllowList(uid: number, isAllowed: boolean, callback: AsyncCallback\<void>): void
805
806设置指定uid应用是否在休眠防火墙的白名单,使用callback方式作为异步方法。
807
808**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
809
810**系统能力**:SystemCapability.Communication.NetManager.Core
811
812**参数:**
813
814| 参数名   | 类型                                    | 必填 | 说明       |
815| -------- | --------------------------------------- | ---- | ---------- |
816| uid | number | 是 | app唯一标识符 |
817| isAllowed | boolean | 是 | 是否加入白名单 |
818| callback | callback: AsyncCallback\<void> | 是   | 回调函数,返回设定结果。 |
819
820**错误码:**
821
822| 错误码ID | 错误信息                                      |
823| ------- | -------------------------------------------- |
824| 201     | Permission denied.                           |
825| 401     | Parameter error.                             |
826| 2100001 | Invalid parameter value.                |
827| 2100002 | Operation failed. Cannot connect to service.|
828| 2100003 | System internal error.                  |
829
830**示例:**
831
832```js
833let param = {
834    uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
835}
836policy.setDeviceIdleAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (error, data) => {
837    this.callBack(error, data);
838});
839```
840
841## policy.setDeviceIdleAllowList
842
843setDeviceIdleAllowList(uid: number, isAllowed: boolean): Promise\<void>;
844
845设置指定uid应用是否在休眠防火墙的白名单,使用Promise方式作为异步方法。
846
847**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
848
849**系统能力**:SystemCapability.Communication.NetManager.Core
850
851**参数:**
852
853| 参数名   | 类型                                    | 必填 | 说明       |
854| -------- | --------------------------------------- | ---- | ---------- |
855| uid | number | 是 | app唯一标识符 |
856| isAllowed | boolean | 是 | 是否加入白名单 |
857
858**返回值:**
859
860| 类型                              | 说明                                  |
861| --------------------------------- | ------------------------------------- |
862| Promise\<void> | 以Promise形式返回设定结果。 |
863
864**错误码:**
865
866| 错误码ID | 错误信息                                      |
867| ------- | -------------------------------------------- |
868| 201     | Permission denied.                           |
869| 401     | Parameter error.                             |
870| 2100001 | Invalid parameter value.                |
871| 2100002 | Operation failed. Cannot connect to service.|
872| 2100003 | System internal error.                  |
873
874**示例:**
875
876```js
877let param = {
878    uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
879}
880policy.setDeviceIdleAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean))).then(function(error, data) {
881    console.log(JSON.stringify(error))
882    console.log(JSON.stringify(data))
883})
884
885```
886
887## policy.getDeviceIdleAllowList
888
889getDeviceIdleAllowList(callback: AsyncCallback\<Array\<number>>): void
890
891获取休眠模式白名单所包含的uid数组,使用callback方式作为异步方法。
892
893**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
894
895**系统能力**:SystemCapability.Communication.NetManager.Core
896
897**参数:**
898
899| 参数名   | 类型                                    | 必填 | 说明       |
900| -------- | --------------------------------------- | ---- | ---------- |
901| callback | AsyncCallback\<Array\<number>> | 是   | 回调函数,返回获取结果。 |
902
903**错误码:**
904
905| 错误码ID | 错误信息                                      |
906| ------- | -------------------------------------------- |
907| 201     | Permission denied.                           |
908| 2100002 | Operation failed. Cannot connect to service.|
909| 2100003 | System internal error.                  |
910
911**示例:**
912
913```js
914policy.getDeviceIdleAllowList((error, data) => {
915    this.callBack(error, data);
916});
917```
918
919## policy.getDeviceIdleAllowList
920
921getDeviceIdleAllowList(): Promise\<Array\<number>>;
922
923获取休眠模式白名单所包含的uid数组,使用Promise方式作为异步方法。
924
925**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
926
927**系统能力**:SystemCapability.Communication.NetManager.Core
928
929**返回值:**
930
931| 类型                              | 说明                                  |
932| --------------------------------- | ------------------------------------- |
933| Promise\<Array\<number>> | 以Promise形式返回设定结果。 |
934
935**错误码:**
936
937| 错误码ID | 错误信息                                      |
938| ------- | -------------------------------------------- |
939| 201     | Permission denied.                           |
940| 2100002 | Operation failed. Cannot connect to service.|
941| 2100003 | System internal error.                  |
942
943**示例:**
944
945```js
946policy.getDeviceIdleAllowList().then(function(error, data) {
947    console.log(JSON.stringify(error))
948    console.log(JSON.stringify(data))
949})
950```
951
952## policy.getBackgroundPolicyByUid
953
954getBackgroundPolicyByUid(uid: number, callback: AsyncCallback\<NetBackgroundPolicy>): void
955
956获取指定uid能否访问后台网络,使用callback方式作为异步方法。
957
958**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
959
960**系统能力**:SystemCapability.Communication.NetManager.Core
961
962**参数:**
963
964| 参数名   | 类型                                    | 必填 | 说明       |
965| -------- | --------------------------------------- | ---- | ---------- |
966| uid | number | 是 | app唯一标识符 |
967| callback | AsyncCallback\<[NetBackgroundPolicy](#netbackgroundpolicy)> | 是   | 回调函数,返回获取结果。 |
968
969**错误码:**
970
971| 错误码ID | 错误信息                                      |
972| ------- | -------------------------------------------- |
973| 201     | Permission denied.                           |
974| 401     | Parameter error.                             |
975| 2100001 | Invalid parameter value.                |
976| 2100002 | Operation failed. Cannot connect to service.|
977| 2100003 | System internal error.                  |
978
979**示例:**
980
981```js
982this.firstParam = uid
983policy.getBackgroundPolicyByUid(Number.parseInt(this.firstParam), (error, data) => {
984    this.callBack(error, data);
985});
986```
987
988## policy.getBackgroundPolicyByUid
989
990getBackgroundPolicyByUid(uid: number): Promise\<NetBackgroundPolicy>;
991
992获取指定uid能否访问后台网络,使用Promise方式作为异步方法。
993
994**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
995
996**系统能力**:SystemCapability.Communication.NetManager.Core
997
998**参数:**
999
1000| 参数名   | 类型                                    | 必填 | 说明       |
1001| -------- | --------------------------------------- | ---- | ---------- |
1002| uid | number | 是 | app唯一标识符 |
1003
1004**返回值:**
1005
1006| 类型                              | 说明                                  |
1007| --------------------------------- | ------------------------------------- |
1008| Promise\<[NetBackgroundPolicy](#netbackgroundpolicy)> | 以Promise形式返回设定结果。 |
1009
1010**错误码:**
1011
1012| 错误码ID | 错误信息                                      |
1013| ------- | -------------------------------------------- |
1014| 201     | Permission denied.                           |
1015| 401     | Parameter error.                             |
1016| 2100001 | Invalid parameter value.                |
1017| 2100002 | Operation failed. Cannot connect to service.|
1018| 2100003 | System internal error.                  |
1019
1020**示例:**
1021
1022```js
1023this.firstParam = uid
1024policy.getBackgroundPolicyByUid(Number.parseInt(this.firstParam)).then(function(error, data) {
1025    console.log(JSON.stringify(error))
1026    console.log(JSON.stringify(data))
1027})
1028```
1029
1030## policy.resetPolicies
1031
1032resetPolicies(iccid: string, callback: AsyncCallback\<void>): void
1033
1034重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用callback方式作为异步方法。
1035
1036**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1037
1038**系统能力**:SystemCapability.Communication.NetManager.Core
1039
1040**参数:**
1041
1042| 参数名   | 类型                                    | 必填 | 说明       |
1043| -------- | --------------------------------------- | ---- | ---------- |
1044| iccid | string | 是 | SIM卡ID|
1045| callback | AsyncCallback\<void> | 是   | 回调函数,返回重置结果。 |
1046
1047**错误码:**
1048
1049| 错误码ID | 错误信息                                      |
1050| ------- | -------------------------------------------- |
1051| 201     | Permission denied.                           |
1052| 401     | Parameter error.                             |
1053| 2100001 | Invalid parameter value.                |
1054| 2100002 | Operation failed. Cannot connect to service.|
1055| 2100003 | System internal error.                  |
1056
1057**示例:**
1058
1059```js
1060this.firstParam = iccid
1061policy.resetPolicies(this.firstParam, (error, data) => {
1062    this.callBack(error, data);
1063});
1064```
1065
1066## policy.resetPolicies
1067
1068resetPolicies(iccid: string): Promise\<void>;
1069
1070重置对应sim卡id的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用Promise方式作为异步方法。
1071
1072**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1073
1074**系统能力**:SystemCapability.Communication.NetManager.Core
1075
1076**参数:**
1077
1078| 参数名   | 类型                                    | 必填 | 说明       |
1079| -------- | --------------------------------------- | ---- | ---------- |
1080| iccid | string | 是 | SIM卡ID|
1081
1082**返回值:**
1083
1084| 类型                              | 说明                                  |
1085| --------------------------------- | ------------------------------------- |
1086| Promise\<void> | 以Promise形式返回设定结果。 |
1087
1088**错误码:**
1089
1090| 错误码ID | 错误信息                                      |
1091| ------- | -------------------------------------------- |
1092| 201     | Permission denied.                           |
1093| 401     | Parameter error.                             |
1094| 2100001 | Invalid parameter value.                |
1095| 2100002 | Operation failed. Cannot connect to service.|
1096| 2100003 | System internal error.                  |
1097
1098**示例:**
1099
1100```js
1101policy.getUidsByPolicy(Number.parseInt(this.firstParam)).then(function(error, data) {
1102
1103})
1104this.firstParam = iccid
1105policy.resetPolicies(this.firstParam).then(function(error, data) {
1106    console.log(JSON.stringify(error))
1107    console.log(JSON.stringify(data))
1108})
1109
1110```
1111
1112## policy.updateRemindPolicy
1113
1114updateRemindPolicy(netType: NetBearType, iccid: string, remindType: RemindType, callback: AsyncCallback\<void>): void
1115
1116更新提醒策略,使用callback方式作为异步方法。
1117
1118**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1119
1120**系统能力**:SystemCapability.Communication.NetManager.Core
1121
1122**参数:**
1123
1124| 参数名   | 类型                                    | 必填 | 说明       |
1125| -------- | --------------------------------------- | ---- | ---------- |
1126| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | 是 | 网络类型 |
1127| iccid | string | 是 | SIM卡ID|
1128| remindType | [RemindType](#remindtype) | 是 | 提醒类型 |
1129| callback | AsyncCallback\<void> | 是   | 回调函数,返回更新结果。 |
1130
1131**错误码:**
1132
1133| 错误码ID | 错误信息                                      |
1134| ------- | -------------------------------------------- |
1135| 201     | Permission denied.                           |
1136| 401     | Parameter error.                             |
1137| 2100001 | Invalid parameter value.                |
1138| 2100002 | Operation failed. Cannot connect to service.|
1139| 2100003 | System internal error.                  |
1140
1141**示例:**
1142
1143```js
1144let param = {
1145    netType: Number.parseInt(this.netType), iccid: this.firstParam, remindType: this.currentRemindType
1146}
1147policy.updateRemindPolicy(Number.parseInt(this.netType), this.firstParam, Number.parseInt(this.currentRemindType), (error, data) => {
1148    this.callBack(error, data);
1149});
1150```
1151
1152## policy.updateRemindPolicy
1153
1154updateRemindPolicy(netType: NetBearType, iccid: string, remindType: RemindType): Promise\<void>;
1155
1156更新提醒策略,使用Promise方式作为异步方法。
1157
1158**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1159
1160**系统能力**:SystemCapability.Communication.NetManager.Core
1161
1162**参数:**
1163
1164| 参数名   | 类型                                    | 必填 | 说明       |
1165| -------- | --------------------------------------- | ---- | ---------- |
1166| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | 是 | 网络类型 |
1167| iccid | string | 是 | SIM卡ID|
1168| remindType | [RemindType](#remindtype) | 是 | 提醒类型 |
1169
1170**返回值:**
1171
1172| 类型                              | 说明                                  |
1173| --------------------------------- | ------------------------------------- |
1174| Promise\<void> | 以Promise形式返回设定结果。 |
1175
1176**错误码:**
1177
1178| 错误码ID | 错误信息                                      |
1179| ------- | -------------------------------------------- |
1180| 201     | Permission denied.                           |
1181| 401     | Parameter error.                             |
1182| 2100001 | Invalid parameter value.                |
1183| 2100002 | Operation failed. Cannot connect to service.|
1184| 2100003 | System internal error.                  |
1185
1186**示例:**
1187
1188```js
1189let param = {
1190    netType: Number.parseInt(this.netType), iccid: this.firstParam, remindType: this.currentRemindType
1191}
1192policy.updateRemindPolicy(Number.parseInt(this.netType), this.firstParam, Number.parseInt(this.currentRemindType)).then(function(error, data) {
1193    console.log(JSON.stringify(error))
1194    console.log(JSON.stringify(data))
1195})
1196
1197```
1198
1199## policy.setPowerSaveAllowList
1200
1201setPowerSaveAllowList(uid: number, isAllowed: boolean, callback: AsyncCallback\<void>): void
1202
1203设置指定uid应用是否在省电防火墙的白名单,使用callback方式作为异步方法。
1204
1205**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1206
1207**系统能力**:SystemCapability.Communication.NetManager.Core
1208
1209**参数:**
1210
1211| 参数名   | 类型                                    | 必填 | 说明       |
1212| -------- | --------------------------------------- | ---- | ---------- |
1213| uid | number | 是 | app唯一标识符 |
1214| isAllowed | boolean | 是 | 是否加入白名单 |
1215| callback | callback: AsyncCallback\<void> | 是   | 回调函数,返回设定结果。 |
1216
1217**错误码:**
1218
1219| 错误码ID | 错误信息                                      |
1220| ------- | -------------------------------------------- |
1221| 201     | Permission denied.                           |
1222| 401     | Parameter error.                             |
1223| 2100001 | Invalid parameter value.                |
1224| 2100002 | Operation failed. Cannot connect to service.|
1225| 2100003 | System internal error.                  |
1226
1227**示例:**
1228
1229```js
1230let param = {
1231    uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
1232}
1233policy.setPowerSaveAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean)), (error, data) => {
1234    this.callBack(error, data);
1235});
1236```
1237
1238## policy.setPowerSaveAllowList
1239
1240setPowerSaveAllowList(uid: number, isAllowed: boolean): Promise\<void>;
1241
1242设置指定uid应用是否在省电防火墙的白名单,使用Promise方式作为异步方法。
1243
1244**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1245
1246**系统能力**:SystemCapability.Communication.NetManager.Core
1247
1248**参数:**
1249
1250| 参数名   | 类型                                    | 必填 | 说明       |
1251| -------- | --------------------------------------- | ---- | ---------- |
1252| uid | number | 是 | app唯一标识符 |
1253| isAllowed | boolean | 是 | 是否加入白名单 |
1254
1255**返回值:**
1256
1257| 类型                              | 说明                                  |
1258| --------------------------------- | ------------------------------------- |
1259| Promise\<void> | 以Promise形式返回设定结果。 |
1260
1261**错误码:**
1262
1263| 错误码ID | 错误信息                                      |
1264| ------- | -------------------------------------------- |
1265| 201     | Permission denied.                           |
1266| 401     | Parameter error.                             |
1267| 2100001 | Invalid parameter value.                |
1268| 2100002 | Operation failed. Cannot connect to service.|
1269| 2100003 | System internal error.                  |
1270
1271**示例:**
1272
1273```js
1274let param = {
1275    uid: Number.parseInt(this.firstParam), isAllowed: Boolean(Number.parseInt(this.isBoolean))
1276}
1277policy.setPowerSaveAllowList(Number.parseInt(this.firstParam), Boolean(Number.parseInt(this.isBoolean))).then(function(error, data) {
1278    console.log(JSON.stringify(error))
1279    console.log(JSON.stringify(data))
1280})
1281
1282```
1283
1284## policy.getPowerSaveAllowList
1285
1286getPowerSaveAllowList(callback: AsyncCallback\<Array\<number>>): void
1287
1288获取省电模式白名单所包含的uid数组,使用callback方式作为异步方法。
1289
1290**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1291
1292**系统能力**:SystemCapability.Communication.NetManager.Core
1293
1294**参数:**
1295
1296| 参数名   | 类型                                    | 必填 | 说明       |
1297| -------- | --------------------------------------- | ---- | ---------- |
1298| callback | AsyncCallback\<Array\<number>> | 是   | 回调函数,返回获取结果。 |
1299
1300**错误码:**
1301
1302| 错误码ID | 错误信息                                      |
1303| ------- | -------------------------------------------- |
1304| 201     | Permission denied.                           |
1305| 2100002 | Operation failed. Cannot connect to service.|
1306| 2100003 | System internal error.                  |
1307
1308**示例:**
1309
1310```js
1311policy.getPowerSaveAllowList((error, data) => {
1312    this.callBack(error, data);
1313});
1314```
1315
1316## policy.getPowerSaveAllowList
1317
1318getPowerSaveAllowList(): Promise\<Array\<number>>;
1319
1320获取休眠模式白名单所包含的uid数组,使用Promise方式作为异步方法。
1321
1322**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1323
1324**系统能力**:SystemCapability.Communication.NetManager.Core
1325
1326**返回值:**
1327
1328| 类型                              | 说明                                  |
1329| --------------------------------- | ------------------------------------- |
1330| Promise\<Array\<number>> | 以Promise形式返回设定结果。 |
1331
1332**错误码:**
1333
1334| 错误码ID | 错误信息                                      |
1335| ------- | -------------------------------------------- |
1336| 201     | Permission denied.                           |
1337| 2100002 | Operation failed. Cannot connect to service.|
1338| 2100003 | System internal error.                  |
1339
1340**示例:**
1341
1342```js
1343policy.getPowerSaveAllowList().then(function(error, data) {
1344    console.log(JSON.stringify(error))
1345    console.log(JSON.stringify(data))
1346})
1347```
1348
1349## policy.on
1350
1351网络策略的句柄。
1352
1353### on('netUidPolicyChange')
1354
1355on(type: "netUidPolicyChange", callback: Callback\<{ uid: number, policy: NetUidPolicy }>): void
1356
1357注册policy发生改变时的回调,使用callback方式作为异步方法。
1358
1359**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1360
1361**系统能力**:SystemCapability.Communication.NetManager.Core
1362
1363**参数:**
1364
1365| 参数名   | 类型                               | 必填 | 说明                                                         |
1366| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
1367| type | netUidPolicyChange | 是 | policy发生改变的类型 |
1368| callback | Callback\<{ uid: number, policy: [NetUidPolicy](#netuidpolicy) }> | 是   | 回调函数。注册policy发生改变时调用。 |
1369
1370**示例:**
1371
1372```js
1373policy.on('netUidPolicyChange', (data) => {
1374    this.log('on netUidPolicyChange:' + JSON.stringify(data));
1375})
1376```
1377
1378### on('netUidRuleChange')
1379
1380on(type: "netUidRuleChange", callback: Callback\<{ uid: number, rule: NetUidRule }>): void
1381
1382注册rule发生改变时的回调,使用callback方式作为异步方法。
1383
1384**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1385
1386**系统能力**:SystemCapability.Communication.NetManager.Core
1387
1388**参数:**
1389
1390| 参数名   | 类型                               | 必填 | 说明                                                         |
1391| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
1392| type | netUidRuleChange | 是 | rule发生改变的类型 |
1393| callback | Callback\<{ uid: number, rule: [NetUidRule](#netuidrule) }> | 是   | 回调函数。注册rule发生改变时的调用。 |
1394
1395**示例:**
1396
1397```js
1398policy.on('netUidRuleChange', (data) => {
1399    this.log('on netUidRuleChange:' + JSON.stringify(data));
1400})
1401```
1402
1403### on('netMeteredIfacesChange')
1404
1405on(type: "netMeteredIfacesChange", callback: Callback\<Array\<string>>): void
1406
1407注册计量iface发生改变时的回调,使用callback方式作为异步方法。
1408
1409**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1410
1411**系统能力**:SystemCapability.Communication.NetManager.Core
1412
1413**参数:**
1414
1415| 参数名   | 类型                               | 必填 | 说明                                                         |
1416| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
1417| type | netMeteredIfacesChange | 是 | 计量iface发生改变的类型 |
1418| callback | Callback\<Array\<string>> | 是   | 回调函数。注册计量iface发生改变时调用。 |
1419
1420**示例:**
1421
1422```js
1423policy.on('netMeteredIfacesChange', (data) => {
1424    this.log('on netMeteredIfacesChange:' + JSON.stringify(data));
1425})
1426```
1427
1428### on('netQuotaPolicyChange')
1429
1430on(type: "netQuotaPolicyChange", callback: Callback\<Array\<NetQuotaPolicy>>): void
1431
1432注册计量网络策略发生改变时的回调,使用callback方式作为异步方法。
1433
1434**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1435
1436**系统能力**:SystemCapability.Communication.NetManager.Core
1437
1438**参数:**
1439
1440| 参数名   | 类型                               | 必填 | 说明                                                         |
1441| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
1442| type | netQuotaPolicyChange | 是 | 计量网络策略发生改变的类型 |
1443| callback | Callback\<Array\<[NetQuotaPolicy](#netquotapolicy)>> | 是   | 回调函数。注册计量网络策略发生改变时调用。 |
1444
1445**示例:**
1446
1447```js
1448policy.on('netQuotaPolicyChange', (data) => {
1449    this.log('on netQuotaPolicyChange:' + JSON.stringify(data));
1450})
1451```
1452
1453### on('netBackgroundPolicyChange')
1454
1455on(type: "netBackgroundPolicyChange", callback: Callback\<boolean>): void
1456
1457注册后台网络策略发生改变时的回调,使用callback方式作为异步方法。
1458
1459**需要权限**:ohos.permission.CONNECTIVITY_INTERNAL
1460
1461**系统能力**:SystemCapability.Communication.NetManager.Core
1462
1463**参数:**
1464
1465| 参数名   | 类型                               | 必填 | 说明                                                         |
1466| -------- | ---------------------------------- | ---- | ------------------------------------------------------------ |
1467| type | netBackgroundPolicyChange | 是 | 后台网络策略发生改变的类型 |
1468| callback | Callback\<boolean> | 是   | 回调函数。注册后台网络策略发生改变时调用。 |
1469
1470**示例:**
1471
1472```js
1473policy.on('netBackgroundPolicyChange', (data) => {
1474    this.log('on netBackgroundPolicyChange:' + JSON.stringify(data));
1475})
1476```
1477
1478## NetBackgroundPolicy
1479
1480后台网络策略。
1481
1482**系统能力**:SystemCapability.Communication.NetManager.Core
1483
1484| 参数名                  | 值   | 说明                   |
1485| ------------------------ | ---- | ---------------------- |
1486| NET_BACKGROUND_POLICY_NONE       | 0 | 默认值。 |
1487| NET_BACKGROUND_POLICY_ENABLE     | 1 | 应用在后台可以使用计量网路。 |
1488| NET_BACKGROUND_POLICY_DISABLE    | 2 | 应用在后台不可以使用计量网路。 |
1489| NET_BACKGROUND_POLICY_ALLOW_LIST | 3 | 只有应用指定的列表在后台可以使用计量网络。 |
1490
1491## NetQuotaPolicy
1492
1493计量网络策略。
1494
1495**系统能力**:SystemCapability.Communication.NetManager.Core
1496
1497| 参数名                  | 类型                                | 说明                                                         |
1498| ----------------------- | ----------------------------------- | ------------------------------------------------------------ |
1499| netType           | [NetBearType](js-apis-net-connection.md#netbeartype) | 网络类型。 |
1500| iccid             | string                      | 计量蜂窝网络的SIM卡的标识值。以太网,wifi网络不会用到 |
1501| ident             | string                      | 计量蜂窝网络中配合iccid联合使用。以太网,wifi网络单独使用。用于标记类型。 |
1502| periodDuration    | string                      | 计量开始时间。 |
1503| warningBytes      | number                      | 发出警告的流量阈值。 |
1504| limitBytes        | number                      | 流量设置的配额。 |
1505| lastWarningRemind | string                      | 最新一次发出警告的时间。 |
1506| lastLimitRemind   | string                      | 最新一次配额耗尽的时间。 |
1507| metered           | string                      | 是否为计量网络。 |
1508| limitAction       | [LimitAction](#limitaction) | 到达流量限制后的动作。 |
1509
1510## LimitAction
1511
1512限制动作。
1513
1514**系统能力**:SystemCapability.Communication.NetManager.Core
1515
1516| 参数名                  | 值 | 说明   |
1517| ---------------------- | ----- | ------------ |
1518| LIMIT_ACTION_NONE     | -1 | 默认值。 |
1519| LIMIT_ACTION_DISABLE  | 0  | 当配额策略达到限制时,访问被禁用。 |
1520| LIMIT_ACTION_AUTO_BILL| 1  | 当配额策略达到限制时,用户将自动计费。 |
1521
1522## NetUidRule
1523
1524计量网络规则。
1525
1526**系统能力**:SystemCapability.Communication.NetManager.Core
1527
1528| 参数名                  | 值 | 说明   |
1529| ---------------------- | ----- | ------------ |
1530| NET_RULE_NONE                     | 0 | 默认规则 |
1531| NET_RULE_ALLOW_METERED_FOREGROUND | 1 | 允许前台访问计量网络 |
1532| NET_RULE_ALLOW_METERED            | 2 | 允许访问计量网络 |
1533| NET_RULE_REJECT_METERED           | 4 | 拒绝访问计量网络 |
1534| NET_RULE_ALLOW_ALL                | 32 | 允许访问所有网络 |
1535| NET_RULE_REJECT_ALL               | 64 | 拒绝访问所有网络 |
1536
1537## RemindType
1538
1539提醒类型。
1540
1541**系统能力**:SystemCapability.Communication.NetManager.Core
1542
1543| 参数名                  | 值 | 说明   |
1544| ---------------------- | - | ------- |
1545| REMIND_TYPE_WARNING    | 1 | 警告提醒 |
1546| REMIND_TYPE_LIMIT      | 2 | 限制提醒 |
1547
1548## NetUidPolicy
1549
1550应用对应的网络策略。
1551
1552**系统能力**:SystemCapability.Communication.NetManager.Core
1553
1554| 参数名                  | 值 | 说明   |
1555| ---------------------- | ----- | ------------ |
1556| NET_POLICY_NONE                       | 0 | 默认网络策略 |
1557| NET_POLICY_ALLOW_METERED_BACKGROUND   | 1 | 允许应用在后台访问计量网络 |
1558| NET_POLICY_REJECT_METERED_BACKGROUND  | 2 | 拒绝应用在后台访问计量网络 |
1559