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