# @ohos.account.distributedAccount (分布å¼è´¦å·ç®¡ç†) æœ¬æ¨¡å—æä¾›ç®¡ç†åˆ†å¸ƒå¼è´¦å·çš„一些基础功能,主è¦åŒ…括查询和更新账å·ç™»å½•状æ€ã€‚ > **说明:** > > 本模å—首批接å£ä»ŽAPI version 7开始支æŒã€‚åŽç»ç‰ˆæœ¬çš„æ–°å¢žæŽ¥å£ï¼Œé‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°æŽ¥å£çš„起始版本。 ## å¯¼å…¥æ¨¡å— ```ts import { distributedAccount } from '@kit.BasicServicesKit'; ``` ## distributedAccount.getDistributedAccountAbility getDistributedAccountAbility(): DistributedAccountAbility 获å–分布å¼è´¦å·å•实例对象。 **系统能力:** SystemCapability.Account.OsAccount **返回值:** | 类型 | 说明 | | -------- | -------- | | [DistributedAccountAbility](#distributedaccountability) | 返回一个实例,实例æä¾›æŸ¥è¯¢å’Œæ›´æ–°åˆ†å¸ƒå¼è´¦å·ç™»å½•çŠ¶æ€æ–¹æ³•。 | **示例:** ```ts const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); ``` ## DistributedAccountAbility æä¾›æŸ¥è¯¢å’Œæ›´æ–°åˆ†å¸ƒå¼è´¦å·ç™»å½•çŠ¶æ€æ–¹æ³•(需è¦å…ˆèŽ·å–分布å¼è´¦å·çš„å•实例对象)。 ### getOsAccountDistributedInfo<sup>9+</sup> getOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void 获å–分布å¼è´¦å·ä¿¡æ¯ï¼Œä½¿ç”¨callback异æ¥å›žè°ƒã€‚ **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰ 或 ohos.permission.GET_DISTRIBUTED_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰ 或 ohos.permission.DISTRIBUTED_DATASYNC **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[DistributedInfo](#distributedinfo)> | 是 | å›žè°ƒå‚æ•°ã€‚当获å–分布å¼è´¦å·ä¿¡æ¯æˆåŠŸï¼Œerr为undefined,data为获å–到的分布å¼è´¦å·ä¿¡æ¯å¯¹è±¡ï¼›å¦åˆ™ä¸ºé”™è¯¯å¯¹è±¡ã€‚ | **错误ç :** | 错误ç ID | 错误信æ¯| | -------- | ------------------- | | 201 | Permission denied.| | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 12300001 | System service exception. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); try { accountAbility.getOsAccountDistributedInfo( (err: BusinessError, data: distributedAccount.DistributedInfo) => { if (err) { console.log('getOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } else { console.log('distributed information: ' + JSON.stringify(data)); } }); } catch (err) { console.log('getOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } ``` ### getOsAccountDistributedInfo<sup>9+</sup> getOsAccountDistributedInfo(): Promise<DistributedInfo> 获å–分布å¼è´¦å·ä¿¡æ¯ã€‚使用Promise异æ¥å›žè°ƒã€‚ **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰ 或 ohos.permission.GET_DISTRIBUTED_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰ 或 ohos.permission.DISTRIBUTED_DATASYNC **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[DistributedInfo](#distributedinfo)> | Promise对象,返回分布å¼è´¦å·ä¿¡æ¯å¯¹è±¡ã€‚ | **错误ç :** | 错误ç ID | 错误信æ¯| | -------- | ------------------- | | 201 | Permission denied.| | 12300001 | System service exception. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); try { accountAbility.getOsAccountDistributedInfo().then((data: distributedAccount.DistributedInfo) => { console.log('distributed information: ' + JSON.stringify(data)); }).catch((err: BusinessError) => { console.log('getOsAccountDistributedInfo exception: ' + JSON.stringify(err)); }); } catch (err) { console.log('getOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } ``` ### queryOsAccountDistributedInfo<sup>(deprecated)</sup> queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void 获å–分布å¼è´¦å·ä¿¡æ¯ã€‚使用callback异æ¥å›žè°ƒã€‚ > **说明:** > > 从 API version 7开始支æŒï¼Œä»ŽAPI version 9开始废弃。建议使用[getOsAccountDistributedInfo](#getosaccountdistributedinfo9)。 **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_LOCAL_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰æˆ– ohos.permission.DISTRIBUTED_DATASYNC **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | callback | AsyncCallback<[DistributedInfo](#distributedinfo)> | 是 | 回调函数。当获å–分布å¼è´¦å·ä¿¡æ¯æˆåŠŸï¼Œerr为undefined,data为获å–到的分布å¼è´¦å·ä¿¡æ¯å¯¹è±¡ï¼›å¦åˆ™ä¸ºé”™è¯¯å¯¹è±¡ã€‚ | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); accountAbility.queryOsAccountDistributedInfo( (err: BusinessError, data: distributedAccount.DistributedInfo) => { if (err) { console.log('queryOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } else { console.log('distributed information: ' + JSON.stringify(data)); } }); ``` ### queryOsAccountDistributedInfo<sup>(deprecated)</sup> queryOsAccountDistributedInfo(): Promise<DistributedInfo> 获å–分布å¼è´¦å·ä¿¡æ¯ã€‚使用Promise异æ¥å›žè°ƒã€‚ > **说明:** > > 从 API version 7开始支æŒï¼Œä»ŽAPI version 9开始废弃。建议使用[getOsAccountDistributedInfo](#getosaccountdistributedinfo9-1)。 **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_LOCAL_ACCOUNTS(仅系统应用å¯ç”³è¯·ï¼‰æˆ– ohos.permission.DISTRIBUTED_DATASYNC **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<[DistributedInfo](#distributedinfo)> | Promise对象,返回分布å¼è´¦å·ä¿¡æ¯å¯¹è±¡ã€‚ | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); accountAbility.queryOsAccountDistributedInfo().then((data: distributedAccount.DistributedInfo) => { console.log('distributed information: ' + JSON.stringify(data)); }).catch((err: BusinessError) => { console.log('queryOsAccountDistributedInfo exception: ' + JSON.stringify(err)); }); ``` ### setOsAccountDistributedInfo<sup>9+</sup> setOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<void>): void 更新分布å¼è´¦å·ä¿¡æ¯ã€‚使用callback异æ¥å›žè°ƒã€‚ **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS,该æƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布å¼è´¦å·ä¿¡æ¯ã€‚ | | callback | AsyncCallback<void> | 是 | 回调函数。当更新分布å¼è´¦å·ä¿¡æ¯æˆåŠŸæ—¶ï¼Œerr为undefined,å¦åˆ™ä¸ºé”™è¯¯å¯¹è±¡ã€‚ | **错误ç :** | 错误ç ID | 错误信æ¯| | -------- | ------------------- | | 201 | Permission denied.| | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 12300001 | System service exception. | | 12300002 | Invalid accountInfo. | | 12300003 | Account not found. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); let accountInfo: distributedAccount.DistributedInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; try { accountAbility.setOsAccountDistributedInfo(accountInfo, (err: BusinessError) => { if (err) { console.log('setOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } else { console.log('setOsAccountDistributedInfo successfully'); } }); } catch (err) { console.log('setOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } ``` ### setOsAccountDistributedInfo<sup>9+</sup> setOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<void> 更新分布å¼è´¦å·ä¿¡æ¯ã€‚使用Promise异æ¥å›žè°ƒã€‚ **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS,该æƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布å¼è´¦æˆ·ä¿¡æ¯ã€‚ | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<void> | Promiseå¯¹è±¡ï¼Œæ— è¿”å›žç»“æžœçš„Promise对象。 | **错误ç :** | 错误ç ID | 错误信æ¯| | -------- | ------------------- | | 201 | Permission denied.| | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | | 12300001 | System service exception. | | 12300002 | Invalid accountInfo. | | 12300003 | Account not found. | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); let accountInfo: distributedAccount.DistributedInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; try { accountAbility.setOsAccountDistributedInfo(accountInfo).then(() => { console.log('setOsAccountDistributedInfo successfully'); }).catch((err: BusinessError) => { console.log('setOsAccountDistributedInfo exception: ' + JSON.stringify(err)); }); } catch (err) { console.log('setOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } ``` ### updateOsAccountDistributedInfo<sup>(deprecated)</sup> updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<void>): void 更新分布å¼è´¦å·ä¿¡æ¯ã€‚使用callback异æ¥å›žè°ƒã€‚ > **说明:** > > 从 API version 7开始支æŒï¼Œä»ŽAPI version 9开始废弃。建议使用[setOsAccountDistributedInfo](#setosaccountdistributedinfo9)。 **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该æƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布å¼è´¦å·ä¿¡æ¯ã€‚ | | callback | AsyncCallback<void> | 是 | 回调函数。当更新分布å¼è´¦å·ä¿¡æ¯æˆåŠŸæ—¶ï¼Œerr为undefined,å¦åˆ™ä¸ºé”™è¯¯å¯¹è±¡ã€‚ | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); let accountInfo: distributedAccount.DistributedInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; accountAbility.updateOsAccountDistributedInfo(accountInfo, (err: BusinessError) => { if (err) { console.log('queryOsAccountDistributedInfo exception: ' + JSON.stringify(err)); } else { console.log('queryOsAccountDistributedInfo successfully'); } }); ``` ### updateOsAccountDistributedInfo<sup>(deprecated)</sup> updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<void> 更新分布å¼è´¦å·ä¿¡æ¯ã€‚使用Promise异æ¥å›žè°ƒã€‚ > **说明:** > > 从 API version 7开始支æŒï¼Œä»ŽAPI version 9开始废弃。建议使用[setOsAccountDistributedInfo](#setosaccountdistributedinfo9-1)。 **系统能力:** SystemCapability.Account.OsAccount **éœ€è¦æƒé™ï¼š** ohos.permission.MANAGE_LOCAL_ACCOUNTS,该æƒé™ä»…系统应用å¯ç”³è¯·ã€‚ **傿•°ï¼š** | 傿•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | accountInfo | [DistributedInfo](#distributedinfo) | 是 | 分布å¼è´¦æˆ·ä¿¡æ¯ã€‚ | **返回值:** | 类型 | 说明 | | -------- | -------- | | Promise<void> | Promiseå¯¹è±¡ï¼Œæ— è¿”å›žç»“æžœçš„Promise对象。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; const accountAbility: distributedAccount.DistributedAccountAbility = distributedAccount.getDistributedAccountAbility(); let accountInfo: distributedAccount.DistributedInfo = {id: '12345', name: 'ZhangSan', event: 'Ohos.account.event.LOGIN'}; accountAbility.updateOsAccountDistributedInfo(accountInfo).then(() => { console.log('updateOsAccountDistributedInfo successfully'); }).catch((err: BusinessError) => { console.log('updateOsAccountDistributedInfo exception: ' + JSON.stringify(err)); }); ``` ## DistributedInfo æä¾›æ“作系统账å·çš„分布å¼ä¿¡æ¯ã€‚ **系统能力:** SystemCapability.Account.OsAccount | åç§° | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | name | string |是 | 分布å¼è´¦å·å称,éžç©ºå—符串。 | | id | string |是 | 分布å¼è´¦å·UID,éžç©ºå—符串。 | | event | string |是 | 分布å¼è´¦å·ç™»å½•状æ€ï¼ŒåŒ…括登录ã€ç™»å‡ºã€Token失效和注销,分别对应以下å—符串:<br/>- Ohos.account.event.LOGIN<br/>- Ohos.account.event.LOGOUT<br/>- Ohos.account.event.TOKEN_INVALID<br/>- Ohos.account.event.LOGOFF | | nickname<sup>9+</sup> | string |å¦ | 分布å¼è´¦å·çš„æ˜µç§°ï¼Œé»˜è®¤ä¸ºç©ºã€‚ | | avatar<sup>9+</sup> | string |å¦ | 分布å¼è´¦å·çš„头åƒï¼Œé»˜è®¤ä¸ºç©ºã€‚ | | status<sup>10+</sup> | [DistributedAccountStatus](#distributedaccountstatus10) |å¦ | 分布å¼è´¦å·çš„状æ€ï¼Œæžšä¸¾ç±»åž‹ï¼Œé»˜è®¤ä¸ºæœªç™»å½•状æ€ã€‚ | | scalableData<sup>8+</sup> | object |å¦ | 分布å¼è´¦å·æ‰©å±•ä¿¡æ¯ï¼Œæ ¹æ®ä¸šåŠ¡æ‰€éœ€ï¼Œä»¥k-vå½¢å¼ä¼ 递定制化信æ¯ï¼Œé»˜è®¤ä¸ºç©ºã€‚| ## DistributedAccountStatus<sup>10+</sup> 表示分布å¼è´¦å·çŠ¶æ€æžšä¸¾ã€‚ **系统能力:** 以下å„项对应的系统能力å‡ä¸ºSystemCapability.Account.OsAccount | åç§° | 值 | 说明 | | ---- | ------ | ----------- | | NOT_LOGGED_IN | 0 | 未登录状æ€ã€‚ | | LOGGED_IN | 1 | 已登录状æ€ã€‚ |