1# 使用约束管控系统账号(仅对系统应用开放) 2 3账号管理模块提供了基于角色的访问控制机制,用户可以为系统账号设置约束,以限制目标账号的行为。 4 5## 约束列表 6 7预定义的账号约束条件,可以参考 :[系统账号约束列表](../../reference/apis-basic-services-kit/js-apis-osAccount.md#系统账号约束列表) 8 9## 开发准备 10 111. 申请权限:ohos.permission.MANAGE_LOCAL_ACCOUNTS。申请流程请参考:[申请应用权限](../../security/AccessToken/determine-application-mode.md#system_basic等级应用申请权限的方式)。 12 132. 导入系统账号模块。 14 15 ```ts 16 import { osAccount } from '@kit.BasicServicesKit'; 17 ``` 18 193. 获取系统账号的单实例对象。 20 21 ```ts 22 let accountManager = osAccount.getAccountManager(); 23 ``` 24 25## 设置指定系统账号的约束列表 26 27设备所有者可以给指定系统账号设置约束,以限制该账号的行为。例如在家长模式下,家长可能禁止儿童打开WIFI、安装应用等。 28 29具体开发实例如下: 30 311. 指定系统账号标识和待使能的约束集合。 32 33 ```ts 34 let localId: number = 100; 35 let constraint: string[] = [ 'constraint.wifi.set' ]; 36 ``` 37 382. 调用[setOsAccountConstraints](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#setosaccountconstraints)接口,使能系统账号100的约束。 39 40 ```ts 41 try { 42 accountManager.setOsAccountConstraints(localId, constraint, true); 43 console.log('setOsAccountConstraints successfully'); 44 } catch (err) { 45 console.log('setOsAccountConstraints failed, error: ' + JSON.stringify(err)); 46 } 47 ``` 48 49## 判断目标系统账号的指定约束是否使能 50 51业务应用需要判断目标系统账号的指定约束是否使能,以此来决策是否对目标系统账号的行为做管控。 52开发者可以使用[isOsAccountConstraintEnabled](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#isosaccountconstraintenabled11)接口完成此操作。 53 54具体开发实例如下: 55 561. 指定系统账号标识和约束名称。 57 58 ```ts 59 let localId: number = 100; 60 let constraint: string = 'constraint.wifi.set'; 61 ``` 62 632. 调用[isOsAccountConstraintEnabled](../../reference/apis-basic-services-kit/js-apis-osAccount-sys.md#isosaccountconstraintenabled11)接口,判断指定约束是否使能。 64 65 ```ts 66 let isEnabled: boolean = await accountManager.isOsAccountConstraintEnabled(localId, constraint); 67 if (isEnabled) { 68 // your business logic 69 } 70 ``` 71