# 分布式帐号管理
## 导入模块
```
import account_distributedAccount from '@ohos.account.distributedAccount';
```
## account\_distributedAccount.getDistributedAccountAbility
getDistributedAccountAbility\(\): DistributedAccountAbility
获取分布式帐号单实例对象。
- 返回值:
- 示例:
```
const accountAbility = account_distributedAccount.getDistributedAccountAbility();
```
## DistributedAccountAbility
提供查询和更新分布式帐号登录状态方法\(需要先获取分布式帐号的单实例对象\)。
### queryOsAccountDistributedInfo
queryOsAccountDistributedInfo\(callback: AsyncCallback\): void
获取分布式帐号信息,使用callback回调异步返回结果。
需要权限:ohos.permission.MANAGE\_LOCAL\_ACCOUNTS,该权限仅供系统应用使用。
- 参数:
- 示例:
```
accountAbility.queryOsAccountDistributedInfo((err, data) => {
console.log("queryOsAccountDistributedInfo err: " + JSON.stringify(err));
console.log('Query account info name: ' + data.name);
console.log('Query account info id: ' + data.id);
});
```
### queryOsAccountDistributedInfo
queryOsAccountDistributedInfo\(\): Promise
获取分布式帐号信息,使用Promise方式异步返回结果。
需要权限:ohos.permission.MANAGE\_LOCAL\_ACCOUNTS,该权限仅供系统应用使用。
- 返回值:
- 示例:
```
accountAbility.queryOsAccountDistributedInfo().then((data) => {
console.log('Query account info name: ' + data.name);
console.log('Query account info id: ' + data.id);
}).catch((err) => {
console.log("queryOsAccountDistributedInfoerr: " + JSON.stringify(err));
});
```
### updateOsAccountDistributedInfo
updateOsAccountDistributedInfo\(accountInfo: DistributedInfo, callback: AsyncCallback\): void
更新分布式帐号信息,使用callback回调异步返回结果。
需要权限:ohos.permission.MANAGE\_LOCAL\_ACCOUNTS,该权限仅供系统应用使用。
- 参数:
参数名
|
类型
|
必填
|
说明
|
accountInfo
|
DistributedInfo
|
是
|
分布式帐号信息。
|
callback
|
AsyncCallback<void>
|
是
|
更新分布式帐号信息的回调。
|
- 示例:
```
let accountInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'};
accountAbility.updateOsAccountDistributedInfo(accountInfo, (err) => {
console.log("queryOsAccountDistributedInfo err: " + JSON.stringify(err));
});
```
### updateOsAccountDistributedInfo
updateOsAccountDistributedInfo\(accountInfo: DistributedInfo\): Promise
更新分布式帐号信息,使用Promise方式异步返回结果。
需要权限:ohos.permission.MANAGE\_LOCAL\_ACCOUNTS,该权限仅供系统应用使用。
- 参数:
- 返回值:
类型
|
说明
|
Promise<void>
|
Promise实例,用于获取异步返回结果。
|
- 示例:
```
let accountInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'};
accountAbility.updateOsAccountDistributedInfo(accountInfo).then(() => {
console.log('updateOsAccountDistributedInfo Success');
}).catch((err) => {
console.log("updateOsAccountDistributedInfo err: " + JSON.stringify(err));
});
```
## DistributedInfo
提供操作系统帐户的分布式信息。
参数名
|
类型
|
必填
|
说明
|
name
|
string
|
是
|
分布式帐号名称,非空字符串。
|
id
|
string
|
是
|
分布式帐号UID,非空字符串。
|
event
|
string
|
是
|
分布式帐号登录状态,包括登录、登出、Token失效和注销,分别对应以下字符串:
- Ohos.account.event.LOGIN
- Ohos.account.event.LOGOUT
- Ohos.account.event.TOKEN_INVALID
- Ohos.account.event.LOGOFF
|
scalableData
|
object
|
否
|
分布式帐号扩展信息,根据业务所需,以k-v形式传递定制化信息。
说明:该参数是预留的可选项,目前查询和更新的方法实现中未使用。
|