420f409f创建于 2025年5月16日历史提交

@ohos.account.osAccount (系统账号管理)(系统接口)

本模块提供管理系统账号的基础能力,包括系统账号的添加、删除、查询、设置、订阅、启动等功能。

说明:

  • 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
  • 当前页面仅包含本模块的系统接口,其他公开接口参见ohos.account.osAccount (系统账号管理)

导入模块

import { osAccount } from '@kit.BasicServicesKit';

AccountManager

系统账号管理类。

activateOsAccount

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

激活指定系统账号。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
callback AsyncCallback<void> 回调函数。当账号激活成功时,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.
12300008 Restricted Account.
12300010 Service busy. Possible causes: The target account is being operated.
12300016 The number of logged in accounts reaches the upper limit.

示例: 激活ID为100的系统账号

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.activateOsAccount(localId, (err: BusinessError)=>{
    if (err) {
      console.error(`activateOsAccount failed, code is ${err.code}, message is ${err.message}`);
    } else {
      console.log('activateOsAccount successfully');
    }
  });
} catch (err) {
  console.error('activateOsAccount failed, error:' + JSON.stringify(err));
}

activateOsAccount

activateOsAccount(localId: number): Promise<void>

激活指定系统账号。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.
12300008 Restricted Account.
12300010 Service busy. Possible causes: The target account is being operated.
12300016 The number of logged in accounts reaches the upper limit.

示例: 激活ID为100的系统账号

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.activateOsAccount(localId).then(() => {
    console.log('activateOsAccount successfully');
  }).catch((err: BusinessError) => {
    console.error('activateOsAccount failed, err:' + JSON.stringify(err));
  });
} catch (e) {
  console.error('activateOsAccount exception: ' + JSON.stringify(e));
}

deactivateOsAccount12+

deactivateOsAccount(localId: number): Promise<void>

注销(退出登录)指定系统账号。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.
12300008 Restricted Account.
12300010 Service busy. Possible causes: The target account is being operated.

示例: 注销ID为100的系统账号

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.deactivateOsAccount(localId).then(() => {
    console.log('deactivateOsAccount successfully');
  }).catch((err: BusinessError) => {
    console.error('deactivateOsAccount failed, err:' + JSON.stringify(err));
  });
} catch (e) {
  console.error('deactivateOsAccount exception: ' + JSON.stringify(e));
}

isOsAccountActivated11+

isOsAccountActivated(localId: number): Promise<boolean>

判断指定系统账号是否处于激活状态。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示账号已激活;返回false表示账号未激活。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.

