1# Distributed Account Management 2 3The distributedAccount module provides basic functions for managing distributed accounts, including querying and updating account login status. 4 5>  **NOTE**<br> 6> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. 7 8 9## Modules to Import 10 11```js 12import account_distributedAccount from '@ohos.account.distributedAccount'; 13``` 14 15 16## account_distributedAccount.getDistributedAccountAbility 17 18getDistributedAccountAbility(): DistributedAccountAbility 19 20Obtains a **DistributedAccountAbility** instance. 21 22**System capability**: SystemCapability.Account.OsAccount 23 24- Return value 25 | Type| Description| 26 | -------- | -------- | 27 | [DistributedAccountAbility](#distributedaccountability) | **DistributedAccountAbility** instance obtained. This instance provides methods for querying and updating the login state of a distributed account.| 28 29- Example 30 ```js 31 const accountAbility = account_distributedAccount.getDistributedAccountAbility(); 32 ``` 33 34## DistributedAccountAbility 35 36Provides methods for querying and updating the login state of a distributed account. You must obtain a **DistributedAccountAbility** instance first. 37 38### queryOsAccountDistributedInfo 39 40queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void 41 42Obtains distributed account information. This API uses an asynchronous callback to return the result. 43 44**System capability**: SystemCapability.Account.OsAccount 45 46**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications) 47 48- Parameters 49 | Name| Type| Mandatory| Description| 50 | -------- | -------- | -------- | -------- | 51 | callback | AsyncCallback<[DistributedInfo](#distributedinfo)> | Yes| Callback invoked to return the distributed account information obtained.| 52 53- Example 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 67Obtains distributed account information. This API uses a promise to return the result. 68 69**System capability**: SystemCapability.Account.OsAccount 70 71**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.DISTRIBUTED_DATASYNC (available only to system applications) 72 73- Return value 74 | Type| Description| 75 | -------- | -------- | 76 | Promise<[DistributedInfo](#distributedinfo)> | Promise used to return the distributed account information obtained.| 77 78- Example 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 93Updates distributed account information. This API uses an asynchronous callback to return the result. 94 95**System capability**: SystemCapability.Account.OsAccount 96 97**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS (available only to system applications) 98 99- Parameters 100 | Name| Type| Mandatory| Description| 101 | -------- | -------- | -------- | -------- | 102 | accountInfo | [DistributedInfo](#distributedinfo) | Yes| Distributed account information.| 103 | callback | AsyncCallback<void> | Yes| Callback invoked when the distributed account information is updated.| 104 105- Example 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 118Updates distributed account information. This API uses a promise to return the result. 119 120**System capability**: SystemCapability.Account.OsAccount 121 122**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS (available only to system applications) 123 124- Parameters 125 | Name| Type| Mandatory| Description| 126 | -------- | -------- | -------- | -------- | 127 | accountInfo | [DistributedInfo](#distributedinfo) | Yes| Distributed account information.| 128 129- Return value 130 | Type| Description| 131 | -------- | -------- | 132 | Promise<void> | Promise used to return the result.| 133 134- Example 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 148Defines distributed OS account information. 149 150**System capability**: SystemCapability.Account.OsAccount 151 152| Name| Type| Mandatory| Description| 153| -------- | -------- | -------- | -------- | 154| name | string | Yes| Name of a distributed account. It must be a non-null string.| 155| id | string | Yes| UID of a distributed account. It must be a non-null string.| 156| event | string | Yes| Login state of a distributed account. The state can be login, logout, token invalid, or logoff, which correspond to the following strings respectively:<br>- Ohos.account.event.LOGIN<br>- Ohos.account.event.LOGOUT<br>- Ohos.account.event.TOKEN_INVALID<br>- Ohos.account.event.LOGOFF | 157| scalableData | object | No| Extended information about a distributed account. Customized information is passed in key-value pairs.<br>Note: This parameter is reserved and not used in query and update methods.| 158