1# 使用约束管控系统账号(仅对系统应用开放) 2 3<!--Kit: Basic Services Kit--> 4<!--Subsystem: Account--> 5<!--Owner: @steven-q--> 6<!--Designer: @JiDong-CS1--> 7<!--Tester: @zhaimengchao--> 8<!--Adviser: @zengyawen--> 9 10账号管理模块提供了基于角色的访问控制机制,用户可以为系统账号设置约束,以限制目标账号的行为。 11 12## 约束列表 13 14预定义的账号约束条件,可以参考:[系统账号约束列表](../../reference/apis-basic-services-kit/js-apis-osAccount.md#系统账号约束列表)。 15 16## 开发准备 17 181. 申请权限:ohos.permission.MANAGE_LOCAL_ACCOUNTS。申请流程请参考:[申请应用权限](../../security/AccessToken/determine-application-mode.md#system_basic等级应用申请权限的方式)。 19 202. 导入系统账号模块。 21 22 ```ts 23 import { osAccount } from '@kit.BasicServicesKit'; 24 ``` 25 263. 获取系统账号的单实例对象。 27 28 ```ts 29 let accountManager = osAccount.getAccountManager(); 30 ``` 31 32## 设置指定系统账号的约束列表 33 34设备所有者可以给指定系统账号设置约束,以限制该账号的行为。例如在家长模式下,家长可以禁止儿童打开WIFI、安装应用等。 35 36具体开发实例如下: 37 381. 指定系统账号标识和待使能的约束集合。 39 40 ```ts 41 let localId: number = 100; 42 let constraint: string[] = [ 'constraint.wifi.set' ]; 43 ``` 44 452. 调用[setOsAccountConstraints](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#setosaccountconstraints)接口,使能系统账号100的约束。 46 47 ```ts 48 try { 49 accountManager.setOsAccountConstraints(localId, constraint, true); 50 console.info('setOsAccountConstraints successfully'); 51 } catch (err) { 52 console.error(`setOsAccountConstraints failed, error: code is ${err.code}, message is ${err.message}`); 53 } 54 ``` 55 56## 判断目标系统账号的指定约束是否使能 57 58业务应用需要判断目标系统账号的指定约束是否使能,以此来决策是否对目标系统账号的行为做管控。开发者可以使用[isOsAccountConstraintEnabled](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#isosaccountconstraintenabled11)接口完成此操作。 59 60具体开发实例如下: 61 621. 指定系统账号标识和约束名称。 63 64 ```ts 65 let localId: number = 100; 66 let constraint: string = 'constraint.wifi.set'; 67 ``` 68 692. 调用[isOsAccountConstraintEnabled](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#isosaccountconstraintenabled11)接口,判断指定约束是否使能。 70 71 ```ts 72 accountManager.isOsAccountConstraintEnabled(localId, constraint).then((isEnabled: boolean) => { 73 if (isEnabled) { 74 // your business logic 75 } 76 }); 77 ``` 78