示例: 判断ID为100的系统账号是否处于激活状态

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.isOsAccountActivated(localId).then((isActivated: boolean) => {
    console.log('isOsAccountActivated successfully, isActivated: ' + isActivated);
  }).catch((err: BusinessError) => {
    console.error('isOsAccountActivated failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('isOsAccountActivated exception: ' + JSON.stringify(err));
}

isOsAccountConstraintEnabled11+

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

判断指定系统账号是否使能指定约束。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
constraint string 指定的约束名称。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示已使能指定的约束;返回false表示未使能指定的约束。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.

示例: 判断ID为100的系统账号是否有禁止使用Wi-Fi的约束

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let constraint: string = 'constraint.wifi';
try {
  accountManager.isOsAccountConstraintEnabled(localId, constraint).then((isEnabled: boolean) => {
    console.log('isOsAccountConstraintEnabled successfully, isEnabled: ' + isEnabled);
  }).catch((err: BusinessError) => {
    console.error('isOsAccountConstraintEnabled failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('isOsAccountConstraintEnabled exception: ' + JSON.stringify(err));
}

isOsAccountUnlocked11+

isOsAccountUnlocked(localId: number): Promise<boolean>

检查指定系统账号是否已验证。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。不填则检查当前系统账号是否已验证。

返回值:

类型 说明
Promise<boolean> Promise对象。返回true表示当前账号已认证解锁;返回false表示当前账号未认证解锁。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.isOsAccountUnlocked(localId).then((isVerified: boolean) => {
    console.log('isOsAccountUnlocked successfully, isVerified: ' + isVerified);
  }).catch((err: BusinessError) => {
    console.error('isOsAccountUnlocked failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('isOsAccountUnlocked exception: ' + JSON.stringify(err));
}

removeOsAccount

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

删除指定系统账号。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
callback AsyncCallback<void> 回调函数。如果删除账号成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.
12300008 Restricted Account.
12300010 Service busy. Possible causes: The target account is being operated.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let accountName: string = 'testAccountName';
try {
  accountManager.createOsAccount(accountName, osAccount.OsAccountType.NORMAL,
    (err: BusinessError, osAccountInfo: osAccount.OsAccountInfo) => {
      accountManager.removeOsAccount(osAccountInfo.localId, (err: BusinessError)=>{
        if (err) {
          console.error('removeOsAccount failed, error: ' + JSON.stringify(err));
        } else {
          console.log('removeOsAccount successfully');
        }
    });
  });
} catch (err) {
  console.error('removeOsAccount exception: ' + JSON.stringify(err));
}

removeOsAccount

removeOsAccount(localId: number): Promise<void>

删除指定系统账号。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.
12300008 Restricted Account.
12300010 Service busy. Possible causes: The target account is being operated.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let accountName: string = 'testAccountName';
try {
  accountManager.createOsAccount(accountName, osAccount.OsAccountType.NORMAL,
    (err: BusinessError, osAccountInfo: osAccount.OsAccountInfo)=>{
      accountManager.removeOsAccount(osAccountInfo.localId).then(() => {
        console.log('removeOsAccount successfully');
      }).catch((err: BusinessError) => {
          console.error('removeOsAccount failed, error: ' + JSON.stringify(err));
      });
  });
} catch (err) {
  console.error('removeOsAccount exception: ' + JSON.stringify(err));
}

setOsAccountConstraints

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

为指定系统账号设置/删除约束。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
constraints Array<string> 待设置/删除的约束列表。
enable boolean 设置(true)/删除(false) 。
callback AsyncCallback<void> 回调函数。如果设置成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or constraints.
12300003 Account not found.
12300008 Restricted Account.

示例: 给ID为100的系统账号设置禁止使用Wi-Fi的约束

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let constraint: string = 'constraint.wifi';
try {
  accountManager.setOsAccountConstraints(localId, [constraint], true, (err: BusinessError) => {
    if (err) {
      console.error('setOsAccountConstraints failed, error: ' + JSON.stringify(err));
    } else {
      console.log('setOsAccountConstraints successfully');
    }
  });
} catch (err) {
  console.error('setOsAccountConstraints exception: ' + JSON.stringify(err));
}

setOsAccountConstraints

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

为指定系统账号设置/删除约束。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
constraints Array<string> 待设置/删除的约束列表。
enable boolean 设置(true)/删除(false)。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or constraints.
12300003 Account not found.
12300008 Restricted Account.

示例: 删除ID为100的系统账号的禁止使用Wi-Fi的约束

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.setOsAccountConstraints(localId, ['constraint.location.set'], false).then(() => {
    console.log('setOsAccountConstraints succsuccessfully');
  }).catch((err: BusinessError) => {
    console.error('setOsAccountConstraints failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('setOsAccountConstraints exception: ' + JSON.stringify(err));
}

setOsAccountName

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

设置指定系统账号的账号名。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
localName string 账号名,最大长度为1024个字符。
callback AsyncCallback<void> 回调函数。如果设置成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or localName.
12300003 Account not found.
12300008 Restricted Account.

示例: 将ID为100的系统账号的账号名设置成demoName

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let name: string = 'demoName';
try {
  accountManager.setOsAccountName(localId, name, (err: BusinessError) => {
    if (err) {
      console.error('setOsAccountName failed, error: ' + JSON.stringify(err));
    } else {
      console.log('setOsAccountName successfully');
    }
  });
} catch (err) {
  console.error('setOsAccountName exception: ' + JSON.stringify(err));
}

setOsAccountName

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

设置指定系统账号的账号名。使用Promise异步调用。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
localName string 账号名,最大长度为1024。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or localName.
12300003 Account not found.
12300008 Restricted Account.

示例: 将ID为100的系统账号的账号名设置成demoName

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let name: string = 'testName';
try {
  accountManager.setOsAccountName(localId, name).then(() => {
    console.log('setOsAccountName successfully');
  }).catch((err: BusinessError) => {
    console.error('setOsAccountName failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('setOsAccountName exception: ' + JSON.stringify(err));
}

queryMaxOsAccountNumber

queryMaxOsAccountNumber(callback: AsyncCallback<number>): void

查询允许创建的系统账号的最大数量。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 回调函数,如果查询成功,err为null,data为允许创建的系统账号的最大数量;否则为错误对象。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryMaxOsAccountNumber((err: BusinessError, maxCnt: number) => {
    if (err) {
      console.error('queryMaxOsAccountNumber failed, error:' + JSON.stringify(err));
    } else {
      console.log('queryMaxOsAccountNumber successfully, maxCnt:' + maxCnt);
    }
  });
} catch (err) {
  console.error('queryMaxOsAccountNumber exception: ' + JSON.stringify(err));
}

queryMaxOsAccountNumber

queryMaxOsAccountNumber(): Promise<number>

查询允许创建的系统账号的最大数量。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

返回值:

类型 说明
Promise<number> Promise对象,返回允许创建的系统账号的最大数量。

错误码:

错误码ID 错误信息
202 Not system application.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryMaxOsAccountNumber().then((maxCnt: number) => {
    console.log('queryMaxOsAccountNumber successfully, maxCnt: ' + maxCnt);
  }).catch((err: BusinessError) => {
    console.error('queryMaxOsAccountNumber failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('queryMaxOsAccountNumber exception: ' + JSON.stringify(err));
}

queryMaxLoggedInOsAccountNumber12+

queryMaxLoggedInOsAccountNumber(): Promise<number>

查询允许同时登录的系统账号的最大数量。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

返回值:

类型 说明
Promise<number> Promise对象,返回允许登录的系统账号的最大数量。

错误码:

错误码ID 错误信息
202 Not system application.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryMaxLoggedInOsAccountNumber().then((maxNum: number) => {
    console.log('queryMaxLoggedInOsAccountNumber successfully, maxNum: ' + maxNum);
  }).catch((err: BusinessError) => {
    console.error('queryMaxLoggedInOsAccountNumber failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('queryMaxLoggedInOsAccountNumber exception: ' + JSON.stringify(err));
}

getEnabledOsAccountConstraints11+

getEnabledOsAccountConstraints(localId: number): Promise<Array<string>>

获取指定系统账号已使能的的全部约束。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<Array<string>> Promise对象,返回指定系统账号已使能的的全部约束

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.

示例: 获取ID为100的系统账号的全部约束

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.getEnabledOsAccountConstraints(localId).then((constraints: string[]) => {
    console.log('getEnabledOsAccountConstraints, constraints: ' + constraints);
  }).catch((err: BusinessError) => {
    console.error('getEnabledOsAccountConstraints err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getEnabledOsAccountConstraints exception: ' + JSON.stringify(e));
}

queryAllCreatedOsAccounts

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

查询已创建的所有系统账号的信息列表。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
callback AsyncCallback<Array<OsAccountInfo>> 回调函数。如果查询成功,err为null,data为已创建的所有系统账号的信息列表;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryAllCreatedOsAccounts((err: BusinessError, accountArr: osAccount.OsAccountInfo[])=>{
    console.log('queryAllCreatedOsAccounts err:' + JSON.stringify(err));
    console.log('queryAllCreatedOsAccounts accountArr:' + JSON.stringify(accountArr));
  });
} catch (e) {
  console.error('queryAllCreatedOsAccounts exception: ' + JSON.stringify(e));
}

queryAllCreatedOsAccounts

queryAllCreatedOsAccounts(): Promise<Array<OsAccountInfo>>

查询已创建的所有系统账号的信息列表。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

返回值:

类型 说明
Promise<Array<OsAccountInfo>> Promise对象,返回已创建的所有系统账号的信息列表。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryAllCreatedOsAccounts().then((accountArr: osAccount.OsAccountInfo[]) => {
    console.log('queryAllCreatedOsAccounts, accountArr: ' + JSON.stringify(accountArr));
  }).catch((err: BusinessError) => {
    console.error('queryAllCreatedOsAccounts err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('queryAllCreatedOsAccounts exception: ' + JSON.stringify(e));
}

createOsAccount

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

创建一个系统账号。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localName string 创建的系统账号的名称。
type OsAccountType 创建的系统账号的类型。
callback AsyncCallback<OsAccountInfo> 回调函数。如果创建成功,err为null,data为新创建的系统账号的信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localName or type.
12300004 Local name already exists.
12300005 Multi-user not supported.
12300006 Unsupported account type.
12300007 The number of accounts has reached the upper limit.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.createOsAccount('testName', osAccount.OsAccountType.NORMAL,
    (err: BusinessError, osAccountInfo: osAccount.OsAccountInfo)=>{
    console.log('createOsAccount err:' + JSON.stringify(err));
    console.log('createOsAccount osAccountInfo:' + JSON.stringify(osAccountInfo));
  });
} catch (e) {
  console.error('createOsAccount exception: ' + JSON.stringify(e));
}

createOsAccount

createOsAccount(localName: string, type: OsAccountType, options?: CreateOsAccountOptions): Promise<OsAccountInfo>

创建一个系统账号。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localName string 创建的系统账号的名称。
type OsAccountType 创建的系统账号的类型。
options CreateOsAccountOptions 创建系统账号的选项,默认为空。
从API version 12开始支持该可选参数。

返回值:

类型 说明
Promise<OsAccountInfo> Promise对象,返回新创建的系统账号的信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localName, type or options.
12300004 Local name already exists.
12300005 Multi-user not supported.
12300006 Unsupported account type.
12300007 The number of accounts has reached the upper limit.
12300015 The short name already exists.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let options: osAccount.CreateOsAccountOptions = {
  shortName: 'myShortName'
}
try {
  accountManager.createOsAccount('testAccountName', osAccount.OsAccountType.NORMAL, options).then(
    (accountInfo: osAccount.OsAccountInfo) => {
    console.log('createOsAccount, accountInfo: ' + JSON.stringify(accountInfo));
  }).catch((err: BusinessError) => {
    console.error('createOsAccount err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('createOsAccount exception: ' + JSON.stringify(e));
}

createOsAccountForDomain8+

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

根据域账号信息,创建一个系统账号并将其与域账号关联。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type OsAccountType 创建的系统账号的类型。
domainInfo DomainAccountInfo 域账号信息。
callback AsyncCallback<OsAccountInfo> 回调函数。如果创建成功,err为null,data为新创建的系统账号的信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid type or domainInfo.
12300004 Account already exists.
12300005 Multi-user not supported.
12300006 Unsupported account type.
12300007 The number of accounts has reached the upper limit.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let domainInfo: osAccount.DomainAccountInfo =
  {domain: 'testDomain', accountName: 'testAccountName'};
try {
  accountManager.createOsAccountForDomain(osAccount.OsAccountType.NORMAL, domainInfo,
    (err: BusinessError, osAccountInfo: osAccount.OsAccountInfo)=>{
    console.log('createOsAccountForDomain err:' + JSON.stringify(err));
    console.log('createOsAccountForDomain osAccountInfo:' + JSON.stringify(osAccountInfo));
  });
} catch (e) {
  console.error('createOsAccountForDomain exception: ' + JSON.stringify(e));
}

createOsAccountForDomain8+

createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, options?: CreateOsAccountForDomainOptions): Promise<OsAccountInfo>

根据传入的域账号信息,创建与其关联的系统账号。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type OsAccountType 创建的系统账号的类型。
domainInfo DomainAccountInfo 域账号信息。
options CreateOsAccountForDomainOptions 创建账号的可选参数,默认为空。
从API version 12开始支持该可选参数。

返回值:

类型 说明
Promise<OsAccountInfo> Promise对象,返回新创建的系统账号的信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid type, domainInfo or options.
12300004 Account already exists.
12300005 Multi-user not supported.
12300006 Unsupported account type.
12300007 The number of accounts has reached the upper limit.
12300015 The short name already exists.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let domainInfo: osAccount.DomainAccountInfo =
  {domain: 'testDomain', accountName: 'testAccountName'};
let options: osAccount.CreateOsAccountForDomainOptions = {
  shortName: 'myShortName'
}
try {
  accountManager.createOsAccountForDomain(osAccount.OsAccountType.NORMAL, domainInfo, options).then(
    (accountInfo: osAccount.OsAccountInfo) => {
    console.log('createOsAccountForDomain, account info: ' + JSON.stringify(accountInfo));
  }).catch((err: BusinessError) => {
    console.error('createOsAccountForDomain err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('createOsAccountForDomain exception: ' + JSON.stringify(e));
}

queryOsAccount11+

queryOsAccount(): Promise<OsAccountInfo>

查询当前进程所属的系统账号的信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.GET_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

返回值:

类型 说明
Promise<OsAccountInfo> Promise对象,返回当前进程所属的系统账号信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.queryOsAccount().then((accountInfo: osAccount.OsAccountInfo) => {
    console.log('queryOsAccount, accountInfo: ' + JSON.stringify(accountInfo));
  }).catch((err: BusinessError) => {
    console.error('queryOsAccount err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('queryOsAccount exception: ' + JSON.stringify(e));
}

queryOsAccountById

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

查询指定系统账号的信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 要查询的系统账号的ID。
callback AsyncCallback<OsAccountInfo> 回调函数。如果查询成功,err为null,data为查到的系统账号的信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.

示例: 查询ID为100的系统账号信息

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.queryOsAccountById(localId, (err: BusinessError, accountInfo: osAccount.OsAccountInfo)=>{
    console.log('queryOsAccountById err:' + JSON.stringify(err));
    console.log('queryOsAccountById accountInfo:' + JSON.stringify(accountInfo));
  });
} catch (e) {
  console.error('queryOsAccountById exception: ' + JSON.stringify(e));
}

queryOsAccountById

queryOsAccountById(localId: number): Promise<OsAccountInfo>

查询指定系统账号的信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 要查询的系统账号的ID。

返回值:

类型 说明
Promise<OsAccountInfo> Promise对象,返回查到的系统账号的信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.

示例: 查询ID为100的系统账号信息

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.queryOsAccountById(localId).then((accountInfo: osAccount.OsAccountInfo) => {
    console.log('queryOsAccountById, accountInfo: ' + JSON.stringify(accountInfo));
  }).catch((err: BusinessError) => {
    console.error('queryOsAccountById err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('queryOsAccountById exception: ' + JSON.stringify(e));
}

getOsAccountProfilePhoto

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

获取指定系统账号的头像信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
callback AsyncCallback<string> 回调函数。如果获取成功,err为null,data为指定系统账号的头像信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.

示例: 获取ID为100的系统账号的头像

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.getOsAccountProfilePhoto(localId, (err: BusinessError, photo: string)=>{
    console.log('getOsAccountProfilePhoto err:' + JSON.stringify(err));
    console.log('get photo:' + photo + ' by localId: ' + localId);
  });
} catch (e) {
  console.error('getOsAccountProfilePhoto exception: ' + JSON.stringify(e));
}

getOsAccountProfilePhoto

getOsAccountProfilePhoto(localId: number): Promise<string>

获取指定系统账号的头像信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。

返回值:

类型 说明
Promise<string> Promise对象,返回指定系统账号的头像信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 Account not found.

示例: 获取ID为100的系统账号的头像

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
try {
  accountManager.getOsAccountProfilePhoto(localId).then((photo: string) => {
    console.log('getOsAccountProfilePhoto: ' + photo);
  }).catch((err: BusinessError) => {
    console.error('getOsAccountProfilePhoto err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getOsAccountProfilePhoto exception: ' + JSON.stringify(e));
}

setOsAccountProfilePhoto

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

为指定系统账号设置头像信息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
photo string 头像信息。
callback AsyncCallback<void> 回调函数。如果设置成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or photo.
12300003 Account not found.
12300008 Restricted Account.

示例: 给ID为100的系统账号设置头像

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let photo: string = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAPCAYAAAA/I0V3AAAAAXNSR0IArs4c6QAAAARnQU1BAA'+
'Cxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACwSURBVDhPvZLBDYMwDEV/ugsXRjAT0EHCOuFIBwkbdIRewi6unbiAyoGgSn1SFH85+Y'+
'q/4ljARW62X+LHS8uIzjm4dXUYF+utzBikB52Jo5e5iEPKqpACk7R9NM2RvWm5tIkD2czLCUFNKLD6IjdMHFHDzws285MgGrT0xCtp3WOKHo'+
'+7q0mP0DZW9pNmoEFUzrQjp5cCnaen2kSJXLFD8ghbXyZCMQf/8e8Ns1XVAG/XAgqKzVnJFAAAAABJRU5ErkJggg=='
try {
  accountManager.setOsAccountProfilePhoto(localId, photo, (err: BusinessError)=>{
    console.log('setOsAccountProfilePhoto err:' + JSON.stringify(err));
  });
} catch (e) {
  console.error('setOsAccountProfilePhoto exception: ' + JSON.stringify(e));
}

setOsAccountProfilePhoto

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

为指定系统账号设置头像信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 系统账号ID。
photo string 头像信息。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid localId or photo.
12300003 Account not found.
12300008 Restricted Account.

示例: 给ID为100的系统账号设置头像

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let localId: number = 100;
let photo: string = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAPCAYAAAA/I0V3AAAAAXNSR0IArs4c6QAAAARnQU1BAA'+
'Cxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACwSURBVDhPvZLBDYMwDEV/ugsXRjAT0EHCOuFIBwkbdIRewi6unbiAyoGgSn1SFH85+Y'+
'q/4ljARW62X+LHS8uIzjm4dXUYF+utzBikB52Jo5e5iEPKqpACk7R9NM2RvWm5tIkD2czLCUFNKLD6IjdMHFHDzws285MgGrT0xCtp3WOKHo'+
'+7q0mP0DZW9pNmoEFUzrQjp5cCnaen2kSJXLFD8ghbXyZCMQf/8e8Ns1XVAG/XAgqKzVnJFAAAAABJRU5ErkJggg=='
try {
  accountManager.setOsAccountProfilePhoto(localId, photo).then(() => {
    console.log('setOsAccountProfilePhoto success');
  }).catch((err: BusinessError) => {
    console.error('setOsAccountProfilePhoto err: ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('setOsAccountProfilePhoto exception: ' + JSON.stringify(e));
}

on

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

订阅系统账号的激活完成与激活中的事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'activate' | 'activating' 订阅类型,activate表示订阅的是账号已激活完成的事件,activating表示订阅的是账号正在激活的事件。
name string 订阅名称,可自定义,要求非空且长度不超过1024字节。
callback Callback<number> 订阅系统账号激活完成与激活中的事件回调,表示激活完成后或正在激活中的系统账号ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type or name.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
function onCallback(receiveLocalId: number){
  console.log('receive localId:' + receiveLocalId);
}
try {
  accountManager.on('activating', 'osAccountOnOffNameA', onCallback);
} catch (e) {
  console.error('receive localId exception: ' + JSON.stringify(e));
}

off

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

取消订阅系统账号的激活完成与激活中的事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'activate' | 'activating' 取消订阅类型,activate表示取消订阅账号已激活完成的事件,activating取消订阅账号正在激活的事件。
name string 订阅名称,可自定义,要求非空且长度不超过1024字节,需要与订阅接口传入的值保持一致。
callback Callback<number> 取消订阅系统账号激活完成与激活中的事件回调,默认为空,表示取消该类型事件的所有回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type or name.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
function offCallback(){
  console.log('off enter')
}
try {
  accountManager.off('activating', 'osAccountOnOffNameA', offCallback);
} catch (e) {
  console.error('off exception: ' + JSON.stringify(e));
}

on12+

on(type: 'switching', callback: Callback<OsAccountSwitchEventData>): void

订阅系统账号的前后台正在切换事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'switching' 订阅类型,switching表示订阅的是系统账号的前后台正在切换事件。
callback Callback<OsAccountSwitchEventData> 订阅系统账号的前后台正在切换事件回调,表示切换前和切换后的系统账号ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
function onSwitchingCallback(eventData: osAccount.OsAccountSwitchEventData){
  console.log('receive eventData:' + JSON.stringify(eventData));
}
try {
  accountManager.on('switching', onSwitchingCallback);
} catch (e) {
  console.error('receive eventData exception: ' + JSON.stringify(e));
}

off12+

off(type: 'switching', callback?: Callback<OsAccountSwitchEventData>): void

取消订阅系统账号的前后台正在切换事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'switching' 取消订阅类型,switching表示取消订阅的是系统账号的前后台正在切换事件。
callback Callback<OsAccountSwitchEventData> 取消订阅系统账号的前后台正在切换事件回调,默认为空,表示取消该类型事件的所有回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.off('switching');
} catch (e) {
  console.error('off exception: ' + JSON.stringify(e));
}

on12+

on(type: 'switched', callback: Callback<OsAccountSwitchEventData>): void

订阅系统账号的前后台切换结束事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'switched' 订阅类型,switched表示订阅的是系统账号的前后台切换结束事件。
callback Callback<OsAccountSwitchEventData> 订阅系统账号的前后台切换结束事件回调,表示切换前和切换后的系统账号ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
function onSwitchedCallback(eventData: osAccount.OsAccountSwitchEventData){
  console.log('receive eventData:' + JSON.stringify(eventData));
}
try {
  accountManager.on('switched', onSwitchedCallback);
} catch (e) {
  console.error('receive eventData exception: ' + JSON.stringify(e));
}

off12+

off(type: 'switched', callback?: Callback<OsAccountSwitchEventData>): void

取消订阅系统账号的前后台切换结束事件。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
type 'switched' 取消订阅类型,switched表示取消订阅的是系统账号的前后台切换结束事件。
callback Callback<OsAccountSwitchEventData> 取消订阅系统账号的前后台切换结束事件回调,默认为空,表示取消该类型事件的所有回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid type.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.off('switched');
} catch (e) {
  console.error('off exception: ' + JSON.stringify(e));
}

getBundleIdForUid9+

getBundleIdForUid(uid: number, callback: AsyncCallback<number>): void

通过uid查询对应的bundleId,使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
uid number 进程uid。
callback AsyncCallback<number> 回调函数。如果查询成功,err为null,data为与uid对应的bundleId;否则为错误对象。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid uid.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let testUid: number = 1000000;
try {
  accountManager.getBundleIdForUid(testUid, (err: BusinessError, bundleId: number) => {
    console.info('getBundleIdForUid errInfo:' + JSON.stringify(err));
    console.info('getBundleIdForUid bundleId:' + JSON.stringify(bundleId));
  });
} catch (e) {
  console.info('getBundleIdForUid exception: ' + JSON.stringify(e));
}

getBundleIdForUid9+

getBundleIdForUid(uid: number): Promise<number>

通过uid查询对应的bundleId,使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
uid number 进程uid。

返回值:

类型 说明
Promise<number> Promise对象,返回与uid对应的bundleId。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid uid.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let testUid: number = 1000000;
try {
  accountManager.getBundleIdForUid(testUid).then((result: number) => {
    console.info('getBundleIdForUid bundleId:' + JSON.stringify(result));
  }).catch((err: BusinessError) => {
    console.info('getBundleIdForUid errInfo:' + JSON.stringify(err));
  });
} catch (e) {
  console.info('getBundleIdForUid exception: ' + JSON.stringify(e));
}

getBundleIdForUidSync10+

getBundleIdForUidSync(uid: number): number

通过uid查询对应的bundleId。使用同步方式返回结果。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
uid number 进程uid。

返回值:

类型 说明
number 表示与进程uid对应的bundleId。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300002 Invalid uid.

示例:

let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
let testUid: number = 1000000;
try {
  let bundleId : number = accountManager.getBundleIdForUidSync(testUid);
  console.info('getBundleIdForUidSync bundleId:' + bundleId);
} catch (e) {
  console.info('getBundleIdForUidSync exception: ' + JSON.stringify(e));
}

isMainOsAccount9+

isMainOsAccount(callback: AsyncCallback<boolean>): void

查询当前进程是否处于主用户,使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
callback AsyncCallback<boolean> 回调函数,返回true表示当前账号为主账号,返回false表示当前账号非主账号。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.isMainOsAccount((err: BusinessError,result: boolean)=>{
    console.info('isMainOsAccount errInfo:' + JSON.stringify(err));
    console.info('isMainOsAccount result:' + JSON.stringify(result));
  });
} catch (e) {
  console.info('isMainOsAccount exception: ' + JSON.stringify(e));
}

isMainOsAccount9+

isMainOsAccount(): Promise<boolean>;

查询当前进程是否处于主用户,使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

返回值:

类型 说明
Promise<boolean> Promise对象,返回true表示当前账号为主账号,返回false表示当前账号非主账号。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.isMainOsAccount().then((result: boolean) => {
    console.info('isMainOsAccount result:' + JSON.stringify(result));
  }).catch((err: BusinessError) => {
    console.info('isMainOsAccount errInfo:' + JSON.stringify(err));
  });
} catch (e) {
  console.info('isMainOsAccount exception: ' + JSON.stringify(e));
}

getOsAccountConstraintSourceTypes9+

getOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void

查询指定系统账号的指定约束来源信息,使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 要查询的系统账号ID。
constraint string 要查询的约束名称。
callback AsyncCallback<Array<ConstraintSourceTypeInfo>> 回调函数。如果成功,err为null,data为指定系统账号的指定约束来源信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid name or constraint.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.getOsAccountConstraintSourceTypes(100, 'constraint.wifi',
    (err: BusinessError,sourceTypeInfos: osAccount.ConstraintSourceTypeInfo[])=>{
    console.info('getOsAccountConstraintSourceTypes errInfo:' + JSON.stringify(err));
    console.info('getOsAccountConstraintSourceTypes sourceTypeInfos:' + JSON.stringify(sourceTypeInfos));
  });
} catch (e) {
  console.info('getOsAccountConstraintSourceTypes exception: ' + JSON.stringify(e));
}

getOsAccountConstraintSourceTypes9+

getOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise<Array<ConstraintSourceTypeInfo>>;

查询指定系统账号的指定约束来源信息,使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 要查询的系统账号ID。
constraint string 要查询的约束名称。

返回值:

类型 说明
Promise<Array<ConstraintSourceTypeInfo>> Promise对象,返回指定系统账号的指定约束来源信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid name or constraint.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  accountManager.getOsAccountConstraintSourceTypes(100, 'constraint.wifi').then(
    (result: osAccount.ConstraintSourceTypeInfo[]) => {
    console.info('getOsAccountConstraintSourceTypes sourceTypeInfos:' + JSON.stringify(result));
  }).catch((err: BusinessError) => {
    console.info('getOsAccountConstraintSourceTypes errInfo:' + JSON.stringify(err));
  });
} catch (e) {
  console.info('getOsAccountConstraintSourceTypes exception: ' + JSON.stringify(e));
}

getOsAccountType12+

getOsAccountType(localId: number): Promise<OsAccountType>;

查询指定系统账号的类型,使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
localId number 要查询的系统账号ID。

返回值:

类型 说明
Promise<OsAccountType> Promise对象,返回指定系统账号的类型。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let accountManager: osAccount.AccountManager = osAccount.getAccountManager();
try {
  let localId: number = 100;
  accountManager.getOsAccountType(localId).then((type: osAccount.OsAccountType) => {
    console.info('getOsAccountType Type:' + type);
  }).catch((err: BusinessError) => {
    console.info('getOsAccountType errInfo:' + JSON.stringify(err));
  });
} catch (e) {
  console.info('getOsAccountType exception: ' + JSON.stringify(e));
}

UserAuth8+

用户认证类。

系统接口: 此接口为系统接口。

constructor8+

constructor()

创建用户认证的实例。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Account.OsAccount

错误码:

错误码ID 错误信息
202 Not system application.

示例:

let userAuth = new osAccount.UserAuth();

getVersion8+

getVersion(): number;

返回版本信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

返回值:

类型 说明
number 返回版本信息。

错误码:

错误码ID 错误信息
202 Not system application.

示例:

let userAuth = new osAccount.UserAuth();
let version: number = userAuth.getVersion();
console.log('getVersion version = ' + version);

getAvailableStatus8+

getAvailableStatus(authType: AuthType, authTrustLevel: AuthTrustLevel): number;

获取指定认证类型和认证可信等级的认证能力的可用状态。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
authType AuthType 认证类型。
authTrustLevel AuthTrustLevel 认证的可信等级。

返回值:

类型 说明
number 返回认证能力的可用状态。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid authType or authTrustLevel.

示例:

let userAuth = new osAccount.UserAuth();
let authType: osAccount.AuthType = osAccount.AuthType.PIN;
let authTrustLevel: osAccount.AuthTrustLevel = osAccount.AuthTrustLevel.ATL1;
try {
  let status: number = userAuth.getAvailableStatus(authType, authTrustLevel);
  console.log('getAvailableStatus status = ' + status);
} catch (e) {
  console.error('getAvailableStatus exception = ' + JSON.stringify(e));
}

getProperty8+

getProperty(request: GetPropertyRequest, callback: AsyncCallback<ExecutorProperty>): void

基于指定的请求信息获取属性。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
request GetPropertyRequest 请求信息,包括认证类型和属性类型列表。
callback AsyncCallback<ExecutorProperty> 回调函数。如果获取成功,err为null,data为执行器属性信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid request.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userAuth = new osAccount.UserAuth();
let keys: Array<osAccount.GetPropertyType>  = [
  osAccount.GetPropertyType.AUTH_SUB_TYPE,
  osAccount.GetPropertyType.REMAIN_TIMES,
  osAccount.GetPropertyType.FREEZING_TIME
];
let request: osAccount.GetPropertyRequest = {
  authType: osAccount.AuthType.PIN,
  keys: keys
};
try {
  userAuth.getProperty(request, (err: BusinessError, result: osAccount.ExecutorProperty) => {
    console.log('getProperty err = ' + JSON.stringify(err));
    console.log('getProperty result = ' + JSON.stringify(result));
  });
} catch (e) {
  console.error('getProperty exception = ' + JSON.stringify(e));
}

getProperty8+

getProperty(request: GetPropertyRequest): Promise<ExecutorProperty>;

基于指定的请求信息获取属性。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
request GetPropertyRequest 请求信息,包括认证类型和属性类型列表。

返回值:

类型 说明
Promise<ExecutorProperty> Promise对象,返回执行者属性信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid request.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userAuth = new osAccount.UserAuth();
let keys: Array<osAccount.GetPropertyType> = [
  osAccount.GetPropertyType.AUTH_SUB_TYPE,
  osAccount.GetPropertyType.REMAIN_TIMES,
  osAccount.GetPropertyType.FREEZING_TIME
];
let request: osAccount.GetPropertyRequest = {
  authType: osAccount.AuthType.PIN,
  keys: keys
};
try {
  userAuth.getProperty(request).then((result: osAccount.ExecutorProperty) => {
    console.log('getProperty result = ' + JSON.stringify(result));
  }).catch((err: BusinessError) => {
    console.error('getProperty error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getProperty exception = ' + JSON.stringify(e));
}

getPropertyByCredentialId14+

getPropertyByCredentialId(credentialId: Uint8Array, keys: Array<GetPropertyType>): Promise<ExecutorProperty>;

基于凭据id获取关联执行器的指定属性信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
credentialId Uint8Array 指示凭据索引。
keys Array<GetPropertyType> 指示要查询的属性类型数组。

返回值:

类型 说明
Promise<ExecutorProperty> Promise对象,返回执行器的属性信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid keys.
12300102 The credential does not exist.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
let credInfo: osAccount.EnrolledCredInfo[] = [];
async function getProperty() {
  try {
    credInfo = await userIDM.getAuthInfo(osAccount.AuthType.PRIVATE_PIN);
  } catch (e) {
    console.error('getAuthInfo exception = ' + JSON.stringify(e));
    return;
  }
  if (credInfo.length == 0) {
    console.log('no credential infos');
    return;
  }
  let testCredentialId: Uint8Array = credInfo[0].credentialId;
  let keys: Array<osAccount.GetPropertyType> = [
    osAccount.GetPropertyType.AUTH_SUB_TYPE,
    osAccount.GetPropertyType.REMAIN_TIMES,
    osAccount.GetPropertyType.FREEZING_TIME
  ];
  try {
    let userAuth = new osAccount.UserAuth();
    userAuth.getPropertyByCredentialId(testCredentialId, keys).then((result: osAccount.ExecutorProperty) => {
      console.log('getPropertyByCredentialId result = ' + JSON.stringify(result));
    }).catch((err: BusinessError) => {
      console.error('getPropertyByCredentialId error = ' + JSON.stringify(err));
    });
  } catch (e) {
    console.error('getPropertyByCredentialId exception = ' + JSON.stringify(e));
  }
}

setProperty8+

setProperty(request: SetPropertyRequest, callback: AsyncCallback<void>): void

设置可用于初始化算法的属性。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
request SetPropertyRequest 请求信息,包括认证类型和要设置的密钥值。
callback AsyncCallback<void> 回调函数。如果设置成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid request.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userAuth = new osAccount.UserAuth();
let request: osAccount.SetPropertyRequest = {
  authType: osAccount.AuthType.PIN,
  key: osAccount.SetPropertyType.INIT_ALGORITHM,
  setInfo: new Uint8Array([0])
};
try {
  userAuth.setProperty(request, (err: BusinessError) => {
    if (err) {
      console.error('setProperty failed, error = ' + JSON.stringify(err));
    } else {
      console.log('setProperty successfully');
    }
  });
} catch (e) {
  console.error('setProperty exception = ' + JSON.stringify(e));
}

setProperty8+

setProperty(request: SetPropertyRequest): Promise<void>;

设置可用于初始化算法的属性。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
request SetPropertyRequest 请求信息,包括身份验证类型和要设置的密钥值。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid request.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userAuth = new osAccount.UserAuth();
let request: osAccount.SetPropertyRequest = {
  authType: osAccount.AuthType.PIN,
  key: osAccount.SetPropertyType.INIT_ALGORITHM,
  setInfo: new Uint8Array([0])
};
try {
  userAuth.setProperty(request).then(() => {
    console.log('setProperty successfully');
  }).catch((err: BusinessError) => {
    console.error('setProperty failed, error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('setProperty exception = ' + JSON.stringify(e));
}

prepareRemoteAuth12+

prepareRemoteAuth(remoteNetworkId: string): Promise<void>;

准备远端认证。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
remoteNetworkId string 远端网络Id。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 System service exception.
12300002 Invalid remoteNetworkId.

示例:

import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';

let userAuth = new osAccount.UserAuth();
let distributedDeviceMgr = distributedDeviceManager.createDeviceManager("com.example.bundleName");
distributedDeviceMgr.getAvailableDeviceList().then((data: Array<distributedDeviceManager.DeviceBasicInfo>) => {
    try {
      if (data.length > 0 && data[0].networkId != null) {
        userAuth.prepareRemoteAuth(data[0].networkId).then(() => {
          console.log('prepareRemoteAuth successfully');
        }).catch((err: BusinessError) => {
          console.error('prepareRemoteAuth failed, error = ' + JSON.stringify(err));
        });
      }
    } catch (e) {
      console.error('prepareRemoteAuth exception = ' + JSON.stringify(e));
    }
  }
)

auth8+

auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;

认证当前用户。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
challenge Uint8Array 指示挑战值,挑战值为一个随机数,用于提升安全性。
authType AuthType 指示认证类型。
authTrustLevel AuthTrustLevel 指示认证结果的信任级别。
callback IUserAuthCallback 回调对象,返回认证结果。

返回值:

类型 说明
Uint8Array 返回取消的上下文ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid challenge, authType or authTrustLevel.
12300013 Network exception.
12300101 The credential is incorrect.
12300102 The credential does not exist.
12300105 The trust level is not supported.
12300106 The authentication type is not supported.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The authentication service does not exist.
12300114 The authentication service works abnormally.
12300117 PIN is expired.
12300211 Server unreachable.

示例:

let userAuth = new osAccount.UserAuth();
let challenge: Uint8Array = new Uint8Array([0]);
let authType: osAccount.AuthType = osAccount.AuthType.PIN;
let authTrustLevel: osAccount.AuthTrustLevel = osAccount.AuthTrustLevel.ATL1;
try {
  userAuth.auth(challenge, authType, authTrustLevel, {
    onResult: (result: number, extraInfo: osAccount.AuthResult) => {
        console.log('auth result = ' + result);
        console.log('auth extraInfo = ' + JSON.stringify(extraInfo));
    }
  });
} catch (e) {
  console.error('auth exception = ' + JSON.stringify(e));
}

auth12+

auth(challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, options: AuthOptions, callback: IUserAuthCallback): Uint8Array

基于指定的挑战值、认证类型(如口令、人脸、指纹等)、认证可信等级以及可选参数(如账号标识、认证意图等)进行身份认证。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
challenge Uint8Array 指示挑战值,挑战值为一个随机数,用于防止重放攻击,提升安全性。
authType AuthType 指示认证类型。
authTrustLevel AuthTrustLevel 指示认证结果的信任级别。
options AuthOptions 指示认证用户的可选参数集合。
callback IUserAuthCallback 回调对象,返回认证结果。

返回值:

类型 说明
Uint8Array 返回取消的上下文ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid challenge, authType, authTrustLevel or options.
12300003 Account not found.
12300013 Network exception.
12300101 The credential is incorrect.
12300102 The credential does not exist.
12300105 The trust level is not supported.
12300106 The authentication type is not supported.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The authentication service does not exist.
12300114 The authentication service works abnormally.
12300117 PIN is expired.
12300211 Server unreachable.

示例:

let userAuth = new osAccount.UserAuth();
let challenge: Uint8Array = new Uint8Array([0]);
let authType: osAccount.AuthType = osAccount.AuthType.PIN;
let authTrustLevel: osAccount.AuthTrustLevel = osAccount.AuthTrustLevel.ATL1;
let options: osAccount.AuthOptions = {
  accountId: 100
};
try {
  userAuth.auth(challenge, authType, authTrustLevel, options, {
    onResult: (result: number, extraInfo: osAccount.AuthResult) => {
        console.log('auth result = ' + result);
        console.log('auth extraInfo = ' + JSON.stringify(extraInfo));
    }
  });
} catch (e) {
  console.error('auth exception = ' + JSON.stringify(e));
}

authUser8+

authUser(userId: number, challenge: Uint8Array, authType: AuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array;

认证指定用户。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
userId number 指示用户身份。
challenge Uint8Array 指示挑战值,挑战值为一个随机数,用于提升安全性。
authType AuthType 指示认证类型。
authTrustLevel AuthTrustLevel 指示认证结果的信任级别。
callback IUserAuthCallback 回调对象,返回认证结果。

返回值:

类型 说明
Uint8Array 返回取消的上下文ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid challenge, authType or authTrustLevel.
12300003 Account not found.
12300013 Network exception.
12300101 The credential is incorrect.
12300102 The credential does not exist.
12300105 The trust level is not supported.
12300106 The authentication type is not supported.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The authentication service does not exist.
12300114 The authentication service works abnormally.
12300117 PIN is expired.
12300211 Server unreachable.

示例:

let userAuth = new osAccount.UserAuth();
let userID: number = 100;
let challenge: Uint8Array = new Uint8Array([0]);
let authType: osAccount.AuthType = osAccount.AuthType.PIN;
let authTrustLevel: osAccount.AuthTrustLevel = osAccount.AuthTrustLevel.ATL1;
try {
  userAuth.authUser(userID, challenge, authType, authTrustLevel, {
    onResult: (result,extraInfo) => {
      console.log('authUser result = ' + result);
      console.log('authUser extraInfo = ' + JSON.stringify(extraInfo));
    }
  });
} catch (e) {
  console.error('authUser exception = ' + JSON.stringify(e));
}

cancelAuth8+

cancelAuth(contextID: Uint8Array): void

取消指定的认证操作。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
contextID Uint8Array 指示身份验证上下文ID,此ID动态生成没有具体值。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid contextId.

示例:

let userAuth = new osAccount.UserAuth();
let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
let challenge = new Uint8Array([0]);
let contextId: Uint8Array = userAuth.auth(challenge, osAccount.AuthType.PIN, osAccount.AuthTrustLevel.ATL1, {
  onResult: (result: number, extraInfo: osAccount.AuthResult) => {
    console.log('auth result = ' + result);
    console.log('auth extraInfo = ' + JSON.stringify(extraInfo));
  }
});
try {
  userAuth.cancelAuth(contextId);
} catch (e) {
  console.error('cancelAuth exception = ' + JSON.stringify(e));
}

PINAuth8+

PIN码认证基类。

系统接口: 此接口为系统接口。

constructor8+

constructor()

创建PIN码认证的实例。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Account.OsAccount

错误码:

错误码ID 错误信息
202 Not system application.

示例:

let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();

registerInputer8+

registerInputer(inputer: IInputer): void

注册PIN码输入器。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_PIN_AUTH

参数:

参数名 类型 必填 说明
inputer IInputer PIN码输入器,用于获取PIN码。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid inputer.
12300103 The credential inputer already exists.

示例:

let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
let password = new Uint8Array([0, 0, 0, 0, 0]);
try {
  pinAuth.registerInputer({
      onGetData: (authSubType: osAccount.AuthSubType, callback: osAccount.IInputData) => {
        callback.onSetData(authSubType, password);
      }
  });
  console.log('registerInputer success.');
} catch (e) {
  console.error('registerInputer exception = ' + JSON.stringify(e));
}

unregisterInputer8+

unregisterInputer(): void

解注册PIN码输入器。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_PIN_AUTH

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.

示例:

let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
pinAuth.unregisterInputer();

InputerManager 9+

凭据输入管理器。

registerInputer9+

static registerInputer(authType: AuthType, inputer: IInputer): void

注册凭据输入器。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL 或 ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
authType AuthType 认证类型。
inputer IInputer 凭据输入器,用于获取凭据。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid authType or inputer.
12300103 The credential inputer already exists.
12300106 The authentication type is not supported.

示例:

let authType: osAccount.AuthType = osAccount.AuthType.DOMAIN;
let password: Uint8Array = new Uint8Array([0, 0, 0, 0, 0]);
try {
  osAccount.InputerManager.registerInputer(authType, {
      onGetData: (authSubType: osAccount.AuthSubType, callback: osAccount.IInputData) => {
        callback.onSetData(authSubType, password);
      }
  });
  console.log('registerInputer success.');
} catch (e) {
  console.error('registerInputer exception = ' + JSON.stringify(e));
}

unregisterInputer9+

static unregisterInputer(authType: AuthType): void

解注册凭据输入器。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL 或 ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
authType AuthType 认证类型。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300002 Invalid authType.

示例:

let authType: osAccount.AuthType = osAccount.AuthType.DOMAIN;
try {
  osAccount.InputerManager.unregisterInputer(authType);
  console.log('unregisterInputer success.');
} catch(err) {
  console.error('unregisterInputer err:' + JSON.stringify(err));
}

DomainPlugin9+

域插件,提供域账号认证功能。

系统接口: 此接口为系统接口。

auth9+

auth(domainAccountInfo: DomainAccountInfo, credential: Uint8Array, callback: IUserAuthCallback): void

认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
credential Uint8Array 指示域账号的凭据。
callback IUserAuthCallback 指示认证结果回调。

示例:

import { AsyncCallback } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {
    // mock authentication
    // notify authentication result
    let result: osAccount.AuthResult = {
      token: new Uint8Array([0]),
      remainTimes: 5,
      freezingTime: 0
    };
    callback.onResult(0, result);
  },
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                    callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin);
let userAuth = new osAccount.UserAuth();
let challenge: Uint8Array = new Uint8Array([0]);
let authType: osAccount.AuthType = osAccount.AuthType.DOMAIN;
let authTrustLevel: osAccount.AuthTrustLevel = osAccount.AuthTrustLevel.ATL1;
try {
  userAuth.auth(challenge, authType, authTrustLevel, {
    onResult: (resultCode: number, authResult: osAccount.AuthResult) => {
        console.log('auth resultCode = ' + resultCode);
        console.log('auth authResult = ' + JSON.stringify(authResult));
    }
  });
} catch (err) {
  console.error('auth exception = ' + JSON.stringify(err));
}

authWithPopup10+

authWithPopup(domainAccountInfo: DomainAccountInfo, callback: IUserAuthCallback): void

弹窗认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
callback IUserAuthCallback 指示认证结果回调。

示例:

import { AsyncCallback } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {
    // mock authentication
    // notify authentication result
    let result: osAccount.AuthResult = {
      token: new Uint8Array([0]),
      remainTimes: 5,
      freezingTime: 0
    };
    callback.onResult(0, result);
  },
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

authWithToken10+

authWithToken(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: IUserAuthCallback): void

使用授权令牌认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
token Uint8Array 指示PIN码或生物识别认证成功时生成的授权令牌。
callback IUserAuthCallback 指示认证结果回调。

示例:

import { AsyncCallback } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {
    // mock authentication
    // notify authentication result
    let result: osAccount.AuthResult = {
      token: new Uint8Array([0]),
      remainTimes: 5,
      freezingTime: 0
    };
    callback.onResult(0, result);
  },
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

getAccountInfo10+

getAccountInfo(options: GetDomainAccountInfoPluginOptions, callback: AsyncCallback<DomainAccountInfo>): void

查询指定域账号的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
options GetDomainAccountInfoPluginOptions 指示域账号信息。
callback AsyncCallback<DomainAccountInfo> 指示查询结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {
    // mock getting account information
    // notify result
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    let accountInfo: osAccount.DomainAccountInfo = {
      domain: options.domain ? options.domain : "",
      accountName: options.accountName,
      accountId: 'xxxx'
    };
    callback(code, accountInfo);
  },
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

getAuthStatusInfo10+

getAuthStatusInfo(domainAccountInfo: DomainAccountInfo, callback: AsyncCallback<AuthStatusInfo>): void

查询指定域账号的认证状态信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
callback AsyncCallback<AuthStatusInfo> 指示查询结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    let statusInfo: osAccount.AuthStatusInfo = {
      remainTimes: 5,
      freezingTime: 0
    };
    callback(code, statusInfo);
  },
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

bindAccount10+

bindAccount(domainAccountInfo: DomainAccountInfo, localId: number, callback: AsyncCallback<void>): void

绑定指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
callback AsyncCallback<void> 指示绑定结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {
    // mock unbinding operation
    // notify binding result
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    callback(code);
  },
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

unbindAccount10+

unbindAccount(domainAccountInfo: DomainAccountInfo, callback: AsyncCallback<void>): void

解绑指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
callback AsyncCallback<void> 指示绑定结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {
    // mock unbinding operation
    // notify unbinding result
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    callback(code);
  },
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

isAccountTokenValid10+

isAccountTokenValid(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: AsyncCallback<boolean>): void

检查指定的域账号令牌是否有效。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
token Uint8Array 指示域账号令牌。
callback AsyncCallback<boolean> 指示检查结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {
    // mock checking operation
    // notify checking result
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    callback(code, true);
  },
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
osAccount.DomainAccountManager.registerPlugin(plugin)

getAccessToken10+

getAccessToken(options: GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>): void

根据指定的选项获取域访问令牌。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
options GetDomainAccessTokenOptions 指示获取域访问令牌的选项。
callback AsyncCallback<Uint8Array> 指示结果回调。

示例:

import { AsyncCallback, BusinessError } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
        callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                  callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                  callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                  callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                        callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {
    // mock getting operation
    // notify result
    let code: BusinessError = {
      code: 0,
      name: "",
      message: ""
    };
    let token: Uint8Array = new Uint8Array([0]);
    callback(code, token);
  }
}
osAccount.DomainAccountManager.registerPlugin(plugin)

DomainAccountManager 9+

域账号管理器类。

registerPlugin9+

static registerPlugin(plugin: DomainPlugin): void

注册域插件。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
plugin DomainPlugin 指示域插件。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300201 The domain plugin has been registered.

示例:

import { AsyncCallback } from '@kit.BasicServicesKit';
let plugin: osAccount.DomainPlugin = {
  auth: (domainAccountInfo: osAccount.DomainAccountInfo, credential: Uint8Array,
       callback: osAccount.IUserAuthCallback) => {},
  authWithPopup: (domainAccountInfo: osAccount.DomainAccountInfo,
                callback: osAccount.IUserAuthCallback) => {},
  authWithToken: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                callback: osAccount.IUserAuthCallback) => {},
  getAccountInfo: (options: osAccount.GetDomainAccountInfoPluginOptions,
                 callback: AsyncCallback<osAccount.DomainAccountInfo>) => {},
  getAuthStatusInfo: (domainAccountInfo: osAccount.DomainAccountInfo,
                      callback: AsyncCallback<osAccount.AuthStatusInfo>) => {},
  bindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, localId: number,
                callback: AsyncCallback<void>) => {},
  unbindAccount: (domainAccountInfo: osAccount.DomainAccountInfo, callback: AsyncCallback<void>) => {},
  isAccountTokenValid: (domainAccountInfo: osAccount.DomainAccountInfo, token: Uint8Array,
                      callback: AsyncCallback<boolean>) => {},
  getAccessToken: (options: osAccount.GetDomainAccessTokenOptions, callback: AsyncCallback<Uint8Array>) => {}
}
try {
  osAccount.DomainAccountManager.registerPlugin(plugin);
  console.log('registerPlugin success.');
} catch(err) {
  console.error('registerPlugin err:' + JSON.stringify(err));
}

unregisterPlugin9+

static unregisterPlugin(): void

注销域插件。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
801 Capability not supported.

示例:

try {
  osAccount.DomainAccountManager.unregisterPlugin();
  console.log('unregisterPlugin success.');
} catch(err) {
  console.error('unregisterPlugin err:' + JSON.stringify(err));
}

auth10+

auth(domainAccountInfo: DomainAccountInfo, credential: Uint8Array, callback: IUserAuthCallback): void

认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
credential Uint8Array 指示域账号的凭据。
callback IUserAuthCallback 指示认证结果回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid domainAccountInfo or credential.
12300003 Domain account does not exist.
12300013 Network exception.
12300101 Authentication failed.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The account authentication service does not exist.
12300114 The account authentication service works abnormally.
12300211 Server unreachable.

示例:

let domainAccountInfo: osAccount.DomainAccountInfo = {
  domain: 'CHINA',
  accountName: 'zhangsan'
}
let credential = new Uint8Array([0])
try {
  osAccount.DomainAccountManager.auth(domainAccountInfo, credential, {
    onResult: (resultCode: number, authResult: osAccount.AuthResult) => {
      console.log('auth resultCode = ' + resultCode);
      console.log('auth authResult = ' + JSON.stringify(authResult));
    }
  });
} catch (err) {
  console.error('auth exception = ' + JSON.stringify(err));
}

authWithPopup10+

authWithPopup(callback: IUserAuthCallback): void

弹框认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

从API version 11开始无需申请权限,建议升级SDK版本。

参数:

参数名 类型 必填 说明
callback IUserAuthCallback 指示认证结果回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300003 No domain account is bound.
12300013 Network exception.
12300101 Authentication failed.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The account authentication service does not exist.
12300114 The account authentication service works abnormally.
12300211 Server unreachable.

示例:

try {
  osAccount.DomainAccountManager.authWithPopup({
    onResult: (resultCode: number, authResult: osAccount.AuthResult) => {
      console.log('auth resultCode = ' + resultCode);
      console.log('auth authResult = ' + JSON.stringify(authResult));
    }
  })
} catch (err) {
  console.error('auth exception = ' + JSON.stringify(err));
}

authWithPopup10+

authWithPopup(localId: number, callback: IUserAuthCallback): void

弹框认证指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.ACCESS_USER_AUTH_INTERNAL

从API version 11开始无需申请权限,建议升级SDK版本。

参数:

参数名 类型 必填 说明
localId number 指示绑定域账号的系统账号的本地标识。
callback IUserAuthCallback 指示认证结果回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid localId.
12300003 No domain account is bound.
12300013 Network exception.
12300101 Authentication failed.
12300109 The authentication, enrollment, or update operation is canceled.
12300110 The authentication is locked.
12300111 The authentication time out.
12300112 The authentication service is busy.
12300113 The account authentication service does not exist.
12300114 The account authentication service works abnormally.
12300211 Server unreachable.

示例:

try {
  osAccount.DomainAccountManager.authWithPopup(100, {
    onResult: (resultCode: number, authResult: osAccount.AuthResult) => {
      console.log('authWithPopup resultCode = ' + resultCode);
      console.log('authWithPopup authResult = ' + JSON.stringify(authResult));
    }
  })
} catch (err) {
  console.error('authWithPopup exception = ' + JSON.stringify(err));
}

hasAccount10+

hasAccount(domainAccountInfo: DomainAccountInfo, callback: AsyncCallback<boolean>): void

检查是否存在指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
callback AsyncCallback<boolean> 指示检查结果回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid domainAccountInfo.
12300013 Network exception.
12300014 Not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.DomainAccountInfo = {
  domain: 'CHINA',
  accountName: 'zhangsan'
}
try {
  osAccount.DomainAccountManager.hasAccount(domainAccountInfo, (err: BusinessError, result: boolean) => {
    if (err) {
      console.error('call hasAccount failed, error: ' + JSON.stringify(err));
    } else {
      console.log('hasAccount result: ' + result);
    }
  });
} catch (err) {
  console.error('hasAccount exception = ' + JSON.stringify(err));
}

hasAccount10+

hasAccount(domainAccountInfo: DomainAccountInfo): Promise<boolean>

检查是否存在指定的域账号。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。

返回值:

类型 说明
Promise<boolean> Promise对象,返回指定的域账号是否存在。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid domainAccountInfo.
12300013 Network exception.
12300014 Not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.DomainAccountInfo = {
  domain: 'CHINA',
  accountName: 'zhangsan'
}
try {
  osAccount.DomainAccountManager.hasAccount(domainAccountInfo).then((result: boolean) => {
    console.log('hasAccount result: ' + result);
  }).catch((err: BusinessError) => {
      console.error('call hasAccount failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('hasAccount exception = ' + JSON.stringify(err));
}

updateAccountToken10+

updateAccountToken(domainAccountInfo: DomainAccountInfo, token: Uint8Array, callback: AsyncCallback<void>): void

更新指定域账号的令牌,空令牌表示目标域账号的令牌失效。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
token Uint8Array 指示域账号的令牌。
callback AsyncCallback<void> 回调函数。如果更新成功,err为null,否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid token.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.DomainAccountInfo = {
  domain: 'CHINA',
  accountName: 'zhangsan',
  accountId: '123456'
}
let token = new Uint8Array([0])
try {
  osAccount.DomainAccountManager.updateAccountToken(domainAccountInfo, token, (err: BusinessError) => {
    if (err != null) {
      console.error('updateAccountToken failed, error: ' + JSON.stringify(err));
    } else {
      console.log('updateAccountToken successfully');
    }
  })
} catch (err) {
  console.error('updateAccountToken exception = ' + JSON.stringify(err));
}

updateAccountToken10+

updateAccountToken(domainAccountInfo: DomainAccountInfo, token: Uint8Array): Promise<void>

更新指定域账号的令牌,空令牌表示目标域账号的令牌失效。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。
token Uint8Array 指示域账号的令牌。

返回值:

类型 说明
Promise<void> Promise对象,无返回结果的Promise对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid token.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.DomainAccountInfo = {
  domain: 'CHINA',
  accountName: 'zhangsan',
  accountId: '123456'
}
let token = new Uint8Array([0])
try {
  osAccount.DomainAccountManager.updateAccountToken(domainAccountInfo, token).then(() => {
    console.log('updateAccountToken successfully');
  }).catch((err: BusinessError) => {
      console.error('updateAccountToken failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('updateAccountToken exception = ' + JSON.stringify(err));
}

getAccountInfo10+

getAccountInfo(options: GetDomainAccountInfoOptions, callback: AsyncCallback<DomainAccountInfo>): void

查询指定的域账号信息,callback方式。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.GET_DOMAIN_ACCOUNTS

参数:

参数名 类型 必填 说明
options GetDomainAccountInfoOptions 指示域账号信息。
callback AsyncCallback<DomainAccountInfo> 指示查询结果回调。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300003 Account not found.
12300013 Network exception.
12300014 Not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.GetDomainAccountInfoOptions = {
  domain: 'CHINA',
  accountName: 'zhangsan'
}
try {
  osAccount.DomainAccountManager.getAccountInfo(domainAccountInfo,
    (err: BusinessError, result: osAccount.DomainAccountInfo) => {
    if (err) {
      console.error('call getAccountInfo failed, error: ' + JSON.stringify(err));
    } else {
      console.log('getAccountInfo result: ' + result);
    }
  });
} catch (err) {
  console.error('getAccountInfo exception = ' + JSON.stringify(err));
}

getAccountInfo10+

getAccountInfo(options: GetDomainAccountInfoOptions): Promise<DomainAccountInfo>

查询指定的域账号信息,promise方式。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.GET_DOMAIN_ACCOUNTS

参数:

参数名 类型 必填 说明
options GetDomainAccountInfoOptions 指示域账号信息。

返回值:

类型 说明
Promise<DomainAccountInfo> Promise对象,返回指定的域账号信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300003 Account not found.
12300013 Network exception.
12300014 Not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainAccountInfo: osAccount.GetDomainAccountInfoOptions = {
  domain: 'CHINA',
  accountName: 'zhangsan'
}
try {
  osAccount.DomainAccountManager.getAccountInfo(domainAccountInfo)
    .then((result: osAccount.DomainAccountInfo) => {
    console.log('getAccountInfo result: ' + result);
  }).catch((err: BusinessError) => {
    console.error('call getAccountInfo failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('getAccountInfo exception = ' + JSON.stringify(err));
}

getAccessToken11+

getAccessToken(businessParams: Record<string, Object>, callback: AsyncCallback<Uint8Array>): void

获取当前域账号的业务访问令牌,使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
businessParams Record<string, Object> 指示业务参数,具体格式取决于域插件的实现要求。
callback AsyncCallback<Uint8Array> 指示结果回调。如果获取成功,err返回null,否则为错误对象。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid business parameters.
12300003 Domain account not found.
12300013 Network exception.
12300014 The domain account is not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let businessParams: Record<string, Object> = {
  'clientId': 'xxx',
  'secretId': 'yyy'
};  // depends on the implementation of the domain plugin
try {
  osAccount.DomainAccountManager.getAccessToken(businessParams,
    (err: BusinessError, result: Uint8Array) => {
    if (err) {
      console.error('getAccessToken failed, error: ' + JSON.stringify(err));
    } else {
      console.log('getAccessToken result: ' + result);
    }
  });
} catch (err) {
  console.error('getAccessToken exception = ' + JSON.stringify(err));
}

getAccessToken11+

getAccessToken(businessParams: Record<string, Object>): Promise<Uint8Array>

查询当前域账号的业务访问令牌,使用promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
businessParams Record<string, Object> 指示业务参数,具体格式取决于域插件的实现要求。

返回值:

类型 说明
Promise<Uint8Array> Promise对象,返回业务访问令牌。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300002 Invalid business parameters.
12300003 Domain account not found.
12300013 Network exception.
12300014 The domain account is not authenticated.
12300111 The operation time out.
12300114 The authentication service works abnormally.
12300211 Server unreachable.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let businessParams: Record<string, Object> = {
  'clientId': 'xxx',
  'secretId': 'yyy'
};  // depends on the implementation of the domain plugin
try {
  osAccount.DomainAccountManager.getAccessToken(businessParams)
    .then((result: Uint8Array) => {
    console.log('getAccessToken result: ' + result);
  }).catch((err: BusinessError) => {
    console.error('getAccessToken failed, error: ' + JSON.stringify(err));
  });
} catch (err) {
  console.error('getAccessToken exception = ' + JSON.stringify(err));
}

isAuthenticationExpired12+

isAuthenticationExpired(domainAccountInfo: DomainAccountInfo): Promise<boolean>;

判断指定域账号是否登录超期。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限: ohos.permission.MANAGE_LOCAL_ACCOUNTS 或 ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
domainAccountInfo DomainAccountInfo 指示域账号信息。

返回值:

类型 说明
Promise<boolean> Promise对象,返回指定的域账号是否登录超期。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
801 Capability not supported.
12300001 The system service works abnormally.
12300003 Domain account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let domainInfo: osAccount.DomainAccountInfo =
  {domain: 'testDomain', accountName: 'testAccountName'};
try {
  osAccount.DomainAccountManager.isAuthenticationExpired(domainInfo).then((result: boolean) => {
    console.log('isAuthenticationExpired, result: ' + result);
  }).catch((err: BusinessError) => {
    console.error('isAuthenticationExpired err: ' + err);
  });
} catch (e) {
  console.error('isAuthenticationExpired exception: ' + e);
}

UserIdentityManager8+

获取用户身份管理类。

系统接口: 此接口为系统接口。

constructor8+

constructor()

用户身份管理类的默认构造函数。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Account.OsAccount

错误码:

错误码ID 错误信息
202 Not system application.

示例:

let userIDM = new osAccount.UserIdentityManager();

openSession8+

openSession(callback: AsyncCallback<Uint8Array>): void

打开会话,获取挑战值。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
callback AsyncCallback<Uint8Array> 回调函数。如果打开会话成功,err为null,data为挑战值;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
try {
  userIDM.openSession((err: BusinessError, challenge: Uint8Array) => {
      console.log('openSession error = ' + JSON.stringify(err));
      console.log('openSession challenge = ' + JSON.stringify(challenge));
  });
} catch (e) {
  console.error('openSession exception = ' + JSON.stringify(e));
}

openSession8+

openSession(accountId?: number): Promise<Uint8Array>

打开会话,获取挑战值(用于判断后续的身份认证场景是否处于该会话下,防止重放攻击)。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
accountId12+ number 系统账号标识,默认为空。

返回值:

类型 说明
Promise<Uint8Array> Promise对象,返回挑战值。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.
12300008 Restricted account.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
let accountId = 100;
try {
  userIDM.openSession(accountId).then((challenge: Uint8Array) => {
      console.info('openSession challenge = ' + JSON.stringify(challenge));
  }).catch((err: BusinessError) => {
      console.error('openSession error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('openSession exception = ' + JSON.stringify(e));
}

addCredential8+

addCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void

添加凭据,添加用户凭据信息,传入凭据添加方法和凭据信息(凭据类型,子类,如果添加用户的非密码凭据,则传入密码身份验证令牌),并获取结果/获取信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
credentialInfo CredentialInfo 指示凭据信息。
callback IIdmCallback 回调对象,返回添加凭据的结果。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid credentialInfo, i.e. authType or authSubType.
12300003 Account not found.
12300008 Restricted account.
12300101 The token is invalid.
12300106 The authentication type is not supported.
12300109 The authentication, enrollment, or update operation is canceled.
12300111 The operation time out.
12300115 The number of credentials reaches the upper limit.
12300116 Credential complexity verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let password: Uint8Array = new Uint8Array([0, 0, 0, 0, 0, 0]);
let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
pinAuth.registerInputer({
  onGetData: (authSubType: osAccount.AuthSubType, callback: osAccount.IInputData) => {
    callback.onSetData(authSubType, password);
  }
});
let credentialInfo: osAccount.CredentialInfo = {
  credType: osAccount.AuthType.PIN,
  credSubType: osAccount.AuthSubType.PIN_SIX,
  token: new Uint8Array([]),
};
let userIDM = new osAccount.UserIdentityManager();
userIDM.openSession((err: BusinessError, challenge: Uint8Array) => {
  try {
  userIDM.addCredential(credentialInfo, {
    onResult: (result: number, extraInfo: osAccount.RequestResult) => {
      console.log('addCredential result = ' + result);
      console.log('addCredential extraInfo = ' + extraInfo);
    }
  });
  } catch (e) {
    console.error('addCredential exception = ' + JSON.stringify(e));
  }
});

updateCredential8+

updateCredential(credentialInfo: CredentialInfo, callback: IIdmCallback): void

更新凭据。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
credentialInfo CredentialInfo 指示凭据信息。
callback IIdmCallback 回调对象,返回更新凭据的结果。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid credentialInfo, i.e. authType or authSubType.
12300003 Account not found.
12300101 The token is invalid.
12300102 The credential does not exist.
12300106 The authentication type is not supported.
12300109 The authentication, enrollment, or update operation is canceled.
12300111 The operation time out.
12300116 Credential complexity verification failed.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
let userAuth: osAccount.UserAuth = new osAccount.UserAuth();
let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
let password: Uint8Array = new Uint8Array([0, 0, 0, 0, 0, 0]);
let credentialInfo: osAccount.CredentialInfo = {
  credType: osAccount.AuthType.PIN,
  credSubType: osAccount.AuthSubType.PIN_SIX,
  token: new Uint8Array([]),
};
pinAuth.registerInputer({
  onGetData: (authSubType: osAccount.AuthSubType, callback: osAccount.IInputData) => {
    callback.onSetData(authSubType, password);
  }
});
userIDM.openSession((err: BusinessError, challenge: Uint8Array) => {
  userAuth.auth(challenge, credentialInfo.credType, osAccount.AuthTrustLevel.ATL1, {
    onResult: (result: number, extraInfo: osAccount.AuthResult) => {
      if (result != osAccount.ResultCode.SUCCESS) {
        return;
      }
      if (extraInfo.token != null) {
        credentialInfo.token = extraInfo.token;
      }
      try {
        userIDM.updateCredential(credentialInfo, {
          onResult: (result: number, extraInfo: osAccount.RequestResult) => {
              console.log('updateCredential result = ' + result);
              console.log('updateCredential extraInfo = ' + extraInfo);
          }
        });
      } catch (e) {
        console.error('updateCredential exception = ' + JSON.stringify(e));
      }
    }
  });
});

closeSession8+

closeSession(accountId?: number): void

关闭会话,结束IDM操作。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
accountId12+ number 系统账号标识,默认为空。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: Incorrect parameter types.
12300001 The system service works abnormally.
12300003 Account not found.
12300008 Restricted account.

示例:

let userIDM = new osAccount.UserIdentityManager();
let accountId = 100;
userIDM.closeSession(accountId);

cancel8+

cancel(challenge: Uint8Array): void

根据挑战值取消条目。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
challenge Uint8Array 挑战值。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid challenge.

示例:

let userIDM = new osAccount.UserIdentityManager();
let challenge: Uint8Array = new Uint8Array([0]);
try {
  userIDM.cancel(challenge);
} catch(err) {
  console.error('cancel err:' + JSON.stringify(err));
}

delUser8+

delUser(token: Uint8Array, callback: IIdmCallback): void

删除具有身份验证令牌的用户,使用callback方式异步返回结果。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
token Uint8Array 身份验证令牌。
callback IIdmCallback 回调对象,返回删除用户的结果。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300101 The token is invalid.

示例:

let userIDM = new osAccount.UserIdentityManager();
let token: Uint8Array = new Uint8Array([0]);
try {
  userIDM.delUser(token, {
    onResult: (result: number, extraInfo: osAccount.RequestResult) => {
      console.log('delUser result = ' + result);
      console.log('delUser extraInfo = ' + JSON.stringify(extraInfo));
    }
  });
} catch (e) {
  console.error('delUser exception = ' + JSON.stringify(e));
}

delCred8+

delCred(credentialId: Uint8Array, token: Uint8Array, callback: IIdmCallback): void

删除用户凭据信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.MANAGE_USER_IDM

参数:

参数名 类型 必填 说明
credentialId Uint8Array 凭证索引。
token Uint8Array 身份验证令牌。
callback IIdmCallback 回调对象,返回删除凭据的结果。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid credentialId.
12300101 The token is invalid.
12300102 The credential does not exist.

示例:

let userIDM = new osAccount.UserIdentityManager();
let credentialId: Uint8Array = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]);
let token: Uint8Array = new Uint8Array([0]);
try {
  userIDM.delCred(credentialId, token, {
    onResult: (result: number, extraInfo: osAccount.RequestResult) => {
        console.log('delCred result = ' + result);
        console.log('delCred extraInfo = ' + JSON.stringify(extraInfo));
    }
  });
} catch (e) {
  console.error('delCred exception = ' + JSON.stringify(e));
}

getAuthInfo8+

getAuthInfo(callback: AsyncCallback<Array<EnrolledCredInfo>>): void

获取认证信息。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.USE_USER_IDM

参数:

参数名 类型 必填 说明
callback AsyncCallback<Array<EnrolledCredInfo>> 回调函数。如果成功,err为null,data为当前用户的所有已注册凭据信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
try {
  userIDM.getAuthInfo((err: BusinessError, result: osAccount.EnrolledCredInfo[]) => {
    console.log('getAuthInfo err = ' + JSON.stringify(err));
    console.log('getAuthInfo result = ' + JSON.stringify(result));
  });
} catch (e) {
  console.error('getAuthInfo exception = ' + JSON.stringify(e));
}

getAuthInfo8+

getAuthInfo(authType: AuthType, callback: AsyncCallback<Array<EnrolledCredInfo>>): void

获取指定类型的认证信息。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.USE_USER_IDM

参数:

参数名 类型 必填 说明
authType AuthType 认证类型。
callback AsyncCallback<Array<EnrolledCredInfo>> 回调函数,如果获取成功,err为null,data为当前用户指定类型的所有已注册凭据信息;否则为错误对象。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid authType.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
try {
  userIDM.getAuthInfo(osAccount.AuthType.PIN,
    (err: BusinessError, result: osAccount.EnrolledCredInfo[]) => {
    console.log('getAuthInfo err = ' + JSON.stringify(err));
    console.log('getAuthInfo result = ' + JSON.stringify(result));
  });
} catch (e) {
  console.error('getAuthInfo exception = ' + JSON.stringify(e));
}

getAuthInfo8+

getAuthInfo(authType?: AuthType): Promise<Array<EnrolledCredInfo>>;

获取认证信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.USE_USER_IDM

参数:

参数名 类型 必填 说明
authType AuthType 认证类型,默认为空,表示查询所有认证类型的信息。

返回值:

类型 说明
Promise<Array<EnrolledCredInfo>> Promise对象,返回当前用户指定类型的所有已注册凭据信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid authType.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
try {
  userIDM.getAuthInfo(osAccount.AuthType.PIN).then((result: osAccount.EnrolledCredInfo[]) => {
    console.log('getAuthInfo result = ' + JSON.stringify(result))
  }).catch((err: BusinessError) => {
    console.error('getAuthInfo error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getAuthInfo exception = ' + JSON.stringify(e));
}

getAuthInfo12+

getAuthInfo(options?: GetAuthInfoOptions): Promise<Array<EnrolledCredInfo>>

依据提供的可选参数,获取认证信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.USE_USER_IDM

参数:

参数名 类型 必填 说明
options GetAuthInfoOptions 获取认证信息的可选参数集合。

返回值:

类型 说明
Promise<Array<EnrolledCredInfo>> Promise对象,返回当前用户指定类型的所有已注册凭据信息。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid options.
12300003 Account not found.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
let options: osAccount.GetAuthInfoOptions = {
  authType: osAccount.AuthType.PIN,
  accountId: 100,
};
try {
  userIDM.getAuthInfo(options).then((result: osAccount.EnrolledCredInfo[]) => {
    console.log('getAuthInfo result = ' + JSON.stringify(result))
  }).catch((err: BusinessError) => {
    console.error('getAuthInfo error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getAuthInfo exception = ' + JSON.stringify(e));
}

getEnrolledId12+

getEnrolledId(authType: AuthType, accountId?: number): Promise<Uint8Array>

基于凭据类型,以及可选的账号标识,获取已注册的凭据ID。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

需要权限: ohos.permission.USE_USER_IDM

参数:

参数名 类型 必填 说明
authType AuthType 认证凭据类型
accountId number 系统账号标识,默认为空。

返回值:

类型 说明
Promise<Uint8Array> Promise对象,返回已注册的凭据ID。

错误码:

错误码ID 错误信息
201 Permission denied.
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.
12300001 The system service works abnormally.
12300002 Invalid authType.
12300003 Account not found.
12300102 The credential does not exist.
12300106 The authentication type is not supported.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
let userIDM = new osAccount.UserIdentityManager();
let authType: osAccount.AuthType = osAccount.AuthType.PIN;
let accountId = 100;
try {
  userIDM.getEnrolledId(authType, accountId).then((enrolledId: Uint8Array) => {
      console.info('getEnrolledId enrolledId = ' + JSON.stringify(enrolledId));
  }).catch((err: BusinessError) => {
      console.error('getEnrolledId error = ' + JSON.stringify(err));
  });
} catch (e) {
  console.error('getEnrolledId exception = ' + JSON.stringify(e));
}

IInputData8+

密码数据回调。

系统接口: 此接口为系统接口。

onSetData8+

onSetData: (authSubType: AuthSubType, data: Uint8Array) => void;

系统接口: 此接口为系统接口。

通知设置数据。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
authSubType AuthSubType 用于认证的凭据子类型。
data Uint8Array 要设置的数据是凭据,用来在认证、添加、修改凭据操作。

错误码:

错误码ID 错误信息
202 Not system application.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
12300002 Invalid pinSubType.

示例:

let password: Uint8Array = new Uint8Array([0, 0, 0, 0, 0, 0]);
let passwordNumber: Uint8Array = new Uint8Array([1, 2, 3, 4]);
let inputer: osAccount.IInputer = {
  onGetData: (authSubType: osAccount.AuthSubType, callback: osAccount.IInputData) => {
      if (authSubType == osAccount.AuthSubType.PIN_NUMBER) {
        callback.onSetData(authSubType, passwordNumber);
      } else {
        callback.onSetData(authSubType, password);
      }
  }
};

IInputer8+

凭据输入器回调。

系统接口: 此接口为系统接口。

onGetData8+

onGetData: (authSubType: AuthSubType, callback: IInputData, options: GetInputDataOptions) => void;

通知调用者获取数据的回调函数。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
authSubType AuthSubType 认证凭据子类型。
callback IInputData 指示密码数据回调。
options GetInputDataOptions 回调函数的可选参数集合。

示例:

let password: Uint8Array = new Uint8Array([0, 0, 0, 0, 0, 0]);
let passwordNumber: Uint8Array = new Uint8Array([1, 2, 3, 4]);
let inputer: osAccount.IInputer = {
  onGetData: (authSubType: osAccount.AuthSubType,
    callback: osAccount.IInputData, options: osAccount.GetInputDataOptions) => {
      if (authSubType == osAccount.AuthSubType.PIN_NUMBER) {
        callback.onSetData(authSubType, passwordNumber);
      } else {
        callback.onSetData(authSubType, password);
      }
  }
};
let pinAuth: osAccount.PINAuth = new osAccount.PINAuth();
let result = pinAuth.registerInputer(inputer);
console.log('registerInputer result: ' + result);

IUserAuthCallback8+

表示用户认证回调类。

系统接口: 此接口为系统接口。

onResult8+

onResult: (result: number, extraInfo: AuthResult) => void;

身份认证结果回调函数,返回结果码和认证结果信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
result number 表示身份认证结果代码。
extraInfo AuthResult 表示不同情况下的具体信息,如果认证通过,则在extrainfo中返回认证令牌,如果身份验证失败,则在extrainfo中返回剩余的身份验证时间,如果身份验证执行器被锁定,冻结时间将在extrainfo中返回。

示例:

let authCallback: osAccount.IUserAuthCallback = {
  onResult: (result: number, extraInfo: osAccount.AuthResult) => {
    console.log('auth result = ' + result);
    console.log('auth extraInfo = ' + JSON.stringify(extraInfo));
  }
};

onAcquireInfo?8+

onAcquireInfo?: (module: number, acquire: number, extraInfo: Uint8Array) => void;

身份认证信息获取回调函数。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
module number 指示用于身份验证的执行器类型。
acquire number 指示不同身份验证执行器的tip代码。
extraInfo Uint8Array 保留参数。

示例:

let authCallback: osAccount.IUserAuthCallback = {
  onResult: (result: number, extraInfo: osAccount.AuthResult) => {
    console.log('auth result = ' + result)
    console.log('auth extraInfo = ' + JSON.stringify(extraInfo));
  },
  onAcquireInfo: (module: number, acquire: number, extraInfo: Uint8Array) => {
    console.log('auth module = ' + module);
    console.log('auth acquire = ' + acquire);
    console.info('auth extraInfo = ' + JSON.stringify(extraInfo));
  }
};

IIdmCallback8+

表示身份管理回调类。

系统接口: 此接口为系统接口。

onResult8+

onResult: (result: number, extraInfo: RequestResult) => void;

身份管理操作结果回调函数,返回结果码和请求结果信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
result number 表示身份认证结果代码。
extraInfo RequestResult 针对不同情况传递具体信息。

示例:

let idmCallback: osAccount.IIdmCallback = {
  onResult: (result: number, extraInfo: osAccount.RequestResult) => {
    console.log('callback result = ' + result)
    console.info('callback extraInfo = ' + JSON.stringify(extraInfo));
  }
};

onAcquireInfo?8+

onAcquireInfo?: (module: number, acquire: number, extraInfo: Uint8Array) => void;

身份管理信息获取回调函数。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

参数:

参数名 类型 必填 说明
module number 指示用于身份验证的执行器类型。
acquire number 指示不同身份验证执行器的tip代码。
extraInfo Uint8Array 保留参数。

示例:

let idmCallback: osAccount.IIdmCallback = {
  onResult: (result: number, extraInfo: Object) => {
    console.log('callback result = ' + result)
    console.log('callback onResult = ' + JSON.stringify(extraInfo));
  },
  onAcquireInfo: (module: number, acquire: number, extraInfo: Uint8Array) => {
    console.log('callback module = ' + module);
    console.log('callback acquire = ' + acquire);
    console.log('callback onacquireinfo = ' + JSON.stringify(extraInfo));
  }
};

GetPropertyRequest8+

提供获取属性请求的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
authType AuthType 身份验证凭据类型。
keys Array<GetPropertyType> 指示要获取的属性类型数组。
accountId12+ number 系统账号标识,默认为undefined。

SetPropertyRequest8+

提供设置属性请求的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
authType AuthType 身份验证凭据类型。
key SetPropertyType 指示要设置的属性类型。
setInfo Uint8Array 指示要设置的信息。

ExecutorProperty8+

提供执行器的属性。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 可读 可写 说明
result number 指示结果。
authSubType AuthSubType 指示认证凭据子类型。
remainTimes number 指示剩余次数。
freezingTime number 指示冻结时间。
enrollmentProgress10+ string 指示录入进度,默认为空。
sensorInfo10+ string 指示传感器信息,默认为空。
nextPhaseFreezingTime12+ number 指示下次冻结时间,默认为undefined。

AuthResult8+

表示认证结果的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
token Uint8Array 指示认证令牌,默认为空。
remainTimes number 指示剩余次数,默认为空。
freezingTime number 指示冻结时间,默认为空。
nextPhaseFreezingTime12+ number 指示下次冻结时间,默认为undefined。
credentialId12+ Uint8Array 指示凭据ID,默认为空。
accountId12+ number 指示系统账号标识,默认为undefined。
pinValidityPeriod12+ number 指示认证有效期,默认为undefined。

CredentialInfo8+

表示凭证信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
credType AuthType 指示凭据类型。
credSubType AuthSubType 指示凭据子类型。
token Uint8Array 指示认证令牌。
accountId12+ number 系统账号标识,默认为undefined。

RequestResult8+

表示请求结果的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
credentialId Uint8Array 指示凭据索引,默认为空。

EnrolledCredInfo8+

表示已注册凭据的信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
credentialId Uint8Array 指示凭据索引。
authType AuthType 指示认证凭据类型。
authSubType AuthSubType 指示认证凭据子类型。
templateId Uint8Array 指示凭据模板ID。

GetPropertyType8+

表示要获取的属性类型的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
AUTH_SUB_TYPE 1 认证子类型。
REMAIN_TIMES 2 剩余次数。
FREEZING_TIME 3 冻结时间。
ENROLLMENT_PROGRESS10+ 4 录入进度。
SENSOR_INFO10+ 5 传感器信息。
NEXT_PHASE_FREEZING_TIME12+ 6 下次冻结时间。

SetPropertyType8+

表示要设置的属性类型的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
INIT_ALGORITHM 1 初始化算法。

AuthType8+

表示身份验证的凭据类型的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
PIN 1 表示PIN认证类型。
FACE 2 表示脸部认证类型。
FINGERPRINT10+ 4 表示指纹认证类型。
RECOVERY_KEY12+ 8 表示键恢复类型。
PRIVATE_PIN14+ 16 表示隐私PIN类型。
DOMAIN9+ 1024 表示域认证类型。

AuthSubType8+

表示用于认证的凭据子类型的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
PIN_SIX 10000 表示6位凭证。
PIN_NUMBER 10001 表示自定义数字凭证。
PIN_MIXED 10002 表示自定义混合凭据。
PIN_FOUR12+ 10003 表示4位凭证。
PIN_PATTERN12+ 10004 表示图案凭据。
PIN_QUESTION14+ 10005 表示密保问题凭据。
FACE_2D 20000 表示2D 人脸凭证。
FACE_3D 20001 表示3D 人脸凭证。
FINGERPRINT_CAPACITIVE10+ 30000 表示电容式指纹。
FINGERPRINT_OPTICAL10+ 30001 表示光学指纹。
FINGERPRINT_ULTRASONIC10+ 30002 表示超声波指纹。
DOMAIN_MIXED9+ 10240001 表示域认证混合凭证。

AuthTrustLevel8+

表示认证结果的受信任级别的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
ATL1 10000 信任级别 1。
ATL2 20000 信任级别 2。
ATL3 30000 信任级别 3。
ATL4 40000 信任级别 4。

Module8+

表示获取信息的模块的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
FACE_AUTH 1 表示从人脸认证获取的信息。

ResultCode8+

表示身份验证结果码。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
SUCCESS 0 表示身份验证成功或支持此功能。
FAIL 1 表示验证器无法识别用户。
GENERAL_ERROR 2 表示其他错误。
CANCELED 3 表示身份验证已取消。
TIMEOUT 4 表示身份验证已超时。
TYPE_NOT_SUPPORT 5 表示不支持此身份验证类型。
TRUST_LEVEL_NOT_SUPPORT 6 表示不支持身份验证信任级别。
BUSY 7 表示身份验证任务正忙。等待几秒钟,然后重试。
INVALID_PARAMETERS 8 表示参数不正确。
LOCKED 9 指示身份验证器已锁定。
NOT_ENROLLED 10 表示用户尚未注册验证器。

FaceTipsCode8+

表示人脸验证过程中提示的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
FACE_AUTH_TIP_TOO_BRIGHT 1 表示由于高照明,获得的面部图像太亮。
FACE_AUTH_TIP_TOO_DARK 2 表示由于照明度低,获得的面部图像太暗。
FACE_AUTH_TIP_TOO_CLOSE 3 表示面部离设备太近。
FACE_AUTH_TIP_TOO_FAR 4 表示面部离设备太远。
FACE_AUTH_TIP_TOO_HIGH 5 表示设备太高,仅捕捉面部上部。
FACE_AUTH_TIP_TOO_LOW 6 表示设备太低,仅捕捉面部下部。
FACE_AUTH_TIP_TOO_RIGHT 7 指示设备向右偏移,并且仅捕捉面部的右侧部分。
FACE_AUTH_TIP_TOO_LEFT 8 指示设备向左偏移,并且仅捕捉面部的左侧部分。
FACE_AUTH_TIP_TOO_MUCH_MOTION 9 表示面部信息收集过程中面部移动过快。
FACE_AUTH_TIP_POOR_GAZE 10 表示面未朝向设备。
FACE_AUTH_TIP_NOT_DETECTED 11 表示未检测到人脸。

FingerprintTips8+

表示指纹身份验证过程中提示的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
FINGERPRINT_TIP_GOOD 0 表示采集的图像良好。
FINGERPRINT_TIP_IMAGER_DIRTY 1 表示由于传感器上可疑或检测到污垢,指纹图像噪声过大。
FINGERPRINT_TIP_INSUFFICIENT 2 表示由于检测到的情况,指纹图像噪声太大,无法处理。
FINGERPRINT_TIP_PARTIAL 3 表示仅检测到部分指纹图像。
FINGERPRINT_TIP_TOO_FAST 4 表示指纹图像由于快速运动而不完整。
FINGERPRINT_TIP_TOO_SLOW 5 表示由于缺少运动,指纹图像无法读取。
FINGERPRINT_TIP_FINGER_DOWN10+ 6 表示手指落下。
FINGERPRINT_TIP_FINGER_UP10+ 7 表示手指抬起。

OsAccountInfo

表示系统账号信息。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
shortName12+ string 系统账号的短名称。
系统接口: 此接口为系统接口,默认为空。
isLoggedIn12+ boolean 是否登录。
系统接口: 此接口为系统接口,默认为false。

OsAccountType

表示系统账号类型的枚举。

系统能力: SystemCapability.Account.OsAccount。

名称 说明
PRIVATE12+ 1024 隐私账号。隐私账号只能有一个。
系统接口: 此接口为系统接口。

DomainAccountInfo8+

表示域账号信息。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
accountId10+ string 域账号标识。
系统接口: 此接口为系统接口,默认为undefined。
isAuthenticated11+ boolean 指示域账号是否已认证。
系统接口: 此接口为系统接口,默认为false。

ConstraintSourceTypeInfo9+

表示约束来源类型信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
localId number 系统账号ID
type ConstraintSourceType 约束来源类型。

ConstraintSourceType9+

表示约束来源类型的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
CONSTRAINT_NOT_EXIST 0 约束不存在。
CONSTRAINT_TYPE_BASE 1 约束源自系统设置。
CONSTRAINT_TYPE_DEVICE_OWNER 2 约束源自设备所有者设置。
CONSTRAINT_TYPE_PROFILE_OWNER 3 约束源自资料所有者设置。

AuthStatusInfo10+

表示认证状态信息。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
remainTimes number 剩余次数。
freezingTime number 冻结时间。

GetDomainAccessTokenOptions10+

表示获取域访问令牌的选项。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
domainAccountInfo DomainAccountInfo 域账号的信息。
domainAccountToken Uint8Array 域账号的令牌。
businessParams Record<string, Object> 业务参数,由业务方根据请求协议自定义。
callerUid number 调用方唯一标识符。

GetDomainAccountInfoOptions10+

表示查询域账号信息的选项。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
accountName string 域账号名。
domain string 域名。默认为undefined。
serverConfigId12+ string 域账号所属服务器标识。默认为undefined。

GetDomainAccountInfoPluginOptions10+

表示插件查询域账号信息的选项。GetDomainAccountInfoPluginOptions类继承GetDomainAccountInfoOptions

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
callerUid number 调用方唯一标识符。

OsAccountSwitchEventData12+

表示系统账号前后台开始切换和结束切换事件的数据结构。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
fromAccountId number 切换前系统账号ID。
toAccountId number 切换后系统账号ID。

CreateOsAccountOptions12+

表示用于创建系统账号的可选参数。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
shortName string 表示账号短名称(用作个人文件夹目录)
约束:
1)不允许出现的字符:< > | : " * ? / \
2)不允许独立出现的字符串:.或..
3)长度不超过255个字符

CreateOsAccountForDomainOptions12+

表示用于创建与指定域账号绑定的系统账号的可选参数。继承自CreateOsAccountOptions

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
shortName string 表示账号短名称(用作个人文件夹目录)。
约束:
1)不允许出现的字符:< > | : " * ? / \
2)不允许独立出现的字符串:.或..
3)长度不超过255个字符。

GetAuthInfoOptions12+

表示查询认证凭据信息的可选参数集合。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
authType AuthType 认证类型,默认为undefined。
accountId number 系统账号标识,默认为undefined。

AuthIntent12+

表示认证意图的枚举。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 说明
UNLOCK 1 解锁意图。
SILENT_AUTH14+ 2 静默认证意图。
QUESTION_AUTH14+ 3 密保问题认证意图。

RemoteAuthOptions12+

表示远程认证的可选参数集合。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
verifierNetworkId string 凭据验证者的网络标识,默认为空。
collectorNetworkId string 凭据收集者的网络标识,默认为空。
collectorTokenId number 凭据收集者的令牌标识,默认为undefined。

AuthOptions12+

表示认证用户的可选参数集合。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
accountId number 系统账号标识,默认为undefined。
authIntent AuthIntent 认证意图,默认为undefined。
remoteAuthOptions RemoteAuthOptions 远程认证选项,默认为undefined。

GetInputDataOptions 12+

表示通知调用者获取数据的可选参数集合。

系统接口: 此接口为系统接口。

系统能力: SystemCapability.Account.OsAccount

名称 类型 必填 说明
challenge Uint8Array 挑战值,默认为undefined。