1# 帐号子系统changeLog
2
3## cl.account_os_account.1 变更错误码定义及其返回方式
4
5针对帐号子系统API存在错误码定义不统一和抛出方式不符合OpenHarmony错误码规范的问题,从API9开始作以下变更:
6
7- 新增统一的错误码定义:
8  - [帐号公共错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md)
9  - [应用帐号错误码](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/errorcodes/errorcode-account.md)
10
11- 按以下方式返回错误码:
12  - 异步接口:错误信息通过AsyncCallback或Promise的error对象返回。其中,参数类型和数量错误信息,通过抛出异常的方式返回。
13  - 同步接口:错误信息通过抛出异常的方式返回。
14
15**变更影响**
16
17基于此前版本开发的应用,需适配变更后的新错误码和错误信息返回方式,否则会影响原有业务逻辑。
18
19**关键接口/组件变更**
20
21以下接口涉及新错误码和错误信息返回方式变更:
22  - class AccountManager
23    - activateOsAccount(localId: number, callback: AsyncCallback<void>): void;
24    - removeOsAccount(localId: number, callback: AsyncCallback<void>): void;
25    - setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean, callback: AsyncCallback<void>): void;
26    - setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void;
27    - queryMaxOsAccountNumber(callback: AsyncCallback<number>): void;
28    - queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void;
29    - createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void;
30    - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void;
31    - queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void;
32    - getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void;
33    - setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void;
34    - on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void;
35    - off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void;
36    - isMainOsAccount(callback: AsyncCallback<boolean>): void;
37    - queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void;
38  - class UserAuth
39    - constructor();
40    - getVersion(): number;
41    - getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number;
42    - getProperty(request: GetPropertyRequest, callback: AsyncCallback<ExecutorProperty>): void;
43    - setProperty(request: SetPropertyRequest, callback: AsyncCallback<number>): void;
44    - auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
45    - authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;
46    - cancelAuth(contextID: Uint8Array): number;
47  - class PINAuth
48    - constructor();
49    - registerInputer(inputer: IInputer): boolean;
50    - unregisterInputer(authType: AuthType): void;
51  - class UserIdentityManager
52    - constructor();
53    - openSession(callback: AsyncCallback<Uint8Array>): void;
54    - addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
55    - updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void;
56    - closeSession(): void;
57    - cancel(challenge: Uint8Array): number;
58    - delUser(token: Uint8Array, callback: IIdmCallback): void;
59    - delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void;
60    - getAuthInfo(callback: AsyncCallback<Array<EnrolledCredInfo>>): void;
61  - interface IInputData
62    - onSetData: (authSubType: AuthSubType, data: Uint8Array) => void;
63
64**适配指导**
65
66异步接口的错误信息处理逻辑以activateOsAccount为例,示例代码如下:
67
68```ts
69import account_osAccount from "@ohos.account.osAccount"
70let accountMgr = account_osAccount.getAccountManager()
71let callbackFunc = (err) => {
72  if (err != null) {  // handle the bussiness error
73    console.log("account_osAccount failed, error: " + JSON.stringify(err));
74  } else {
75    console.log("account_osAccount successfully");
76  }
77}
78try {
79  accountMgr.activateOsAccount("100", callbackFunc);
80} catch (err) {  // handle the parameter type error
81  console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err));
82}
83try {
84  accountMgr.activateOsAccount();
85} catch (err) {  // handle the parameter number error
86  console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err));
87}
88```
89
90同步接口的错误信息处理以registerInputer为例,示例代码如下:
91
92```ts
93import account_osAccount from "@ohos.account.osAccount"
94let pinAuth = new account_osAccount.PINAuth()
95try {
96    pinAuth.registerInputer({})
97} catch (err) {  // handle the parameter type error
98  console.log("account_osAccount failed for incorrect parameter type, error: " + JSON.stringify(err));
99}
100try {
101    pinAuth.registerInputer()
102} catch (err) {  // handle the parameter number error
103  console.log("account_osAccount failed for incorrect parameter number, error: " + JSON.stringify(err));
104}
105```
106