# 帐号子系统 - [简介](#section11660541593) - [组件架构图](#section1412183212132) - [目录](#section161941989596) - [说明](#section1312121216216) - [接口说明](#section1551164914237) - [相关仓](#section1371113476307) ## 简介 在标准系统上,帐号子系统主要提供系统帐号生命周期管理,分布式帐号登录状态管理和应用帐号添加删除等基础管理能力。 ## 架构图 **图 1** 帐号子系统架构图 ![](figures/zh-cn_image_account_struct.png) ## 目录 ``` /base/account/os_account ├── figures README图片 ├── frameworks 帐号子系统kit代码 │ ├── appaccount 应用帐号内部API代码 │ │ └── native 应用帐号内部API实现代码 │ ├── common 共通模块代码 │ │ ├── account_error 错误码 │ │ ├── database 数据库基础代码 │ │ ├── log 打印日志代码 │ │ ├── perf_stat 性能统计 │ │ └── test 共通模块测试代码 │ ├── ohosaccount 分布式帐号内部API代码 │ │ ├── native 分布式帐号内部API实现代码 │ │ └── test 分布式帐号内部API测试代码 │ └── osaccount 系统帐号内部API代码 │ ├── core 系统帐号ipc │ └── native 系统帐号内部API实现代码 ├── interfaces 帐号子系统对外公开的API │ ├── innerkits 内部API头文件 │ │ ├── appaccount 应用帐号内部API头文件 │ │ ├── ohosaccount 分布式帐号内部API头文件 │ │ └── osaccount 系统帐号内部API头文件 │ └── kits 对外API封装 │ └── napi 帐号子系统对外API封装代码 ├── sa_profile 帐号子系统SA配置文件定义目录 ├── services 帐号子系统accountmgr服务代码 │ └── accountmgr 帐号子系统服务代码 │ ├── include 帐号子系统服务代码头文件 │ ├── src 帐号子系统服务代码源文件 │ └── test 帐号子系统服务测试 ├── test 测试代码 │ ├── resource 测试资源文件 │ └── systemtest 系统测试代码 └── tools acm工具代码 ├── acm acm工具代码 │ ├── include acm工具代码头文件 │ └── src acm工具代码源文件 └── test acm工具测试代码 ``` ## 说明 ### 接口说明 #### 1,分布式帐号 分布式帐号的功能主要包括查询和更新帐号登录状态,仅支持系统应用。 **表 1** 分布式帐号模块说明

模块名

描述

distributedAccount

提供分布式帐号模块管理方法

**表 2** 分布式帐号类说明

类名

描述

DistributedAccountAbility

提供查询和更新分布式帐号登录状态方法

DistributedInfo

提供分布式帐号信息,主要包括帐号名、帐号UID和帐号登录状态。

**表 3** 分布式帐号模块方法说明

方法

描述

function getDistributedAccountAbility(): DistributedAccountAbility

获取分布式帐号单实例对象

**表 4** DistributedAccountAbility方法说明

方法

描述

queryOsAccountDistributedInfo(callback: AsyncCallback<DistributedInfo>): void

查询分布式帐号信息

queryOsAccountDistributedInfo(): Promise<DistributedInfo>

查询分布式帐号信息

updateOsAccountDistributedInfo(accountInfo: DistributedInfo, callback: AsyncCallback<boolean>): void

更新分布式帐号信息

updateOsAccountDistributedInfo(accountInfo: DistributedInfo): Promise<boolean>

更新分布式帐号信息

#### 2,应用帐号 应用帐号的主要功能包括应用帐号的添加、删除,查询,修改,授权等功能,提供帐号数据落盘和数据同步的能力。 **表 1** 应用帐号模块说明

模块名

描述

appAccount

提供应用帐号模块管理方法

**表 2** 应用帐号类说明

类名

描述

AppAccountManager

提供添加、删除,查询,修改,授权等应用帐号相关方法

AppAccountInfo

提供应用帐号信息,包括应用帐号名称,所属包名等。

OAuthTokenInfo

提供应用帐号OAuth令牌信息,包括令牌的鉴权类型和取值。

AuthenticatorInfo

提供应用帐号OAuth认证器信息,包括所属包名、图标标识、标签标识等。

AuthenticatorCallback

提供鉴权结果通知、鉴权请求跳转等应用帐号OAuth认证器回调方法。

Authenticator

提供隐式添加帐号、鉴权等应用帐号OAuth认证器方法。

Constants

提供键名、操作名等常量。

ResultCode

提供应用帐号接口返回码。

**表 3** 应用帐号模块方法说明

方法

描述

function createAppAccountManager(): AppAccountManager

获取应用帐号单实例对象

**表 4** AppAccountManager方法说明

方法

描述

addAccount(name: string, callback: AsyncCallback<void>): void;

添加应用帐号

