帐号子系统changeLog

cl.account_os_account.1 createOsAccountForDomain错误码变更

使用createOsAccountForDomain重复创建域帐号时,变更前返回的错误码为12300001,变更后返回的错误码为12300004。 错误信息由通用系统报错细化为帐号已存在报错。

变更影响

基于此前版本开发的应用,需适配变更后的错误码,否则会影响原有业务逻辑。

关键接口/组件变更

  • AccountManager
    • createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>);
    • createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>;

适配指导

重复创建域帐号的示例代码如下:

import account_osAccount from "@ohos.account.osAccount"

let accountMgr = account_osAccount.getAccountManager();
let domainInfo = {
  accountName: "zhangsan",
  domain: "china.example.com"
};
try {
  await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo);
  await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo);
} catch (err) {
  console.log("activateOsAccount err: " + JSON.stringify(err)); // error.code = 12300004;
}

cl.account_os_account.2 应用帐号getAllAccounts接口权限场景变更

应用使用getAllAccounts接口查询自己可访问的帐号列表时,不需要申请权限ohos.permission.GET_ALL_APP_ACCOUNTS。

变更影响

基于此后版本开发的应用,查询自己可访问的帐号列表时,无需申请权限。

关键接口/组件变更

  • AccountManager
    • getAllAccounts(callback: AsyncCallback<Array<AppAccountInfo>>): void;
    • getAllAccounts(): Promise<Array<AppAccountInfo>>;

适配指导

应用未申请ohos.permission.GET_ALL_APP_ACCOUNTS,查询自己可访问的帐号列表示例代码如下:

import account_appAccount from "@ohos.account.appAccount"

let accountMgr = account_appAccount.createAppAccountManager();
try {
  await accountMgr.addAccount("accessibleAccount_promise_nopermission");
  var data = await accountMgr.getAllAccounts();
  if (data[0].name == "accessibleAccount_promise_nopermission") {
    console.log("getAllAccounts successfully");
  }
} catch (err) {
  console.log("getAllAccounts err: " + JSON.stringify(err));
}

cl.account_os_account.3 应用帐号getAccountsByOwner接口权限场景变更

应用使用getAccountsByOwner接口查询可访问的指定应用的帐号列表时,不需要申请权限ohos.permission.GET_ALL_APP_ACCOUNTS。

变更影响

基于此后版本开发的应用,查询指定应用可访问的帐号列表时,无需申请权限。

关键接口/组件变更

  • AccountManager
    • getAccountsByOwner(owner: string, callback: AsyncCallback<Array<AppAccountInfo>>): void;
    • getAccountsByOwner(owner: string): Promise<Array<AppAccountInfo>>;

适配指导

应用未申请ohos.permission.GET_ALL_APP_ACCOUNTS,查询指定应用可访问的帐号列表示例代码如下:

import account_appAccount from "@ohos.account.appAccount"

let accountMgr = account_appAccount.createAppAccountManager();
try {
  var ownerName = "com.example.owner";
  var data = await accountMgr.getAllAccounts(ownerName);
} catch (err) {
  console.log("getAllAccounts err: " + JSON.stringify(err));
}