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