addAccountImplicitly(owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

隐式添加应用帐号

deleteAccount(name: string, callback: AsyncCallback<void>): void;

删除应用帐号

enableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;

应用帐号信息访问授权

disableAppAccess(name: string, bundleName: string, callback: AsyncCallback<void>): void;

应用帐号信息访问取消授权

checkAppAccountSyncEnable(name: string, callback: AsyncCallback<boolean>): void;

检查应用帐号同步状态

setAccountCredential(name: string, credentialType: string, credential: string,callback: AsyncCallback<void>): void;

设置应用帐号认证信息

setAccountExtraInfo(name: string, extraInfo: string, callback: AsyncCallback<void>): void;

设置应用帐号附加信息

setAppAccountSyncEnable(name: string, isEnable: boolean, callback: AsyncCallback<void>): void;

设置应用帐号同步状态

setAssociatedData(name: string, key: string, value: string, callback: AsyncCallback<void>): void;

设置应用帐号关联数据

getAllAccessibleAccounts(callback: AsyncCallback <Array< AppAccountInfo>>): void;

查询授权过的应用帐号信息

getAllAccounts(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void;

查询指定包名下应用帐号信息

getAccountCredential(name: string, credentialType: string, callback: AsyncCallback<string>): void;

查询应用帐号认证信息

getAccountExtraInfo(name: string, callback: AsyncCallback<string>): void;

查询应用帐号附加信息

getAssociatedData(name: string, key: string, callback: AsyncCallback<string>): void;

查询应用帐号关联信息

on(type: 'change', owners: Array<string>, callback: Callback<Array<AppAccountInfo>>): void;

订阅应用帐号信息变化

off(type: 'change', callback?: Callback<void>): void;

取消订阅应用帐号信息变化

authenticate(name: string, owner: string, authType: string, options: {[key: string]: any}, callback: AuthenticatorCallback): void;

鉴权应用帐号以获取OAuth令牌

getOAuthToken(name: string, owner: string, authType: string, callback: AsyncCallback<string>): void;

查询应用帐号OAuth令牌

setOAuthToken(name: string, authType: string, token: string, callback: AsyncCallback<void>): void;

设置应用帐号OAuth令牌

deleteOAuthToken(name: string, owner: string, authType: string, token: string, callback: AsyncCallback<void>): void;

删除应用帐号OAuth令牌

setOAuthTokenVisibility(name: string, authType: string, bundleName: string, isVisible: boolean, callback: AsyncCallback<void>): void;

设置应用帐号OAuth令牌的可见性

checkOAuthTokenVisibility(name: string, authType: string, bundleName: string, callback: AsyncCallback<boolean>): void;

检查应用帐号OAuth令牌的可见性

getAllOAuthTokens(name: string, owner: string, callback: AsyncCallback<Array<OAuthTokenInfo>>): void;

查询所有可见的应用帐号OAuth令牌

getOAuthList(name: string, authType: string, callback: AsyncCallback<Array<string>>): void;

查询应用帐号OAuth令牌的授权列表

getAuthenticatorCallback(sessionId: string, callback: AsyncCallback<AuthenticatorCallback>): void;

查询应用帐号OAuth认证器回调

getAuthenticatorInfo(owner: string, callback: AsyncCallback<AuthenticatorInfo>): void;

查询应用帐号OAuth认证器信息

#### 3,系统帐号 系统帐号的主要功能包括系统帐号的添加、删除,查询,设置,订阅,启动等功能,提供系统帐号数据落盘的能力。 **表 1** 系统帐号模块说明

模块名

描述

osAccount

提供系统帐号模块管理方法

**表 2** 系统帐号类说明

类名

描述

AccountManager

提供添加、删除,查询,设置,订阅,启动系统帐号等相关方法

OsAccountInfo

提供系统帐号信息,包括系统帐号名称,ID等属性。

DomainAccountInfo

提供域帐号信息,包括域名,域帐号名等属性。

OsAccountType

提供系统帐号类型,包括管理员,普通,访客等类型。

**表 3** 系统帐号模块方法说明

方法

描述

function getAccountManager(): AccountManager

获取系统帐号单实例对象

**表 4** AccountManager方法说明

方法

描述

activateOsAccount(localId: number, callback: AsyncCallback<void>): void;

激活指定系统帐号

activateOsAccount(localId: number): Promise<void>;

激活指定系统帐号

isMultiOsAccountEnable(callback: AsyncCallback<boolean>): void;

判断是否支持多系统帐号

isMultiOsAccountEnable(): Promise<boolean>;

判断是否支持多系统帐号

isOsAccountActived(localId: number, callback: AsyncCallback<boolean>): void;

判断指定系统帐号是否处于激活状态

isOsAccountActived(localId: number): Promise<boolean>;

判断指定系统帐号是否处于激活状态

isOsAccountConstraintEnable(localId: number, constraint: string, callback: AsyncCallback<boolean>): void;

判断指定系统帐号是否具有指定约束

isOsAccountConstraintEnable(localId: number, constraint: string): Promise<boolean>;

判断指定系统帐号是否具有指定约束

isTestOsAccount(callback: AsyncCallback<boolean>): void;

检查当前系统帐号是否为测试帐号

isTestOsAccount(): Promise<boolean>;

检查当前系统帐号是否为测试帐号

isOsAccountVerified(callback: AsyncCallback<boolean>): void;

检查当前系统帐号是否已验证

isOsAccountVerified(localId: number, callback: AsyncCallback<boolean>): void;

检查指定系统帐号是否已验证

isOsAccountVerified(localId?: number): Promise<boolean>;

检查指定系统帐号是否已验证

removeOsAccount(localId: number, callback: AsyncCallback<void>): void;

删除指定系统帐号

removeOsAccount(localId: number): Promise<void>;

删除指定系统帐号

setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean, callback: AsyncCallback<void>): void;

为指定系统帐号设置/删除约束

setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean): Promise<void>;

