1# @ohos.net.policy (网络策略管理) 2 3网络策略管理通过对用户使用数据流量进行控制管理,采用防火墙技术实现网络策略的管理。 4 5> **说明:** 6> 7> 本模块首批接口从 API version 10 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```ts 12import policy from '@ohos.net.policy'; 13``` 14 15## policy.setBackgroundAllowed<sup>10+</sup> 16 17setBackgroundAllowed(isAllowed: boolean, callback: AsyncCallback\<void>): void 18 19设置是否允许后台应用访问网络,使用 callback 方式作为异步方法。 20 21**系统接口**:此接口为系统接口。 22 23**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 24 25**系统能力**:SystemCapability.Communication.NetManager.Core 26 27**参数:** 28 29| 参数名 | 类型 | 必填 | 说明 | 30| --------- | -------------------- | ---- | ------------------------------------------------------------ | 31| isAllowed | boolean | 是 | 是否允许应用后台使用数据 | 32| callback | AsyncCallback\<void> | 是 | 回调函数,成功时,err 为 undefined,失败返回错误码错误信息。 | 33 34**错误码:** 35 36| 错误码 ID | 错误信息 | 37| --------- | -------------------------------------------- | 38| 201 | Permission denied. | 39| 202 | Non-system applications use system APIs. | 40| 401 | Parameter error. | 41| 2100001 | Invalid parameter value. | 42| 2100002 | Operation failed. Cannot connect to service. | 43| 2100003 | System internal error. | 44 45**示例:** 46 47```ts 48import { BusinessError } from '@ohos.base'; 49policy.setBackgroundAllowed(true, (error: BusinessError) => { 50 console.log(JSON.stringify(error)); 51}); 52``` 53 54## policy.setBackgroundAllowed<sup>10+</sup> 55 56setBackgroundAllowed(isAllowed: boolean): Promise\<void> 57 58设置是否允许后台应用访问网络,使用 Promise 方式作为异步方法。 59 60**系统接口**:此接口为系统接口。 61 62**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 63 64**系统能力**:SystemCapability.Communication.NetManager.Core 65 66**参数:** 67 68| 参数名 | 类型 | 必填 | 说明 | 69| --------- | ------- | ---- | ------------------------ | 70| isAllowed | boolean | 是 | 是否允许应用后台使用数据 | 71 72**错误码:** 73 74| 错误码 ID | 错误信息 | 75| --------- | -------------------------------------------- | 76| 201 | Permission denied. | 77| 202 | Non-system applications use system APIs. | 78| 401 | Parameter error. | 79| 2100001 | Invalid parameter value. | 80| 2100002 | Operation failed. Cannot connect to service. | 81| 2100003 | System internal error. | 82 83**返回值:** 84 85| 类型 | 说明 | 86| -------------- | ----------------------------------------------------------------- | 87| Promise\<void> | 以 Promise 形式返回设定结果,成功返回空,失败返回错误码错误信息。 | 88 89**示例:** 90 91```ts 92import { BusinessError } from '@ohos.base'; 93policy.setBackgroundAllowed(true).then(() => { 94 console.log("setBackgroundAllowed success"); 95}).catch((error: BusinessError) => { 96 console.log(JSON.stringify(error)); 97}); 98``` 99 100## policy.isBackgroundAllowed<sup>10+</sup> 101 102isBackgroundAllowed(callback: AsyncCallback\<boolean>): void 103 104获取当前应用是否允许后台访问网络,使用 callback 方式作为异步方法。 105 106**系统接口**:此接口为系统接口。 107 108**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 109 110**系统能力**:SystemCapability.Communication.NetManager.Core 111 112**参数:** 113 114| 参数名 | 类型 | 必填 | 说明 | 115| -------- | ----------------------- | ---- | ---------------------------------------------------------------- | 116| callback | AsyncCallback\<boolean> | 是 | 回调函数,返回 true 代表后台策略为允许。失败返回错误码错误信息。 | 117 118**错误码:** 119 120| 错误码 ID | 错误信息 | 121| --------- | -------------------------------------------- | 122| 201 | Permission denied. | 123| 202 | Non-system applications use system APIs. | 124| 401 | Parameter error. | 125| 2100001 | Invalid parameter value. | 126| 2100002 | Operation failed. Cannot connect to service. | 127| 2100003 | System internal error. | 128 129**示例:** 130 131```ts 132import { BusinessError } from '@ohos.base'; 133policy.isBackgroundAllowed((error: BusinessError, data: boolean) => { 134 console.log(JSON.stringify(error)); 135 console.log(JSON.stringify(data)); 136}); 137``` 138 139## policy.isBackgroundAllowed<sup>10+</sup> 140 141isBackgroundAllowed(): Promise\<boolean>; 142 143获取当前应用是否允许后台访问网络,使用 Promise 方式作为异步方法。 144 145**系统接口**:此接口为系统接口。 146 147**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 148 149**系统能力**:SystemCapability.Communication.NetManager.Core 150 151**返回值:** 152 153| 类型 | 说明 | 154| ----------------- | ------------------------------------------------------------------------------------ | 155| Promise\<boolean> | 以 Promise 形式返回设定结果。 返回 true 代表后台策略为允许。失败返回错误码错误信息。 | 156 157**错误码:** 158 159| 错误码 ID | 错误信息 | 160| --------- | -------------------------------------------- | 161| 201 | Permission denied. | 162| 202 | Non-system applications use system APIs. | 163| 401 | Parameter error. | 164| 2100001 | Invalid parameter value. | 165| 2100002 | Operation failed. Cannot connect to service. | 166| 2100003 | System internal error. | 167 168**示例:** 169 170```ts 171import { BusinessError } from '@ohos.base'; 172policy 173 .isBackgroundAllowed() 174 .then((data: boolean) => { 175 console.log(JSON.stringify(data)); 176 }) 177 .catch((error: BusinessError) => { 178 console.log(JSON.stringify(error)); 179 }); 180``` 181 182## policy.setPolicyByUid<sup>10+</sup> 183 184setPolicyByUid(uid: number, policy: NetUidPolicy, callback: AsyncCallback\<void>): void 185 186设置对应 uid 应用是否能够访问计量网络的策略,使用 callback 方式作为异步方法。 187 188**系统接口**:此接口为系统接口。 189 190**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 191 192**系统能力**:SystemCapability.Communication.NetManager.Core 193 194**参数:** 195 196| 参数名 | 类型 | 必填 | 说明 | 197| -------- | ------------------------------- | ---- | ---------------------------------------------- | 198| uid | number | 是 | app 唯一标识符 | 199| policy | [NetUidPolicy](#netuidpolicy10) | 是 | 应用对应的策略 | 200| callback | AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 201 202**错误码:** 203 204| 错误码 ID | 错误信息 | 205| --------- | -------------------------------------------- | 206| 201 | Permission denied. | 207| 202 | Non-system applications use system APIs. | 208| 401 | Parameter error. | 209| 2100001 | Invalid parameter value. | 210| 2100002 | Operation failed. Cannot connect to service. | 211| 2100003 | System internal error. | 212 213**示例:** 214 215```ts 216import { BusinessError } from '@ohos.base'; 217policy.setPolicyByUid(11111, policy.NetUidPolicy.NET_POLICY_NONE, (error: BusinessError) => { 218 console.log(JSON.stringify(error)); 219}); 220``` 221 222## policy.setPolicyByUid<sup>10+</sup> 223 224setPolicyByUid(uid: number, policy: NetUidPolicy): Promise\<void>; 225 226设置对应 uid 应用是否能够访问计量网络的策略,使用 Promise 方式作为异步方法。 227 228**系统接口**:此接口为系统接口。 229 230**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 231 232**系统能力**:SystemCapability.Communication.NetManager.Core 233 234**参数:** 235 236| 参数名 | 类型 | 必填 | 说明 | 237| ------ | ------------------------------- | ---- | -------------- | 238| uid | number | 是 | app 唯一标识符 | 239| policy | [NetUidPolicy](#netuidpolicy10) | 是 | 应用对应的策略 | 240 241**返回值:** 242 243| 类型 | 说明 | 244| -------------- | ----------------------------------------------------------------- | 245| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 246 247**错误码:** 248 249| 错误码 ID | 错误信息 | 250| --------- | -------------------------------------------- | 251| 201 | Permission denied. | 252| 202 | Non-system applications use system APIs. | 253| 401 | Parameter error. | 254| 2100001 | Invalid parameter value. | 255| 2100002 | Operation failed. Cannot connect to service. | 256| 2100003 | System internal error. | 257 258**示例:** 259 260```ts 261import { BusinessError } from '@ohos.base'; 262policy 263 .setPolicyByUid(11111, policy.NetUidPolicy.NET_POLICY_NONE) 264 .then(() => { 265 console.log('setPolicyByUid success'); 266 }) 267 .catch((error: BusinessError) => { 268 console.log(JSON.stringify(error)); 269 }); 270``` 271 272## policy.getPolicyByUid<sup>10+</sup> 273 274getPolicyByUid(uid: number, callback: AsyncCallback\<NetUidPolicy>): void 275 276通过应用 uid 获取对应访问网络策略,使用 callback 方式作为异步方法。 277 278**系统接口**:此接口为系统接口。 279 280**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 281 282**系统能力**:SystemCapability.Communication.NetManager.Core 283 284**参数:** 285 286| 参数名 | 类型 | 必填 | 说明 | 287| -------- | ----------------------------------------------- | ---- | -------------------------------------------------------- | 288| uid | number | 是 | app 唯一标识符 | 289| callback | AsyncCallback\<[NetUidPolicy](#netuidpolicy10)> | 是 | 回调函数,成功返回获取策略结果,失败返回错误码错误信息。 | 290 291**错误码:** 292 293| 错误码 ID | 错误信息 | 294| --------- | -------------------------------------------- | 295| 201 | Permission denied. | 296| 202 | Non-system applications use system APIs. | 297| 401 | Parameter error. | 298| 2100001 | Invalid parameter value. | 299| 2100002 | Operation failed. Cannot connect to service. | 300| 2100003 | System internal error. | 301 302**示例:** 303 304```ts 305import { BusinessError } from '@ohos.base'; 306policy.getPolicyByUid(11111, (error: BusinessError, data: object) => { 307 console.log(JSON.stringify(error)); 308 console.log(JSON.stringify(data)); 309}); 310``` 311 312## policy.getPolicyByUid<sup>10+</sup> 313 314getPolicyByUid(uid: number): Promise\<NetUidPolicy>; 315 316通过应用 uid 获取对应访问网络策略,使用 Promise 方式作为异步方法。 317 318**系统接口**:此接口为系统接口。 319 320**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 321 322**系统能力**:SystemCapability.Communication.NetManager.Core 323 324**参数:** 325 326| 参数名 | 类型 | 必填 | 说明 | 327| ------ | ------ | ---- | -------------- | 328| uid | number | 是 | app 唯一标识符 | 329 330**返回值:** 331 332| 类型 | 说明 | 333| ----------------------------------------- | --------------------------------------------------------- | 334| Promise\<[NetUidPolicy](#netuidpolicy10)> | 以 Promise 形式返回获取策略结果。失败返回错误码错误信息。 | 335 336**错误码:** 337 338| 错误码 ID | 错误信息 | 339| --------- | -------------------------------------------- | 340| 201 | Permission denied. | 341| 202 | Non-system applications use system APIs. | 342| 401 | Parameter error. | 343| 2100001 | Invalid parameter value. | 344| 2100002 | Operation failed. Cannot connect to service. | 345| 2100003 | System internal error. | 346 347**示例:** 348 349```ts 350import { BusinessError } from '@ohos.base'; 351policy 352 .getPolicyByUid(11111) 353 .then((data: policy.NetUidPolicy) => { 354 console.log(JSON.stringify(data)); 355 }) 356 .catch((error: BusinessError) => { 357 console.log(JSON.stringify(error)); 358 }); 359``` 360 361## policy.getUidsByPolicy<sup>10+</sup> 362 363getUidsByPolicy(policy: NetUidPolicy, callback: AsyncCallback\<Array\<number>>): void 364 365通过策略获取跟策略匹配的所有 uid,使用 callback 方式作为异步方法。 366 367**系统接口**:此接口为系统接口。 368 369**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 370 371**系统能力**:SystemCapability.Communication.NetManager.Core 372 373**参数:** 374 375| 参数名 | 类型 | 必填 | 说明 | 376| -------- | ------------------------------- | ---- | ----------------------------------------------------------- | 377| policy | [NetUidPolicy](#netuidpolicy10) | 是 | 应用对应的计量网络下的策略 | 378| callback | AsyncCallback\<Array\<number>> | 是 | 回调函数,成功返回应用的 uid 数组,失败返回错误码错误信息。 | 379 380**错误码:** 381 382| 错误码 ID | 错误信息 | 383| --------- | -------------------------------------------- | 384| 201 | Permission denied. | 385| 202 | Non-system applications use system APIs. | 386| 401 | Parameter error. | 387| 2100001 | Invalid parameter value. | 388| 2100002 | Operation failed. Cannot connect to service. | 389| 2100003 | System internal error. | 390 391**示例:** 392 393```ts 394import { BusinessError } from '@ohos.base'; 395policy.getUidsByPolicy(11111, (error: BusinessError, data: number[]) => { 396 console.log(JSON.stringify(error)); 397 console.log(JSON.stringify(data)); 398}); 399``` 400 401## policy.getUidsByPolicy<sup>10+</sup> 402 403getUidsByPolicy(policy: NetUidPolicy): Promise\<Array\<number>>; 404 405通过策略获取跟策略匹配的所有 uid,使用 Promise 方式作为异步方法。 406 407**系统接口**:此接口为系统接口。 408 409**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 410 411**系统能力**:SystemCapability.Communication.NetManager.Core 412 413**参数:** 414 415| 参数名 | 类型 | 必填 | 说明 | 416| ------ | ------------------------------- | ---- | -------------------------- | 417| policy | [NetUidPolicy](#netuidpolicy10) | 是 | app 对应的计量网络下的策略 | 418 419**返回值:** 420 421| 类型 | 说明 | 422| ------------------------ | ------------------------------------------------------------ | 423| Promise\<Array\<number>> | 以 Promise 形式返回应用的 uid 数组,失败返回错误码错误信息。 | 424 425**错误码:** 426 427| 错误码 ID | 错误信息 | 428| --------- | -------------------------------------------- | 429| 201 | Permission denied. | 430| 202 | Non-system applications use system APIs. | 431| 401 | Parameter error. | 432| 2100001 | Invalid parameter value. | 433| 2100002 | Operation failed. Cannot connect to service. | 434| 2100003 | System internal error. | 435 436**示例:** 437 438```ts 439import { BusinessError } from '@ohos.base'; 440policy 441 .getUidsByPolicy(11111) 442 .then((data: object) => { 443 console.log(JSON.stringify(data)); 444 }) 445 .catch((error: BusinessError) => { 446 console.log(JSON.stringify(error)); 447 }); 448``` 449 450## policy.getNetQuotaPolicies<sup>10+</sup> 451 452getNetQuotaPolicies(callback: AsyncCallback\<Array\<NetQuotaPolicy>>): void 453 454获取计量网络策略,使用 callback 方式作为异步方法。 455 456**系统接口**:此接口为系统接口。 457 458**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 459 460**系统能力**:SystemCapability.Communication.NetManager.Core 461 462**参数:** 463 464| 参数名 | 类型 | 必填 | 说明 | 465| -------- | ----------------------------------------------------------- | ---- | ------------------------ | 466| callback | AsyncCallback\<Array\<[NetQuotaPolicy](#netquotapolicy10)>> | 是 | 回调函数,返回获取结果。 | 467 468**错误码:** 469 470| 错误码 ID | 错误信息 | 471| --------- | -------------------------------------------- | 472| 201 | Permission denied. | 473| 202 | Non-system applications use system APIs. | 474| 401 | Parameter error. | 475| 2100001 | Invalid parameter value. | 476| 2100002 | Operation failed. Cannot connect to service. | 477| 2100003 | System internal error. | 478 479**示例:** 480 481```ts 482import { BusinessError } from '@ohos.base'; 483policy.getNetQuotaPolicies((error: BusinessError, data: policy.NetQuotaPolicy[]) => { 484 console.log(JSON.stringify(error)); 485 console.log(JSON.stringify(data)); 486}); 487``` 488 489## policy.getNetQuotaPolicies<sup>10+</sup> 490 491getNetQuotaPolicies(): Promise\<Array\<NetQuotaPolicy>>; 492 493获取计量网络策略,使用 Promise 方式作为异步方法。 494 495**系统接口**:此接口为系统接口。 496 497**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 498 499**系统能力**:SystemCapability.Communication.NetManager.Core 500 501**返回值:** 502 503| 类型 | 说明 | 504| ----------------------------------------------------- | ----------------------------- | 505| Promise\<Array\<[NetQuotaPolicy](#netquotapolicy10)>> | 以 Promise 形式返回设定结果。 | 506 507**错误码:** 508 509| 错误码 ID | 错误信息 | 510| --------- | -------------------------------------------- | 511| 201 | Permission denied. | 512| 202 | Non-system applications use system APIs. | 513| 401 | Parameter error. | 514| 2100002 | Operation failed. Cannot connect to service. | 515| 2100003 | System internal error. | 516 517**示例:** 518 519```ts 520import { BusinessError } from '@ohos.base'; 521policy 522 .getNetQuotaPolicies() 523 .then((data: policy.NetQuotaPolicy[]) => { 524 console.log(JSON.stringify(data)); 525 }) 526 .catch((error: BusinessError) => { 527 console.log(JSON.stringify(error)); 528 }); 529``` 530 531## policy.setNetQuotaPolicies<sup>10+</sup> 532 533setNetQuotaPolicies(quotaPolicies: Array\<NetQuotaPolicy>, callback: AsyncCallback\<void>): void 534 535设置计量网络策略,使用 callback 方式作为异步方法。 536 537**系统接口**:此接口为系统接口。 538 539**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 540 541**系统能力**:SystemCapability.Communication.NetManager.Core 542 543**参数:** 544 545| 参数名 | 类型 | 必填 | 说明 | 546| ------------- | ------------------------------------------- | ---- | ---------------------------------------------- | 547| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy10)> | 是 | 计量网络策略 | 548| callback | AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 549 550**错误码:** 551 552| 错误码 ID | 错误信息 | 553| --------- | -------------------------------------------- | 554| 201 | Permission denied. | 555| 202 | Non-system applications use system APIs. | 556| 401 | Parameter error. | 557| 2100001 | Invalid parameter value. | 558| 2100002 | Operation failed. Cannot connect to service. | 559| 2100003 | System internal error. | 560 561**示例:** 562 563```ts 564import connection from '@ohos.net.connection'; 565import { BusinessError } from '@ohos.base'; 566 567let netQuotaPolicyList: Array<policy.NetQuotaPolicy>|null = null; 568class Netquotapolicy { 569 networkMatchRule: NetworkMatchRule = new NetworkMatchRule(); 570 quotaPolicy: QuotaPolicy = new QuotaPolicy(); 571} 572class NetworkMatchRule { 573 netType: policy.NetBearType = connection.NetBearType.BEARER_CELLULAR; 574 identity: string = ''; 575 simId: string = '1'; 576} 577class QuotaPolicy { 578 periodDuration: string = 'M1'; 579 warningBytes: number = 40000; 580 limitBytes: number = 50000; 581 metered: boolean = true; 582 limitAction: policy.LimitAction.LIMIT_ACTION_NONE; 583} 584 585let netquotapolicy = new Netquotapolicy(); 586 587netQuotaPolicyList.push(netquotapolicy); 588 589policy.setNetQuotaPolicies(netQuotaPolicyList, (error: BusinessError) => { 590 console.log(JSON.stringify(error)); 591}); 592``` 593 594## policy.setNetQuotaPolicies<sup>10+</sup> 595 596setNetQuotaPolicies(quotaPolicies: Array\<NetQuotaPolicy>): Promise\<void>; 597 598设置计量网络策略,使用 Promise 方式作为异步方法。 599 600**系统接口**:此接口为系统接口。 601 602**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 603 604**系统能力**:SystemCapability.Communication.NetManager.Core 605 606**参数:** 607 608| 参数名 | 类型 | 必填 | 说明 | 609| ------------- | ------------------------------------------- | ---- | ------------ | 610| quotaPolicies | Array\<[NetQuotaPolicy](#netquotapolicy10)> | 是 | 计量网络策略 | 611 612**错误码:** 613 614| 错误码 ID | 错误信息 | 615| --------- | -------------------------------------------- | 616| 201 | Permission denied. | 617| 202 | Non-system applications use system APIs. | 618| 401 | Parameter error. | 619| 2100001 | Invalid parameter value. | 620| 2100002 | Operation failed. Cannot connect to service. | 621| 2100003 | System internal error. | 622 623**返回值:** 624 625| 类型 | 说明 | 626| -------------- | ----------------------------------------------------------------- | 627| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 628 629**示例:** 630 631```ts 632import connection from '@ohos.net.connection'; 633import { BusinessError } from '@ohos.base'; 634 635let netQuotaPolicyList: Array<policy.NetQuotaPolicy>|null = null; 636class Netquotapolicy { 637 networkMatchRule: NetworkMatchRule = new NetworkMatchRule(); 638 quotaPolicy: QuotaPolicy = new QuotaPolicy(); 639} 640class NetworkMatchRule { 641 netType: policy.NetBearType = connection.NetBearType.BEARER_CELLULAR; 642 identity: string = ''; 643 simId: string = '1'; 644} 645class QuotaPolicy { 646 periodDuration: string = 'M1'; 647 warningBytes: number = 40000; 648 limitBytes: number = 50000; 649 metered: boolean = true; 650 limitAction: policy.LimitAction.LIMIT_ACTION_NONE; 651} 652 653let netquotapolicy = new Netquotapolicy(); 654 655netQuotaPolicyList.push(netquotapolicy); 656 657policy 658 .setNetQuotaPolicies(netQuotaPolicyList) 659 .then(() => { 660 console.log('setNetQuotaPolicies success'); 661 }) 662 .catch((error: BusinessError) => { 663 console.log(JSON.stringify(error)); 664 }); 665``` 666 667## policy.isUidNetAllowed<sup>10+</sup> 668 669isUidNetAllowed(uid: number, isMetered: boolean, callback: AsyncCallback\<boolean>): void 670 671判断对应 uid 能否访问计量或非计量网络,使用 callback 方式作为异步方法。 672 673**系统接口**:此接口为系统接口。 674 675**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 676 677**系统能力**:SystemCapability.Communication.NetManager.Core 678 679**参数:** 680 681| 参数名 | 类型 | 必填 | 说明 | 682| --------- | ----------------------- | ---- | --------------------------------------------------------- | 683| uid | number | 是 | app 唯一标识符 | 684| isMetered | boolean | 是 | 是否为计量网络 | 685| callback | AsyncCallback\<boolean> | 是 | 回调函数,返回 true 表示这个 uid 可以访问对应的计量网络。 | 686 687**错误码:** 688 689| 错误码 ID | 错误信息 | 690| --------- | -------------------------------------------- | 691| 201 | Permission denied. | 692| 202 | Non-system applications use system APIs. | 693| 401 | Parameter error. | 694| 2100001 | Invalid parameter value. | 695| 2100002 | Operation failed. Cannot connect to service. | 696| 2100003 | System internal error. | 697 698**示例:** 699 700```ts 701import { BusinessError } from '@ohos.base'; 702policy.isUidNetAllowed(11111, true, (error: BusinessError, data: boolean) => { 703 console.log(JSON.stringify(error)); 704 console.log(JSON.stringify(data)); 705}); 706``` 707 708## policy.isUidNetAllowed<sup>10+</sup> 709 710isUidNetAllowed(uid: number, isMetered: boolean): Promise\<boolean>; 711 712判断对应 uid 能否访问计量或非计量网络,使用 Promise 方式作为异步方法。 713 714**系统接口**:此接口为系统接口。 715 716**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 717 718**系统能力**:SystemCapability.Communication.NetManager.Core 719 720**参数:** 721 722| 参数名 | 类型 | 必填 | 说明 | 723| --------- | ------- | ---- | -------------- | 724| uid | number | 是 | app 唯一标识符 | 725| isMetered | boolean | 是 | 是否为计量网络 | 726 727**返回值:** 728 729| 类型 | 说明 | 730| ----------------- | ----------------------------- | 731| Promise\<boolean> | 以 Promise 形式返回设定结果。 | 732 733**错误码:** 734 735| 错误码 ID | 错误信息 | 736| --------- | -------------------------------------------- | 737| 201 | Permission denied. | 738| 202 | Non-system applications use system APIs. | 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```ts 747import { BusinessError } from '@ohos.base'; 748policy 749 .isUidNetAllowed(11111, true) 750 .then((data: boolean) => { 751 console.log(JSON.stringify(data)); 752 }) 753 .catch((error: BusinessError) => { 754 console.log(JSON.stringify(error)); 755 }); 756``` 757 758## policy.isUidNetAllowed<sup>10+</sup> 759 760isUidNetAllowed(uid: number, iface: string, callback: AsyncCallback\<boolean>): void 761 762获取对应 uid 能否访问指定的 iface 的网络,使用 callback 方式作为异步方法。 763 764**系统接口**:此接口为系统接口。 765 766**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 767 768**系统能力**:SystemCapability.Communication.NetManager.Core 769 770**参数:** 771 772| 参数名 | 类型 | 必填 | 说明 | 773| -------- | ----------------------- | ---- | ------------------------------------------------------------ | 774| uid | number | 是 | app 唯一标识符 | 775| iface | string | 是 | 网络对应的名称 | 776| callback | AsyncCallback\<boolean> | 是 | 回调函数,返回 true 表示这个 uid 可以访问对应 iface 的网络。 | 777 778**错误码:** 779 780| 错误码 ID | 错误信息 | 781| --------- | -------------------------------------------- | 782| 201 | Permission denied. | 783| 202 | Non-system applications use system APIs. | 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```ts 792import { BusinessError } from '@ohos.base'; 793policy.isUidNetAllowed(11111, 'wlan0', (error: BusinessError, data: boolean) => { 794 console.log(JSON.stringify(error)); 795 console.log(JSON.stringify(data)); 796}); 797``` 798 799## policy.isUidNetAllowed<sup>10+</sup> 800 801isUidNetAllowed(uid: number, iface: string): Promise\<boolean>; 802 803获取对应 uid 能否访问指定的 iface 的网络,使用 Promise 方式作为异步方法。 804 805**系统接口**:此接口为系统接口。 806 807**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 808 809**系统能力**:SystemCapability.Communication.NetManager.Core 810 811**参数:** 812 813| 参数名 | 类型 | 必填 | 说明 | 814| ------ | ------ | ---- | -------------- | 815| uid | number | 是 | app 唯一标识符 | 816| iface | string | 是 | 网络对应的名称 | 817 818**返回值:** 819 820| 类型 | 说明 | 821| ----------------- | ------------------------------------------------------- | 822| Promise\<boolean> | 以 Promise 形式返回当前 uid 能否访问对应 iface 的网络。 | 823 824**错误码:** 825 826| 错误码 ID | 错误信息 | 827| --------- | -------------------------------------------- | 828| 201 | Permission denied. | 829| 202 | Non-system applications use system APIs. | 830| 401 | Parameter error. | 831| 2100001 | Invalid parameter value. | 832| 2100002 | Operation failed. Cannot connect to service. | 833| 2100003 | System internal error. | 834 835**示例:** 836 837```ts 838import { BusinessError } from '@ohos.base'; 839policy 840 .isUidNetAllowed(11111, 'wlan0') 841 .then((data: boolean) => { 842 console.log(JSON.stringify(data)); 843 }) 844 .catch((error: BusinessError) => { 845 console.log(JSON.stringify(error)); 846 }); 847``` 848 849## policy.setDeviceIdleTrustlist<sup>10+</sup> 850 851setDeviceIdleTrustlist(uids: Array\<number>, isAllowed: boolean, callback: AsyncCallback\<void>): void 852 853设置多个 uid 是否在休眠防火墙的白名单,使用 callback 方式作为异步方法。 854 855**系统接口**:此接口为系统接口。 856 857**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 858 859**系统能力**:SystemCapability.Communication.NetManager.Core 860 861**参数:** 862 863| 参数名 | 类型 | 必填 | 说明 | 864| --------- | ------------------------------ | ---- | ---------------------------------------------- | 865| uids | Array\<number> | 是 | app 唯一标识符 | 866| isAllowed | boolean | 是 | 是否加入白名单 | 867| callback | callback: AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 868 869**错误码:** 870 871| 错误码 ID | 错误信息 | 872| --------- | -------------------------------------------- | 873| 201 | Permission denied. | 874| 202 | Non-system applications use system APIs. | 875| 401 | Parameter error. | 876| 2100001 | Invalid parameter value. | 877| 2100002 | Operation failed. Cannot connect to service. | 878| 2100003 | System internal error. | 879 880**示例:** 881 882```ts 883import { BusinessError } from '@ohos.base'; 884policy.setDeviceIdleTrustlist([11111, 22222], true, (error: BusinessError) => { 885 console.log(JSON.stringify(error)); 886}); 887``` 888 889## policy.setDeviceIdleTrustlist<sup>10+</sup> 890 891setDeviceIdleTrustlist(uids: Array\<number>, isAllowed: boolean): Promise\<void>; 892 893设置多个 uid 是否在休眠防火墙的白名单,使用 Promise 方式作为异步方法。 894 895**系统接口**:此接口为系统接口。 896 897**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 898 899**系统能力**:SystemCapability.Communication.NetManager.Core 900 901**参数:** 902 903| 参数名 | 类型 | 必填 | 说明 | 904| --------- | -------------- | ---- | -------------- | 905| uids | Array\<number> | 是 | app 唯一标识符 | 906| isAllowed | boolean | 是 | 是否加入白名单 | 907 908**返回值:** 909 910| 类型 | 说明 | 911| -------------- | ----------------------------------------------------------------- | 912| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 913 914**错误码:** 915 916| 错误码 ID | 错误信息 | 917| --------- | -------------------------------------------- | 918| 201 | Permission denied. | 919| 202 | Non-system applications use system APIs. | 920| 401 | Parameter error. | 921| 2100001 | Invalid parameter value. | 922| 2100002 | Operation failed. Cannot connect to service. | 923| 2100003 | System internal error. | 924 925**示例:** 926 927```ts 928import { BusinessError } from '@ohos.base'; 929policy 930 .setDeviceIdleTrustlist([11111, 22222], true) 931 .then(() => { 932 console.log('setDeviceIdleTrustlist success'); 933 }) 934 .catch((error: BusinessError) => { 935 console.log(JSON.stringify(error)); 936 }); 937``` 938 939## policy.getDeviceIdleTrustlist<sup>10+</sup> 940 941getDeviceIdleTrustlist(callback: AsyncCallback\<Array\<number>>): void 942 943获取休眠模式白名单所包含的 uid,使用 callback 方式作为异步方法。 944 945**系统接口**:此接口为系统接口。 946 947**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 948 949**系统能力**:SystemCapability.Communication.NetManager.Core 950 951**参数:** 952 953| 参数名 | 类型 | 必填 | 说明 | 954| -------- | ------------------------------ | ---- | ------------------------ | 955| callback | AsyncCallback\<Array\<number>> | 是 | 回调函数,返回获取结果。 | 956 957**错误码:** 958 959| 错误码 ID | 错误信息 | 960| --------- | -------------------------------------------- | 961| 201 | Permission denied. | 962| 202 | Non-system applications use system APIs. | 963| 401 | Parameter error. | 964| 2100001 | Invalid parameter value. | 965| 2100002 | Operation failed. Cannot connect to service. | 966| 2100003 | System internal error. | 967 968**示例:** 969 970```ts 971import { BusinessError } from '@ohos.base'; 972policy.getDeviceIdleTrustlist((error: BusinessError, data: number[]) => { 973 console.log(JSON.stringify(error)); 974 console.log(JSON.stringify(data)); 975}); 976``` 977 978## policy.getDeviceIdleTrustlist<sup>10+</sup> 979 980getDeviceIdleTrustlist(): Promise\<Array\<number>>; 981 982获取休眠模式白名单所包含的 uid,使用 Promise 方式作为异步方法。 983 984**系统接口**:此接口为系统接口。 985 986**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 987 988**系统能力**:SystemCapability.Communication.NetManager.Core 989 990**返回值:** 991 992| 类型 | 说明 | 993| ------------------------ | ----------------------------- | 994| Promise\<Array\<number>> | 以 Promise 形式返回设定结果。 | 995 996**错误码:** 997 998| 错误码 ID | 错误信息 | 999| --------- | -------------------------------------------- | 1000| 201 | Permission denied. | 1001| 202 | Non-system applications use system APIs. | 1002| 401 | Parameter error. | 1003| 2100002 | Operation failed. Cannot connect to service. | 1004| 2100003 | System internal error. | 1005 1006**示例:** 1007 1008```ts 1009import { BusinessError } from '@ohos.base'; 1010policy 1011 .getDeviceIdleTrustlist() 1012 .then((data: number[]) => { 1013 console.log(JSON.stringify(data)); 1014 }) 1015 .catch((error: BusinessError) => { 1016 console.log(JSON.stringify(error)); 1017 }); 1018``` 1019 1020## policy.getBackgroundPolicyByUid<sup>10+</sup> 1021 1022getBackgroundPolicyByUid(uid: number, callback: AsyncCallback\<NetBackgroundPolicy>): void 1023 1024获取指定 uid 是否能访问后台网络,使用 callback 方式作为异步方法。 1025 1026**系统接口**:此接口为系统接口。 1027 1028**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1029 1030**系统能力**:SystemCapability.Communication.NetManager.Core 1031 1032**参数:** 1033 1034| 参数名 | 类型 | 必填 | 说明 | 1035| -------- | ------------------------------------------------------------- | ---- | ------------------------ | 1036| uid | number | 是 | app 唯一标识符 | 1037| callback | AsyncCallback\<[NetBackgroundPolicy](#netbackgroundpolicy10)> | 是 | 回调函数,返回获取结果。 | 1038 1039**错误码:** 1040 1041| 错误码 ID | 错误信息 | 1042| --------- | -------------------------------------------- | 1043| 201 | Permission denied. | 1044| 202 | Non-system applications use system APIs. | 1045| 401 | Parameter error. | 1046| 2100001 | Invalid parameter value. | 1047| 2100002 | Operation failed. Cannot connect to service. | 1048| 2100003 | System internal error. | 1049 1050**示例:** 1051 1052```ts 1053import { BusinessError } from '@ohos.base'; 1054policy.getBackgroundPolicyByUid(11111, (error: BusinessError, data: number) => { 1055 console.log(JSON.stringify(error)); 1056 console.log(JSON.stringify(data)); 1057}); 1058``` 1059 1060## policy.getBackgroundPolicyByUid<sup>10+</sup> 1061 1062getBackgroundPolicyByUid(uid: number): Promise\<NetBackgroundPolicy>; 1063 1064获取指定 uid 能否访问后台网络,使用 Promise 方式作为异步方法。 1065 1066**系统接口**:此接口为系统接口。 1067 1068**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1069 1070**系统能力**:SystemCapability.Communication.NetManager.Core 1071 1072**参数:** 1073 1074| 参数名 | 类型 | 必填 | 说明 | 1075| ------ | ------ | ---- | -------------- | 1076| uid | number | 是 | app 唯一标识符 | 1077 1078**返回值:** 1079 1080| 类型 | 说明 | 1081| ------------------------------------------------------- | ----------------------------- | 1082| Promise\<[NetBackgroundPolicy](#netbackgroundpolicy10)> | 以 Promise 形式返回设定结果。 | 1083 1084**错误码:** 1085 1086| 错误码 ID | 错误信息 | 1087| --------- | -------------------------------------------- | 1088| 201 | Permission denied. | 1089| 202 | Non-system applications use system APIs. | 1090| 401 | Parameter error. | 1091| 2100001 | Invalid parameter value. | 1092| 2100002 | Operation failed. Cannot connect to service. | 1093| 2100003 | System internal error. | 1094 1095**示例:** 1096 1097```ts 1098import { BusinessError } from '@ohos.base'; 1099policy 1100 .getBackgroundPolicyByUid(11111) 1101 .then((data: number) => { 1102 console.log(JSON.stringify(data)); 1103 }) 1104 .catch((error: BusinessError) => { 1105 console.log(JSON.stringify(error)); 1106 }); 1107``` 1108 1109## policy.resetPolicies<sup>10+</sup> 1110 1111resetPolicies(simId: string, callback: AsyncCallback\<void>): void 1112 1113重置对应 sim 卡 id 的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用 callback 方式作为异步方法。 1114 1115**系统接口**:此接口为系统接口。 1116 1117**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1118 1119**系统能力**:SystemCapability.Communication.NetManager.Core 1120 1121**参数:** 1122 1123| 参数名 | 类型 | 必填 | 说明 | 1124| -------- | -------------------- | ---- | ---------------------------------------------- | 1125| simId | string | 是 | SIM 卡 ID | 1126| callback | AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 1127 1128**错误码:** 1129 1130| 错误码 ID | 错误信息 | 1131| --------- | -------------------------------------------- | 1132| 201 | Permission denied. | 1133| 202 | Non-system applications use system APIs. | 1134| 401 | Parameter error. | 1135| 2100001 | Invalid parameter value. | 1136| 2100002 | Operation failed. Cannot connect to service. | 1137| 2100003 | System internal error. | 1138 1139**示例:** 1140 1141```ts 1142import { BusinessError } from '@ohos.base'; 1143policy.resetPolicies('1', (error: BusinessError) => { 1144 console.log(JSON.stringify(error)); 1145}); 1146``` 1147 1148## policy.resetPolicies<sup>10+</sup> 1149 1150resetPolicies(simId: string): Promise\<void>; 1151 1152重置对应 sim 卡 id 的蜂窝网络、后台网络策略、防火墙策略、应用对应的策略,使用 Promise 方式作为异步方法。 1153 1154**系统接口**:此接口为系统接口。 1155 1156**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1157 1158**系统能力**:SystemCapability.Communication.NetManager.Core 1159 1160**参数:** 1161 1162| 参数名 | 类型 | 必填 | 说明 | 1163| ------ | ------ | ---- | --------- | 1164| simId | string | 是 | SIM 卡 ID | 1165 1166**返回值:** 1167 1168| 类型 | 说明 | 1169| -------------- | ----------------------------------------------------------------- | 1170| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 1171 1172**错误码:** 1173 1174| 错误码 ID | 错误信息 | 1175| --------- | -------------------------------------------- | 1176| 201 | Permission denied. | 1177| 202 | Non-system applications use system APIs. | 1178| 401 | Parameter error. | 1179| 2100001 | Invalid parameter value. | 1180| 2100002 | Operation failed. Cannot connect to service. | 1181| 2100003 | System internal error. | 1182 1183**示例:** 1184 1185```ts 1186import { BusinessError } from '@ohos.base'; 1187policy 1188 .resetPolicies('1') 1189 .then(() => { 1190 console.log('resetPolicies success'); 1191 }) 1192 .catch((error: BusinessError) => { 1193 console.log(JSON.stringify(error)); 1194 }); 1195``` 1196 1197## policy.updateRemindPolicy<sup>10+</sup> 1198 1199updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType, callback: AsyncCallback\<void>): void 1200 1201更新提醒策略,使用 callback 方式作为异步方法。 1202 1203**系统接口**:此接口为系统接口。 1204 1205**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1206 1207**系统能力**:SystemCapability.Communication.NetManager.Core 1208 1209**参数:** 1210 1211| 参数名 | 类型 | 必填 | 说明 | 1212| ---------- | ---------------------------------------------------- | ---- | ---------------------------------------------- | 1213| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | 是 | 网络类型 | 1214| simId | string | 是 | SIM 卡 ID | 1215| remindType | [RemindType](#remindtype10) | 是 | 提醒类型 | 1216| callback | AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 1217 1218**错误码:** 1219 1220| 错误码 ID | 错误信息 | 1221| --------- | -------------------------------------------- | 1222| 201 | Permission denied. | 1223| 202 | Non-system applications use system APIs. | 1224| 401 | Parameter error. | 1225| 2100001 | Invalid parameter value. | 1226| 2100002 | Operation failed. Cannot connect to service. | 1227| 2100003 | System internal error. | 1228 1229**示例:** 1230 1231```ts 1232import connection from '@ohos.net.connection'; 1233import { BusinessError } from '@ohos.base'; 1234policy.updateRemindPolicy( 1235 connection.NetBearType.BEARER_CELLULAR, 1236 '1', 1237 policy.RemindType.REMIND_TYPE_WARNING, 1238 (error: BusinessError) => { 1239 console.log(JSON.stringify(error)); 1240 } 1241); 1242``` 1243 1244## policy.updateRemindPolicy<sup>10+</sup> 1245 1246updateRemindPolicy(netType: NetBearType, simId: string, remindType: RemindType): Promise\<void>; 1247 1248更新提醒策略,使用 Promise 方式作为异步方法。 1249 1250**系统接口**:此接口为系统接口。 1251 1252**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1253 1254**系统能力**:SystemCapability.Communication.NetManager.Core 1255 1256**参数:** 1257 1258| 参数名 | 类型 | 必填 | 说明 | 1259| ---------- | ---------------------------------------------------- | ---- | --------- | 1260| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | 是 | 网络类型 | 1261| simId | string | 是 | SIM 卡 ID | 1262| remindType | [RemindType](#remindtype10) | 是 | 提醒类型 | 1263 1264**返回值:** 1265 1266| 类型 | 说明 | 1267| -------------- | ----------------------------------------------------------------- | 1268| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 1269 1270**错误码:** 1271 1272| 错误码 ID | 错误信息 | 1273| --------- | -------------------------------------------- | 1274| 201 | Permission denied. | 1275| 202 | Non-system applications use system APIs. | 1276| 401 | Parameter error. | 1277| 2100001 | Invalid parameter value. | 1278| 2100002 | Operation failed. Cannot connect to service. | 1279| 2100003 | System internal error. | 1280 1281**示例:** 1282 1283```ts 1284import connection from '@ohos.net.connection'; 1285import { BusinessError } from '@ohos.base'; 1286policy 1287 .updateRemindPolicy( 1288 connection.NetBearType.BEARER_CELLULAR, 1289 '1', 1290 policy.RemindType.REMIND_TYPE_WARNING 1291 ) 1292 .then(() => { 1293 console.log('updateRemindPolicy success'); 1294 }) 1295 .catch((error: BusinessError) => { 1296 console.log(JSON.stringify(error)); 1297 }); 1298``` 1299 1300## policy.setPowerSaveTrustlist<sup>10+</sup> 1301 1302setPowerSaveTrustlist(uids: Array\<number>, isAllowed: boolean, callback: AsyncCallback\<void>): void 1303 1304设置指定 uid 应用是否在省电防火墙的白名单,使用 callback 方式作为异步方法。 1305 1306**系统接口**:此接口为系统接口。 1307 1308**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1309 1310**系统能力**:SystemCapability.Communication.NetManager.Core 1311 1312**参数:** 1313 1314| 参数名 | 类型 | 必填 | 说明 | 1315| --------- | ------------------------------ | ---- | ---------------------------------------------- | 1316| uids | Array\<number> | 是 | app 唯一标识符 | 1317| isAllowed | boolean | 是 | 是否加入白名单 | 1318| callback | callback: AsyncCallback\<void> | 是 | 回调函数,成功返回空,失败返回错误码错误信息。 | 1319 1320**错误码:** 1321 1322| 错误码 ID | 错误信息 | 1323| --------- | -------------------------------------------- | 1324| 201 | Permission denied. | 1325| 202 | Non-system applications use system APIs. | 1326| 401 | Parameter error. | 1327| 2100001 | Invalid parameter value. | 1328| 2100002 | Operation failed. Cannot connect to service. | 1329| 2100003 | System internal error. | 1330 1331**示例:** 1332 1333```ts 1334import { BusinessError } from '@ohos.base'; 1335policy.setPowerSaveTrustlist([11111, 22222], true, (error: BusinessError) => { 1336 console.log(JSON.stringify(error)); 1337}); 1338``` 1339 1340## policy.setPowerSaveTrustlist<sup>10+</sup> 1341 1342setPowerSaveTrustlist(uids: Array\<number>, isAllowed: boolean): Promise\<void>; 1343 1344设置指定 uid 应用是否在省电防火墙的白名单,使用 Promise 方式作为异步方法。 1345 1346**系统接口**:此接口为系统接口。 1347 1348**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1349 1350**系统能力**:SystemCapability.Communication.NetManager.Core 1351 1352**参数:** 1353 1354| 参数名 | 类型 | 必填 | 说明 | 1355| --------- | -------------- | ---- | -------------- | 1356| uids | Array\<number> | 是 | app 唯一标识符 | 1357| isAllowed | boolean | 是 | 是否加入白名单 | 1358 1359**返回值:** 1360 1361| 类型 | 说明 | 1362| -------------- | ----------------------------------------------------------------- | 1363| Promise\<void> | 以 Promise 形式返回设定结果。成功返回空,失败返回错误码错误信息。 | 1364 1365**错误码:** 1366 1367| 错误码 ID | 错误信息 | 1368| --------- | -------------------------------------------- | 1369| 201 | Permission denied. | 1370| 202 | Non-system applications use system APIs. | 1371| 401 | Parameter error. | 1372| 2100001 | Invalid parameter value. | 1373| 2100002 | Operation failed. Cannot connect to service. | 1374| 2100003 | System internal error. | 1375 1376**示例:** 1377 1378```ts 1379import { BusinessError } from '@ohos.base'; 1380policy 1381 .setPowerSaveTrustlist([11111, 22222], true) 1382 .then(() => { 1383 console.log('setPowerSaveTrustlist success'); 1384 }) 1385 .catch((error: BusinessError) => { 1386 console.log(JSON.stringify(error)); 1387 }); 1388``` 1389 1390## policy.getPowerSaveTrustlist<sup>10+</sup> 1391 1392getPowerSaveTrustlist(callback: AsyncCallback\<Array\<number>>): void 1393 1394获取省电模式白名单所包含的 uid 数组,使用 callback 方式作为异步方法。 1395 1396**系统接口**:此接口为系统接口。 1397 1398**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1399 1400**系统能力**:SystemCapability.Communication.NetManager.Core 1401 1402**参数:** 1403 1404| 参数名 | 类型 | 必填 | 说明 | 1405| -------- | ------------------------------ | ---- | ------------------------ | 1406| callback | AsyncCallback\<Array\<number>> | 是 | 回调函数,返回获取结果。 | 1407 1408**错误码:** 1409 1410| 错误码 ID | 错误信息 | 1411| --------- | -------------------------------------------- | 1412| 201 | Permission denied. | 1413| 202 | Non-system applications use system APIs. | 1414| 401 | Parameter error. | 1415| 2100001 | Invalid parameter value. | 1416| 2100002 | Operation failed. Cannot connect to service. | 1417| 2100003 | System internal error. | 1418 1419**示例:** 1420 1421```ts 1422import { BusinessError } from '@ohos.base'; 1423policy.getPowerSaveTrustlist((error: BusinessError, data: number[]) => { 1424 console.log(JSON.stringify(error)); 1425 console.log(JSON.stringify(data)); 1426}); 1427``` 1428 1429## policy.getPowerSaveTrustlist<sup>10+</sup> 1430 1431getPowerSaveTrustlist(): Promise\<Array\<number>>; 1432 1433获取休眠模式白名单所包含的 uid 数组,使用 Promise 方式作为异步方法。 1434 1435**系统接口**:此接口为系统接口。 1436 1437**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1438 1439**系统能力**:SystemCapability.Communication.NetManager.Core 1440 1441**返回值:** 1442 1443| 类型 | 说明 | 1444| ------------------------ | ----------------------------- | 1445| Promise\<Array\<number>> | 以 Promise 形式返回设定结果。 | 1446 1447**错误码:** 1448 1449| 错误码 ID | 错误信息 | 1450| --------- | -------------------------------------------- | 1451| 201 | Permission denied. | 1452| 202 | Non-system applications use system APIs. | 1453| 401 | Parameter error. | 1454| 2100002 | Operation failed. Cannot connect to service. | 1455| 2100003 | System internal error. | 1456 1457**示例:** 1458 1459```ts 1460import { BusinessError } from '@ohos.base'; 1461policy 1462 .getPowerSaveTrustlist() 1463 .then((data: number[]) => { 1464 console.log(JSON.stringify(data)); 1465 }) 1466 .catch((error: BusinessError) => { 1467 console.log(JSON.stringify(error)); 1468 }); 1469``` 1470 1471## policy.on 1472 1473网络策略的句柄。 1474 1475### on('netUidPolicyChange')<sup>10+</sup> 1476 1477on(type: "netUidPolicyChange", callback: Callback\<{ uid: number, policy: NetUidPolicy }>): void 1478 1479注册 policy 发生改变时的回调,使用 callback 方式作为异步方法。 1480 1481**系统接口**:此接口为系统接口。 1482 1483**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1484 1485**系统能力**:SystemCapability.Communication.NetManager.Core 1486 1487**参数:** 1488 1489| 参数名 | 类型 | 必填 | 说明 | 1490| -------- | ------------------------------------------------------------------- | ---- | -------------------------------------- | 1491| type | string | 是 | policy 发生改变的类型 | 1492| callback | Callback\<{ uid: number, policy: [NetUidPolicy](#netuidpolicy10) }> | 是 | 回调函数。注册 policy 发生改变时调用。 | 1493 1494**错误码:** 1495 1496| 错误码 ID | 错误信息 | 1497| --------- | -------------------------------------------- | 1498| 201 | Permission denied. | 1499| 202 | Non-system applications use system APIs. | 1500| 401 | Parameter error. | 1501| 2100001 | Invalid parameter value. | 1502| 2100002 | Operation failed. Cannot connect to service. | 1503| 2100003 | System internal error. | 1504 1505**示例:** 1506 1507```ts 1508import policy from '@ohos.net.policy'; 1509interface Data { 1510 uid: number, 1511 policy: policy.NetUidPolicy 1512} 1513policy.on('netUidPolicyChange', (data: Data) => { 1514 console.log('on netUidPolicyChange: ' + JSON.stringify(data)); 1515}); 1516``` 1517 1518### off('netUidPolicyChange')<sup>10+</sup> 1519 1520off(type: "netUidPolicyChange", callback?: Callback<{ uid: number, policy: NetUidPolicy }>): void 1521 1522注销 policy 发生改变时的回调,使用 callback 方式作为异步方法。 1523 1524**系统接口**:此接口为系统接口。 1525 1526**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1527 1528**系统能力**:SystemCapability.Communication.NetManager.Core 1529 1530**参数:** 1531 1532| 参数名 | 类型 | 必填 | 说明 | 1533| -------- | ------------------------------------------------------------------- | ---- | -------------------------------------- | 1534| type | string | 是 | policy 发生改变的类型 | 1535| callback | Callback\<{ uid: number, policy: [NetUidPolicy](#netuidpolicy10) }> | 否 | 回调函数。注册 policy 发生改变时调用。 | 1536 1537**错误码:** 1538 1539| 错误码 ID | 错误信息 | 1540| --------- | -------------------------------------------- | 1541| 201 | Permission denied. | 1542| 202 | Non-system applications use system APIs. | 1543| 401 | Parameter error. | 1544| 2100001 | Invalid parameter value. | 1545| 2100002 | Operation failed. Cannot connect to service. | 1546| 2100003 | System internal error. | 1547 1548**示例:** 1549 1550```ts 1551let callback = (data: object) => { 1552 console.log('on netUidPolicyChange, data:' + JSON.stringify(data)); 1553}; 1554policy.on('netUidPolicyChange', callback); 1555policy.off('netUidPolicyChange', callback); 1556``` 1557 1558### on('netUidRuleChange')<sup>10+</sup> 1559 1560on(type: "netUidRuleChange", callback: Callback\<{ uid: number, rule: NetUidRule }>): void 1561 1562注册 rule 发生改变时的回调,使用 callback 方式作为异步方法。 1563 1564**系统接口**:此接口为系统接口。 1565 1566**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1567 1568**系统能力**:SystemCapability.Communication.NetManager.Core 1569 1570**参数:** 1571 1572| 参数名 | 类型 | 必填 | 说明 | 1573| -------- | ------------------------------------------------------------- | ---- | -------------------------------------- | 1574| type | string | 是 | rule 发生改变的类型 | 1575| callback | Callback\<{ uid: number, rule: [NetUidRule](#netuidrule10) }> | 是 | 回调函数。注册 rule 发生改变时的调用。 | 1576 1577**错误码:** 1578 1579| 错误码 ID | 错误信息 | 1580| --------- | -------------------------------------------- | 1581| 201 | Permission denied. | 1582| 202 | Non-system applications use system APIs. | 1583| 401 | Parameter error. | 1584| 2100001 | Invalid parameter value. | 1585| 2100002 | Operation failed. Cannot connect to service. | 1586| 2100003 | System internal error. | 1587 1588**示例:** 1589 1590```ts 1591policy.on('netUidRuleChange', (data: object) => { 1592 console.log('on netUidRuleChange: ' + JSON.stringify(data)); 1593}); 1594``` 1595 1596### off('netUidRuleChange')<sup>10+</sup> 1597 1598off(type: "netUidRuleChange", callback?: Callback<{ uid: number, rule: NetUidRule }>): void 1599 1600注销 rule 发生改变时的回调,使用 callback 方式作为异步方法。 1601 1602**系统接口**:此接口为系统接口。 1603 1604**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1605 1606**系统能力**:SystemCapability.Communication.NetManager.Core 1607 1608**参数:** 1609 1610| 参数名 | 类型 | 必填 | 说明 | 1611| -------- | ------------------------------------------------------------- | ---- | -------------------------------------- | 1612| type | string | 是 | rule 发生改变的类型 | 1613| callback | Callback\<{ uid: number, rule: [NetUidRule](#netuidrule10) }> | 否 | 回调函数。注册 rule 发生改变时的调用。 | 1614 1615**错误码:** 1616 1617| 错误码 ID | 错误信息 | 1618| --------- | -------------------------------------------- | 1619| 201 | Permission denied. | 1620| 202 | Non-system applications use system APIs. | 1621| 401 | Parameter error. | 1622| 2100001 | Invalid parameter value. | 1623| 2100002 | Operation failed. Cannot connect to service. | 1624| 2100003 | System internal error. | 1625 1626**示例:** 1627 1628```ts 1629let callback = (data: object) => { 1630 console.log('on netUidRuleChange, data:' + JSON.stringify(data)); 1631}; 1632policy.on('netUidRuleChange', callback); 1633policy.off('netUidRuleChange', callback); 1634``` 1635 1636### on('netMeteredIfacesChange')<sup>10+</sup> 1637 1638on(type: "netMeteredIfacesChange", callback: Callback\<Array\<string>>): void 1639 1640注册计量 iface 发生改变时的回调,使用 callback 方式作为异步方法。 1641 1642**系统接口**:此接口为系统接口。 1643 1644**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1645 1646**系统能力**:SystemCapability.Communication.NetManager.Core 1647 1648**参数:** 1649 1650| 参数名 | 类型 | 必填 | 说明 | 1651| -------- | ------------------------- | ---- | ----------------------------------------- | 1652| type | string | 是 | 计量 iface 发生改变的类型 | 1653| callback | Callback\<Array\<string>> | 是 | 回调函数。注册计量 iface 发生改变时调用。 | 1654 1655**错误码:** 1656 1657| 错误码 ID | 错误信息 | 1658| --------- | -------------------------------------------- | 1659| 201 | Permission denied. | 1660| 202 | Non-system applications use system APIs. | 1661| 401 | Parameter error. | 1662| 2100001 | Invalid parameter value. | 1663| 2100002 | Operation failed. Cannot connect to service. | 1664| 2100003 | System internal error. | 1665 1666**示例:** 1667 1668```ts 1669policy.on('netMeteredIfacesChange', (data: string[]) => { 1670 console.log('on netMeteredIfacesChange: ' + JSON.stringify(data)); 1671}); 1672``` 1673 1674### off('netMeteredIfacesChange')<sup>10+</sup> 1675 1676off(type: "netMeteredIfacesChange", callback?: Callback\<Array\<string>>): void 1677 1678注销计量 iface 发生改变时的回调,使用 callback 方式作为异步方法。 1679 1680**系统接口**:此接口为系统接口。 1681 1682**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1683 1684**系统能力**:SystemCapability.Communication.NetManager.Core 1685 1686**参数:** 1687 1688| 参数名 | 类型 | 必填 | 说明 | 1689| -------- | ------------------------- | ---- | ----------------------------------------- | 1690| type | string | 是 | 计量 iface 发生改变的类型 | 1691| callback | Callback\<Array\<string>> | 否 | 回调函数。注册计量 iface 发生改变时调用。 | 1692 1693**错误码:** 1694 1695| 错误码 ID | 错误信息 | 1696| --------- | -------------------------------------------- | 1697| 201 | Permission denied. | 1698| 202 | Non-system applications use system APIs. | 1699| 401 | Parameter error. | 1700| 2100001 | Invalid parameter value. | 1701| 2100002 | Operation failed. Cannot connect to service. | 1702| 2100003 | System internal error. | 1703 1704**示例:** 1705 1706```ts 1707let callback = (data: string[]) => { 1708 console.log('on netMeteredIfacesChange, data:' + JSON.stringify(data)); 1709}; 1710policy.on('netMeteredIfacesChange', callback); 1711policy.off('netMeteredIfacesChange', callback); 1712``` 1713 1714### on('netQuotaPolicyChange')<sup>10+</sup> 1715 1716on(type: "netQuotaPolicyChange", callback: Callback\<Array\<NetQuotaPolicy>>): void 1717 1718注册计量网络策略发生改变时的回调,使用 callback 方式作为异步方法。 1719 1720**系统接口**:此接口为系统接口。 1721 1722**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1723 1724**系统能力**:SystemCapability.Communication.NetManager.Core 1725 1726**参数:** 1727 1728| 参数名 | 类型 | 必填 | 说明 | 1729| -------- | ------------------------------------------------------ | ---- | ------------------------------------------ | 1730| type | string | 是 | 计量网络策略发生改变的类型 | 1731| callback | Callback\<Array\<[NetQuotaPolicy](#netquotapolicy10)>> | 是 | 回调函数。注册计量网络策略发生改变时调用。 | 1732 1733**错误码:** 1734 1735| 错误码 ID | 错误信息 | 1736| --------- | -------------------------------------------- | 1737| 201 | Permission denied. | 1738| 202 | Non-system applications use system APIs. | 1739| 401 | Parameter error. | 1740| 2100001 | Invalid parameter value. | 1741| 2100002 | Operation failed. Cannot connect to service. | 1742| 2100003 | System internal error. | 1743 1744**示例:** 1745 1746```ts 1747policy.on('netQuotaPolicyChange', (data: policy.NetQuotaPolicy[]) => { 1748 console.log('on netQuotaPolicyChange: ' + JSON.stringify(data)); 1749}); 1750``` 1751 1752### off('netQuotaPolicyChange')<sup>10+</sup> 1753 1754off(type: "netQuotaPolicyChange", callback?: Callback\<Array\<NetQuotaPolicy>>): void 1755 1756注销计量网络策略发生改变时的回调,使用 callback 方式作为异步方法。 1757 1758**系统接口**:此接口为系统接口。 1759 1760**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1761 1762**系统能力**:SystemCapability.Communication.NetManager.Core 1763 1764**参数:** 1765 1766| 参数名 | 类型 | 必填 | 说明 | 1767| -------- | ------------------------------------------------------ | ---- | ------------------------------------------ | 1768| type | string | 是 | 计量网络策略发生改变的类型 | 1769| callback | Callback\<Array\<[NetQuotaPolicy](#netquotapolicy10)>> | 否 | 回调函数。注册计量网络策略发生改变时调用。 | 1770 1771**错误码:** 1772 1773| 错误码 ID | 错误信息 | 1774| --------- | -------------------------------------------- | 1775| 201 | Permission denied. | 1776| 202 | Non-system applications use system APIs. | 1777| 401 | Parameter error. | 1778| 2100001 | Invalid parameter value. | 1779| 2100002 | Operation failed. Cannot connect to service. | 1780| 2100003 | System internal error. | 1781 1782**示例:** 1783 1784```ts 1785policy.on('netQuotaPolicyChange', (data: Array<policy.NetQuotaPolicy>) => { 1786 console.log('on netQuotaPolicyChange, data:' + JSON.stringify(data)); 1787}); 1788policy.off('netQuotaPolicyChange', (data: Array<policy.NetQuotaPolicy>) => { 1789 console.log('on netQuotaPolicyChange, data:' + JSON.stringify(data)); 1790}); 1791``` 1792 1793### on('netBackgroundPolicyChange')<sup>10+</sup> 1794 1795on(type: "netBackgroundPolicyChange", callback: Callback\<boolean>): void 1796 1797注册后台网络策略发生改变时的回调,使用 callback 方式作为异步方法。 1798 1799**系统接口**:此接口为系统接口。 1800 1801**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1802 1803**系统能力**:SystemCapability.Communication.NetManager.Core 1804 1805**参数:** 1806 1807| 参数名 | 类型 | 必填 | 说明 | 1808| -------- | ------------------ | ---- | ------------------------------------------ | 1809| type | string | 是 | 后台网络策略发生改变的类型 | 1810| callback | Callback\<boolean> | 是 | 回调函数。注册后台网络策略发生改变时调用。 | 1811 1812**错误码:** 1813 1814| 错误码 ID | 错误信息 | 1815| --------- | -------------------------------------------- | 1816| 201 | Permission denied. | 1817| 202 | Non-system applications use system APIs. | 1818| 401 | Parameter error. | 1819| 2100001 | Invalid parameter value. | 1820| 2100002 | Operation failed. Cannot connect to service. | 1821| 2100003 | System internal error. | 1822 1823**示例:** 1824 1825```ts 1826policy.on('netBackgroundPolicyChange', (data: boolean) => { 1827 console.log('on netBackgroundPolicyChange: ' + JSON.stringify(data)); 1828}); 1829``` 1830 1831### off('netBackgroundPolicyChange')<sup>10+</sup> 1832 1833off(type: "netBackgroundPolicyChange", callback?: Callback\<boolean>): void 1834 1835注销后台网络策略发生改变时的回调,使用 callback 方式作为异步方法。 1836 1837**系统接口**:此接口为系统接口。 1838 1839**需要权限**:ohos.permission.MANAGE_NET_STRATEGY 1840 1841**系统能力**:SystemCapability.Communication.NetManager.Core 1842 1843**参数:** 1844 1845| 参数名 | 类型 | 必填 | 说明 | 1846| -------- | ------------------ | ---- | ------------------------------------------ | 1847| type | string | 是 | 后台网络策略发生改变的类型 | 1848| callback | Callback\<boolean> | 否 | 回调函数。注册后台网络策略发生改变时调用。 | 1849 1850**错误码:** 1851 1852| 错误码 ID | 错误信息 | 1853| --------- | -------------------------------------------- | 1854| 201 | Permission denied. | 1855| 202 | Non-system applications use system APIs. | 1856| 401 | Parameter error. | 1857| 2100001 | Invalid parameter value. | 1858| 2100002 | Operation failed. Cannot connect to service. | 1859| 2100003 | System internal error. | 1860 1861**示例:** 1862 1863```ts 1864let callback = (data: boolean) => { 1865 console.log('on netBackgroundPolicyChange, data:' + JSON.stringify(data)); 1866}; 1867policy.on('netBackgroundPolicyChange', callback); 1868policy.off('netBackgroundPolicyChange', callback); 1869``` 1870 1871## NetBackgroundPolicy<sup>10+</sup> 1872 1873后台网络策略。 1874 1875**系统接口**:此接口为系统接口。 1876 1877**系统能力**:SystemCapability.Communication.NetManager.Core 1878 1879| 名称 | 值 | 说明 | 1880| ------------------------------- | --- | ------------------------------------------ | 1881| NET_BACKGROUND_POLICY_NONE | 0 | 默认值。 | 1882| NET_BACKGROUND_POLICY_ENABLE | 1 | 应用在后台可以使用计量网路。 | 1883| NET_BACKGROUND_POLICY_DISABLE | 2 | 应用在后台不可以使用计量网路。 | 1884| NET_BACKGROUND_POLICY_TRUSTLIST | 3 | 只有应用指定的列表在后台可以使用计量网络。 | 1885 1886## NetQuotaPolicy<sup>10+</sup> 1887 1888计量网络策略。 1889 1890**系统接口**:此接口为系统接口。 1891 1892**系统能力**:SystemCapability.Communication.NetManager.Core 1893 1894| 名称 | 类型 | 必填 | 说明 | 1895| ---------------- | --------------------------------------- | ---- | -------------------------------- | 1896| networkMatchRule | [NetworkMatchRule](#networkmatchrule10) | 是 | 网络标识,用来确定设置哪一个网络 | 1897| quotaPolicy | [QuotaPolicy](#quotapolicy10) | 是 | 具体的计量网络策略 | 1898 1899## NetworkMatchRule<sup>10+</sup> 1900 1901网络标识,用来确定设置哪一个网络 1902 1903**系统接口**:此接口为系统接口。 1904 1905**系统能力**:SystemCapability.Communication.NetManager.Core 1906 1907| 名称 | 类型 | 必填 | 说明 | 1908| -------- | ---------------------------------------------------- | ---- | ---------------------------------------------------------------------------- | 1909| netType | [NetBearType](js-apis-net-connection.md#netbeartype) | 是 | 网络类型。 | 1910| simId | string | 是 | 计量蜂窝网络的 SIM 卡的标识值。以太网,wifi 网络不会用到 | 1911| identity | string | 是 | 计量蜂窝网络中配合 simId 联合使用。以太网,wifi 网络单独使用。用于标记类型。 | 1912 1913## QuotaPolicy<sup>10+</sup> 1914 1915计量网络策略 1916 1917**系统接口**:此接口为系统接口。 1918 1919**系统能力**:SystemCapability.Communication.NetManager.Core 1920 1921| 名称 | 类型 | 必填 | 说明 | 1922| ----------------- | ----------------------------- | ---- | ---------------------------------------------------------------------------------------- | 1923| periodDuration | string | 是 | 流量限制计量周期。D1,M1,Y1 分别代表 1 天,1 个月,1 年内流量限制,超出时间则不受限制。 | 1924| warningBytes | number | 是 | 发出警告的流量阈值。 | 1925| limitBytes | number | 是 | 流量设置的配额。 | 1926| metered | string | 是 | 是否为计量网络。 | 1927| limitAction | [LimitAction](#limitaction10) | 是 | 到达流量限制后的动作。 | 1928| lastWarningRemind | string | 否 | 最新一次发出警告的时间。 | 1929| lastLimitRemind | string | 否 | 最新一次配额耗尽的时间。 | 1930 1931## LimitAction<sup>10+</sup> 1932 1933限制动作。 1934 1935**系统接口**:此接口为系统接口。 1936 1937**系统能力**:SystemCapability.Communication.NetManager.Core 1938 1939| 名称 | 值 | 说明 | 1940| ---------------------------- | --- | ---------------------------------- | 1941| LIMIT_ACTION_NONE | -1 | 默认值。 | 1942| LIMIT_ACTION_ACCESS_DISABLED | 0 | 当配额策略达到限制时,访问被禁用。 | 1943| LIMIT_ACTION_ALERT_ONLY | 1 | 当配额策略达到限制时,将警告用户。 | 1944 1945## NetUidRule<sup>10+</sup> 1946 1947计量网络规则。 1948 1949**系统接口**:此接口为系统接口。 1950 1951**系统能力**:SystemCapability.Communication.NetManager.Core 1952 1953| 名称 | 值 | 说明 | 1954| --------------------------------- | ------ | -------------------- | 1955| NET_RULE_NONE | 0 | 默认规则 | 1956| NET_RULE_ALLOW_METERED_FOREGROUND | 1 << 0 | 允许前台访问计量网络 | 1957| NET_RULE_ALLOW_METERED | 1 << 1 | 允许访问计量网络 | 1958| NET_RULE_REJECT_METERED | 1 << 2 | 拒绝访问计量网络 | 1959| NET_RULE_ALLOW_ALL | 1 << 5 | 允许访问所有网络 | 1960| NET_RULE_REJECT_ALL | 1 << 6 | 拒绝访问所有网络 | 1961 1962## RemindType<sup>10+</sup> 1963 1964提醒类型。 1965 1966**系统接口**:此接口为系统接口。 1967 1968**系统能力**:SystemCapability.Communication.NetManager.Core 1969 1970| 名称 | 值 | 说明 | 1971| ------------------- | --- | -------- | 1972| REMIND_TYPE_WARNING | 1 | 警告提醒 | 1973| REMIND_TYPE_LIMIT | 2 | 限制提醒 | 1974 1975## NetUidPolicy<sup>10+</sup> 1976 1977应用对应的网络策略。 1978 1979**系统接口**:此接口为系统接口。 1980 1981**系统能力**:SystemCapability.Communication.NetManager.Core 1982 1983| 名称 | 值 | 说明 | 1984| ------------------------------------ | ------ | -------------------------- | 1985| NET_POLICY_NONE | 0 | 默认网络策略 | 1986| NET_POLICY_ALLOW_METERED_BACKGROUND | 1 << 0 | 允许应用在后台访问计量网络 | 1987| NET_POLICY_REJECT_METERED_BACKGROUND | 1 << 1 | 拒绝应用在后台访问计量网络 | 1988