1# 分布式帐号管理 2 3本模块提供管理分布式帐号的一些基础功能,主要包括查询和更新帐号登录状态。 4 5>  **说明:** 6> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8 9## 导入模块 10 11```js 12import account_distributedAccount from '@ohos.account.distributedAccount'; 13``` 14 15 16## account_distributedAccount.getDistributedAccountAbility 17 18getDistributedAccountAbility(): DistributedAccountAbility 19 20获取分布式帐号单实例对象。 21 22**系统能力:** SystemCapability.Account.OsAccount 23 24- 返回值: 25 | 类型 | 说明 | 26 | -------- | -------- | 27 | [DistributedAccountAbility](#distributedaccountability) | 返回一个实例,实例提供查询和更新分布式帐号登录状态方法。 | 28 29- 示例: 30 ```js 31 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 32 ``` 33 34## DistributedAccountAbility 35 36提供查询和更新分布式帐号登录状态方法(需要先获取分布式帐号的单实例对象)。 37 38### queryOsAccountDistributedInfo 39 40queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void 41 42获取分布式帐号信息,使用callback回调异步返回结果。 43 44**系统能力:** SystemCapability.Account.OsAccount 45 46**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。 47 48- 参数: 49 | 参数名 | 类型 | 必填 | 说明 | 50 | -------- | -------- | -------- | -------- | 51 | callback | AsyncCallback<[DistributedInfo](#distributedinfo)> | 是 | 获取分布式帐号信息的回调。 | 52 53- 示例: 54 ```js 55 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 56 accountAbility.queryOsAccountDistributedInfo((err, data) => { 57 console.log("queryOsAccountDistributedInfo err: " + JSON.stringify(err)); 58 console.log('Query account info name: ' + data.name); 59 console.log('Query account info id: ' + data.id); 60 }); 61 ``` 62 63### queryOsAccountDistributedInfo 64 65queryOsAccountDistributedInfo(): Promise<DistributedInfo> 66 67获取分布式帐号信息,使用Promise方式异步返回结果。 68 69**系统能力:** SystemCapability.Account.OsAccount 70 71**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.DISTRIBUTED_DATASYNC,该权限仅供系统应用使用。 72 73- 返回值: 74 | 类型 | 说明 | 75 | -------- | -------- | 76 | Promise<[DistributedInfo](#distributedinfo)> | Promise实例,用于获取异步返回结果。 | 77 78- 示例: 79 ```js 80 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 81 accountAbility.queryOsAccountDistributedInfo().then((data) => { 82 console.log('Query account info name: ' + data.name); 83 console.log('Query account info id: ' + data.id); 84 }).catch((err) => { 85 console.log("queryOsAccountDistributedInfoerr: " + JSON.stringify(err)); 86 }); 87 ``` 88 89### updateOsAccountDistributedInfo 90 91updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<void>): void 92 93更新分布式帐号信息,使用callback回调异步返回结果。 94 95**系统能力:** SystemCapability.Account.OsAccount 96 97**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该权限仅供系统应用使用。 98 99- 参数: 100 | 参数名 | 类型 | 必填 | 说明 | 101 | -------- | -------- | -------- | -------- | 102 | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布式帐号信息。 | 103 | callback | AsyncCallback<void> | 是 | 更新分布式帐号信息的回调。 | 104 105- 示例: 106 ```js 107 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 108 let accountInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; 109 accountAbility.updateOsAccountDistributedInfo(accountInfo, (err) => { 110 console.log("queryOsAccountDistributedInfo err: " + JSON.stringify(err)); 111 }); 112 ``` 113 114### updateOsAccountDistributedInfo 115 116updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<void> 117 118更新分布式帐号信息,使用Promise方式异步返回结果。 119 120**系统能力:** SystemCapability.Account.OsAccount 121 122**需要权限:** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该权限仅供系统应用使用。 123 124- 参数: 125 | 参数名 | 类型 | 必填 | 说明 | 126 | -------- | -------- | -------- | -------- | 127 | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布式帐户信息。 | 128 129- 返回值: 130 | 类型 | 说明 | 131 | -------- | -------- | 132 | Promise<void> | Promise实例,用于获取异步返回结果。 | 133 134- 示例: 135 ```js 136 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 137 let accountInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; 138 accountAbility.updateOsAccountDistributedInfo(accountInfo).then(() => { 139 console.log('updateOsAccountDistributedInfo Success'); 140 }).catch((err) => { 141 console.log("updateOsAccountDistributedInfo err: " + JSON.stringify(err)); 142 }); 143 ``` 144 145 146## DistributedInfo 147 148提供操作系统帐户的分布式信息。 149 150**系统能力:** SystemCapability.Account.OsAccount 151 152| 参数名 | 类型 | 必填 | 说明 | 153| -------- | -------- | -------- | -------- | 154| name | string | 是 | 分布式帐号名称,非空字符串。 | 155| id | string | 是 | 分布式帐号UID,非空字符串。 | 156| event | string | 是 | 分布式帐号登录状态,包括登录、登出、Token失效和注销,分别对应以下字符串:<br/>- Ohos.account.event.LOGIN<br/>- Ohos.account.event.LOGOUT<br/>- Ohos.account.event.TOKEN_INVALID<br/>- Ohos.account.event.LOGOFF | 157| scalableData | object | 否 | 分布式帐号扩展信息,根据业务所需,以k-v形式传递定制化信息。<br/>说明:该参数是预留的可选项,目前查询和更新的方法实现中未使用。 | 158