为指定系统帐号设置/删除约束

setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void;

设置指定系统帐号的帐号名

setOsAccountName(localId: number, localName: string): Promise<void>;

设置指定系统帐号的帐号名

getCreatedOsAccountsCount(callback: AsyncCallback<number>): void;

获取已创建的系统帐号数量

getCreatedOsAccountsCount(): Promise<number>;

获取已创建的系统帐号数量

getOsAccountLocalIdFromProcess(callback: AsyncCallback<number>): void;

获取当前进程所属的系统帐号的帐号ID

getOsAccountLocalIdFromProcess(): Promise<number>;

获取当前进程所属的系统帐号的帐号ID

getOsAccountLocalIdFromUid(uid: number, callback: AsyncCallback<number>): void;

从进程uid中获取该uid所属的系统帐号的帐号ID

getOsAccountLocalIdFromUid(uid: number): Promise<number>;

从进程uid中获取该uid所属的系统帐号的帐号ID

getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback<number>): void;

根据域帐号信息,获取与其关联的系统帐号的帐号ID

getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise<number>;

根据域帐号信息,获取与其关联的系统帐号的帐号ID

queryMaxOsAccountNumber(callback: AsyncCallback<number>): void;

查询允许创建的系统帐号的最大数量

queryMaxOsAccountNumber(): Promise<number>;

查询允许创建的系统帐号的最大数量

getOsAccountAllConstraints(localId: number, callback: AsyncCallback<Array<string>>): void;

获取指定系统帐号的全部约束

getOsAccountAllConstraints(localId: number): Promise<Array<string>>;

获取指定系统帐号的全部约束

queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void;

查询已创建的所有系统帐号的信息列表

queryAllCreatedOsAccounts(): Promise<Array<OsAccountInfo>>;

查询已创建的所有系统帐号的信息列表

queryActivatedOsAccountIds(callback: AsyncCallback<Array<number>>): void;

查询当前处于激活状态的系统帐号的ID列表

queryActivatedOsAccountIds(): Promise<Array<number>>;

查询当前处于激活状态的系统帐号的ID列表

createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void;

创建一个系统帐号

createOsAccount(localName: string, type: OsAccountType): Promise<OsAccountInfo>;

创建一个系统帐号

createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void;

根据域帐号信息,创建一个系统帐号并将其与域帐号关联

createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>;

根据域帐号信息,创建一个系统帐号并将其与域帐号关联

queryCurrentOsAccount(callback: AsyncCallback<OsAccountInfo>): void;

查询当前进程所属的系统帐号的信息

queryCurrentOsAccount(): Promise<OsAccountInfo>;

查询当前进程所属的系统帐号的信息

queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void;

查询指定系统帐号的信息

queryOsAccountById(localId: number): Promise<OsAccountInfo>;

查询指定系统帐号的信息

getOsAccountTypeFromProcess(callback: AsyncCallback<OsAccountType>): void;

查询当前进程所属的系统帐号的帐号类型

getOsAccountTypeFromProcess(): Promise<OsAccountType>;

查询当前进程所属的系统帐号的帐号类型

getDistributedVirtualDeviceId(callback: AsyncCallback<string>): void;

获取分布式虚拟设备ID

getDistributedVirtualDeviceId(): Promise<string>;

获取分布式虚拟设备ID

getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void;

获取指定系统帐号的头像信息

getOsAccountProfilePhoto(localId: number): Promise<string>;

获取指定系统帐号的头像信息

setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void;

为指定系统帐号设置头像信息

setOsAccountProfilePhoto(localId: number, photo: string): Promise<void>;

为指定系统帐号设置头像信息

getOsAccountLocalIdBySerialNumber(serialNumber: number, callback: AsyncCallback<number>): void;

通过SN码查询与其关联的系统帐号的帐号ID

getOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number>;

通过SN码查询与其关联的系统帐号的帐号ID

getSerialNumberByOsAccountLocalId(localId: number, callback: AsyncCallback<number>): void;

通过系统帐号ID获取与该系统帐号关联的SN码

getSerialNumberByOsAccountLocalId(localId: number): Promise<number>;

通过系统帐号ID获取与该系统帐号关联的SN码

on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void;

订阅系统帐号的变动信息

off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void;

取消订阅系统帐号的变动信息

## ## 相关仓 帐号子系统 **account\_os\_account**