# OS Account Management > ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```js import account_osAccount from '@ohos.account.osAccount'; ``` ## account_osAccount.getAccountManager getAccountManager(): AccountManager Obtains an **AccountManager** instance. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | --------------------------------- | ------------------------ | | [AccountManager](#accountmanager) | Obtains an **AccountManager** instance.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); ``` ## OsAccountType Enumerates OS account types. **System capability**: SystemCapability.Account.OsAccount | Name | Default Value| Description | | ------ | ------ | ------------ | | ADMIN | 0 | Administrator account| | NORMAL | 1 | Normal account | | GUEST | 2 | Guest account | ## AccountManager Provides methods to manage OS accounts. ### activateOsAccount activateOsAccount(localId: number, callback: AsyncCallback<void>): void Activates an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | -------------------- | | localId | number | Yes | ID of the OS account to activate.| | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example**: Activate OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.activateOsAccount(localId, (err)=>{ console.log("activateOsAccount err:" + JSON.stringify(err)); }); ``` ### activateOsAccount activateOsAccount(localId: number): Promise<void> Activates an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the OS account to activate.| **Return Value** | Type | Description | | :------------------ | :---------------------------------- | | Promise<void> | Promise used to return the result.| **Example**: Activate OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.activateOsAccount(localId).then(() => { console.log("activateOsAccount success"); }).catch((err) => { console.log("activateOsAccount err:" + JSON.stringify(err)); }); ``` ### isMultiOsAccountEnable isMultiOsAccountEnable(callback: AsyncCallback<boolean>): void Checks whether multiple OS accounts are supported. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | --------------------------------------------------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If multiple OS accounts are supported, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isMultiOsAccountEnable((err, isEnabled) => { console.log("isMultiOsAccountEnable err: " + JSON.stringify(err)); console.log('isMultiOsAccountEnable isEnabled: ' + isEnabled); }); ``` ### isMultiOsAccountEnable isMultiOsAccountEnable(): Promise<boolean> Checks whether multiple OS accounts are supported. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | | Promise<boolean> | Promise used to return the result. If multiple OS accounts are supported, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isMultiOsAccountEnable().then((isEnabled) => { console.log('isMultiOsAccountEnable, isEnabled: ' + isEnabled); }).catch((err) => { console.log("isMultiOsAccountEnable err: " + JSON.stringify(err)); }); ``` ### isOsAccountActived isOsAccountActived(localId: number, callback: AsyncCallback<boolean>): void Checks whether an OS account is activated. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | ------------------------------------------------- | | localId | number | Yes | ID of the target OS account. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the OS account is activated, **true** will be returned. Otherwise, **false** will be returned.| **Example**: Check whether OS account 100 is activated. ```js const accountManager = account_osAccount.getAccountManager(); var osLocalId = 100; accountManager.isOsAccountActived(osLocalId, (err, isActive)=>{ console.log("isOsAccountActived err:" + JSON.stringify(err)); console.log("isOsAccountActived isActive:" + isActive); }); ``` ### isOsAccountActived isOsAccountActived(localId: number): Promise<boolean> Checks whether an OS account is activated. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| **Return Value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | | Promise<boolean> | Promise used to return the result. If the OS account is activated, **true** will be returned. Otherwise, **false** will be returned.| **Example**: Check whether OS account 100 is activated. ```js const accountManager = account_osAccount.getAccountManager(); var osLocalId = 100; accountManager.isOsAccountActived(osLocalId).then((isActive) => { console.log('isOsAccountActived, isActive: ' + isActive); }).catch((err) => { console.log("isOsAccountActived err: " + JSON.stringify(err)); }); ``` ### isOsAccountConstraintEnable isOsAccountConstraintEnable(localId: number, constraint: string, callback: AsyncCallback<boolean>): void Checks whether the specified constraint is enabled for an OS account. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ---------- | ---------------------------- | ---- | ------------------------------------------------- | | localId | number | Yes | ID of the target OS account. | | constraint | string | Yes | [Constraint](#constraints) specified. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the constraint is enabled for the OS account, **true** will be returned. Otherwise, **false** will be returned.| **Example**: Check whether OS account 100 is forbidden to use Wi-Fi. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.isOsAccountConstraintEnable(localId, "constraint.wifi", (err, isConstraintEnabled)=>{ console.log("isOsAccountConstraintEnable err:" + JSON.stringify(err)); console.log("isOsAccountConstraintEnable isConstraintEnabled:" + isConstraintEnabled); }); ``` ### isOsAccountConstraintEnable isOsAccountConstraintEnable(localId: number, constraint: string): Promise<boolean> Checks whether the specified constraint is enabled for an OS account. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ---------- | ------ | ---- | ------------------------------------- | | localId | number | Yes | ID of the target OS account. | | constraint | string | Yes | [Constraint](#constraints) specified.| **Return Value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | | Promise<boolean> | Promise used to return the result. If the constraint is enabled for the OS account, **true** will be returned. Otherwise, **false** will be returned.| **Example**: Check whether OS account 100 is forbidden to use Wi-Fi. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.isOsAccountConstraintEnable(localId, "constraint.wifi").then((isConstraintEnabled) => { console.log('isOsAccountConstraintEnable, isConstraintEnabled: ' + isConstraintEnabled); }).catch((err) => { console.log("isOsAccountConstraintEnable err: " + JSON.stringify(err)); }); ``` ### isTestOsAccount isTestOsAccount(callback: AsyncCallback<boolean>): void Checks whether this OS account is a test account. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | ----------------------------------------------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the account is a test account, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isTestOsAccount((err, isTest) => { console.log("isTestOsAccount err: " + JSON.stringify(err)); console.log('isTestOsAccount isTest: ' + isTest); }); ``` ### isTestOsAccount isTestOsAccount(): Promise<boolean> Checks whether this OS account is a test account. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | | Promise<boolean> | Promise used to return the result. If the account is a test account, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isTestOsAccount().then((isTest) => { console.log('isTestOsAccount, isTest: ' + isTest); }).catch((err) => { console.log("isTestOsAccount err: " + JSON.stringify(err)); }); ``` ### isOsAccountVerified isOsAccountVerified(callback: AsyncCallback<boolean>): void Checks whether this OS account has been verified. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | ------------------------------------------- | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the OS account has been verified, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isOsAccountVerified((err, isVerified) => { console.log("isOsAccountVerified err: " + JSON.stringify(err)); console.log('isOsAccountVerified isVerified: ' + isVerified); }); ``` ### isOsAccountVerified isOsAccountVerified(localId: number, callback: AsyncCallback<boolean>): void Checks whether an OS account has been verified. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------- | ---- | ------------------------------------------- | | localId | number | No | ID of the target OS account. | | callback | AsyncCallback<boolean> | Yes | Callback used to return the result. If the OS account has been verified, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isOsAccountVerified((err, isVerified) => { console.log("isOsAccountVerified err: " + JSON.stringify(err)); console.log('isOsAccountVerified isVerified: ' + isVerified); }); ``` ### isOsAccountVerified isOsAccountVerified(localId?: number): Promise<boolean> Checks whether an OS account has been verified. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------------ | | localId | number | No | ID of the target OS account.| **Return Value** | Type | Description | | :--------------------- | :----------------------------------------------------------- | | Promise<boolean> | Promise used to return the result. If the OS account has been verified, **true** will be returned. Otherwise, **false** will be returned.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.isOsAccountVerified().then((isVerified) => { console.log('isOsAccountVerified, isVerified: ' + isVerified); }).catch((err) => { console.log("isOsAccountVerified err: " + JSON.stringify(err)); }); ``` ### removeOsAccount removeOsAccount(localId: number, callback: AsyncCallback<void>): void Removes an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | -------------------- | | localId | number | Yes | ID of the OS account to remove.| | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example** ```js const accountManager = account_osAccount.getAccountManager(); var createIocalId; osAccountManager.createOsAccount("testAccountName", osaccount.OsAccountType.NORMAL, (err, osAccountInfo)=>{ createIocalId = osAccountInfo.localId; }); accountManager.removeOsAccount(createIocalId, (err)=>{ console.log("removeOsAccount err:" + JSON.stringify(err)); }); ``` ### removeOsAccount removeOsAccount(localId: number): Promise<void> Removes an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the OS account to remove.| **Return Value** | Type | Description | | :------------------ | :---------------------------------- | | Promise<void> | Promise used to return the result.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); var createIocalId; osAccountManager.createOsAccount("testAccountName", osaccount.OsAccountType.NORMAL, (err, osAccountInfo)=>{ createIocalId = osAccountInfo.localId; }); createIocalId = osAccount.localId; accountManager.removeOsAccount(createIocalId).then(() => { console.log('removeOsAccount Success'); }).catch(() => { console.log("removeOsAccount err: " + JSON.stringify(err)); }); ``` ### setOsAccountConstraints setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean,callback: AsyncCallback<void>): void Sets or removes constraints for an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------------------------- | ---- | -------------------------------------------- | | localId | number | Yes | ID of the target OS account. | | constraints | Array<string> | Yes | List of [constraints](#constraints) to set or remove.| | enable | boolean | Yes | Set or remove constraints. The value **true** means to set constraints, and **false** means to remove constraints. | | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example**: Disable Wi-Fi for OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.setOsAccountConstraints(localId, ["constraint.wifi"], true, (err)=>{ console.log("setOsAccountConstraints err:" + JSON.stringify(err)); }); ``` ### setOsAccountConstraints setOsAccountConstraints(localId: number, constraints: Array<string>, enable: boolean): Promise<void> Sets or removes constraints for an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ----------- | ------------------- | ---- | -------------------------------------------- | | localId | number | Yes | ID of the target OS account. | | constraints | Array<string> | Yes | List of [constraints](#constraints) to set or remove.| | enable | boolean | Yes | Set or remove constraints. The value **true** means to set constraints, and **false** means to remove constraints. | **Return Value** | Type | Description | | :------------------ | :---------------------------------- | | Promise<void> | Promise used to return the result.| **Example**: Remote the constraint on the use of Wi-Fi for OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.setOsAccountConstraints(localId, ["constraint.location.set"], false).then(() => { console.log('setOsAccountConstraints Success'); }).catch((err) => { console.log("setOsAccountConstraints err: " + JSON.stringify(err)); }); ``` ### setOsAccountName setOsAccountName(localId: number, localName: string, callback: AsyncCallback<void>): void Sets a name for an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | :-------- | ------------------------- | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| | localName | string | Yes | Account name to set. | | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example**: Set the name of OS account 100 to **demoName**. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; var newName = "demoName"; accountManager.setOsAccountName(localId, newName, (err)=>{ console.debug("setOsAccountName err:" + JSON.stringify(err)); }); ``` ### setOsAccountName setOsAccountName(localId: number, localName: string): Promise<void> Sets a name for an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | --------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| | localName | string | Yes | Account name to set. | **Return Value** | Type | Description | | :------------------ | :---------------------------------- | | Promise<void> | Promise used to return the result.| **Example**: Set the name of OS account 100 to **demoName**. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; var nameLimit = "demoName"; accountManager.setOsAccountName(localId, nameLimit).then(() => { console.log('setOsAccountName Success'); }).catch((err) => { console.log("setOsAccountName err: " + JSON.stringify(err)); }); ``` ### getCreatedOsAccountsCount getCreatedOsAccountsCount(callback: AsyncCallback<number>): void Obtains the number of OS accounts created. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ------------------------------------------ | | callback | AsyncCallback<number> | Yes | Callback used to return the number of OS accounts created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getCreatedOsAccountsCount((err, accountCnt)=>{ console.log("obtains the number of all os accounts created err:" + JSON.stringify(err)); console.log("obtains the number of all os accounts created accountCnt:" + accountCnt); }); ``` ### getCreatedOsAccountsCount getCreatedOsAccountsCount(): Promise<number> Obtains the number of OS accounts created. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the number of OS accounts created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getCreatedOsAccountsCount().then((accountCnt) => { console.log('getCreatedOsAccountsCount, accountCnt: ' + accountCnt); }).catch((err) => { console.log("getCreatedOsAccountsCount err: " + JSON.stringify(err)); }); ``` ### getOsAccountLocalIdFromProcess getOsAccountLocalIdFromProcess(callback: AsyncCallback<number>): void Obtains the ID of the OS account to which the current process belongs. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | -------------------------------------------------- | | callback | AsyncCallback<number> | Yes | Callback used to return the account ID obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getOsAccountLocalIdFromProcess((err, accountID) => { console.log("getOsAccountLocalIdFromProcess err: " + JSON.stringify(err)); console.log('getOsAccountLocalIdFromProcess accountID: ' + accountID); }); ``` ### getOsAccountLocalIdFromProcess getOsAccountLocalIdFromProcess(): Promise<number> Obtains the ID of the OS account to which the current process belongs. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the account ID obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getOsAccountLocalIdFromProcess().then((accountID) => { console.log('getOsAccountLocalIdFromProcess, accountID: ' + accountID); }).catch((err) => { console.log("getOsAccountLocalIdFromProcess err: " + JSON.stringify(err)); }); ``` ### getOsAccountLocalIdFromUid getOsAccountLocalIdFromUid(uid: number, callback: AsyncCallback<number>): void Obtains the OS account ID based on the process UID. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | --------------------------------------------- | | uid | number | Yes | Process UID. | | callback | AsyncCallback<number> | Yes | Callback used to return the OS account ID obtained.| **Example**: Obtain the ID of the OS account whose process UID is **12345678**. ```js const accountManager = account_osAccount.getAccountManager(); let uid = 12345678; accountManager.getOsAccountLocalIdFromUid(uid, (err, accountID) => { console.log("getOsAccountLocalIdFromUid err: " + JSON.stringify(err)); console.log('getOsAccountLocalIdFromUid: ' + accountID); }); ``` ### getOsAccountLocalIdFromUid getOsAccountLocalIdFromUid(uid: number): Promise<number> Obtains the OS account ID based on the process UID. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name| Type | Mandatory| Description | | ------ | ------ | ---- | --------- | | uid | number | Yes | Process UID.| **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the OS account ID obtained.| **Example**: Obtain the ID of the OS account whose process UID is **12345678**. ```js const accountManager = account_osAccount.getAccountManager(); let uid = 12345678; accountManager.getOsAccountLocalIdFromUid(uid).then((accountID) => { console.log('getOsAccountLocalIdFromUid: ' + accountID); }).catch((err) => { console.log("getOsAccountLocalIdFromUid err: " + JSON.stringify(err)); }); ``` ### getOsAccountLocalIdFromDomain8+ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback<number>): void Obtains the OS account ID based on domain account information. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ---------- | --------------------------------------- | ---- | -------------------------------------------- | | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information. | | callback | AsyncCallback<number> | Yes | Callback used to return the ID of the OS account associated with the domain account.| **Example** ```js var domainInfo = {domain: "testDomain", accountName: "testAccountName"}; const accountManager = account_osAccount.getAccountManager(); accountManager.getOsAccountLocalIdFromDomain(domainInfo, (err, accountID) => { console.log("getOsAccountLocalIdFromDomain: " + JSON.stringify(err)); console.log('getOsAccountLocalIdFromDomain: ' + accountID); }); ``` ### getOsAccountLocalIdFromDomain8+ getOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise<number> Obtains the OS account ID based on domain account information. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ---------- | --------------------------------------- | ---- | ------------ | | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information.| **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the ID of the OS account associated with the domain account.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); var domainInfo = {domain: "testDomain", accountName: "testAccountName"}; accountManager.getOsAccountLocalIdFromDomain(domainInfo).then((accountID) => { console.log('getOsAccountLocalIdFromDomain: ' + accountID); }).catch((err) => { console.log("getOsAccountLocalIdFromDomain err: " + JSON.stringify(err)); }); ``` ### queryMaxOsAccountNumber queryMaxOsAccountNumber(callback: AsyncCallback<number>): void Obtains the maximum number of OS accounts that can be created. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ------------------------------------------------ | | callback | AsyncCallback<number> | Yes | Callback used to return the maximum number of OS accounts that can be created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryMaxOsAccountNumber((err, maxCnt)=>{ console.log("queryMaxOsAccountNumber err:" + JSON.stringify(err)); console.log("queryMaxOsAccountNumber maxCnt:" + maxCnt); }); ``` ### queryMaxOsAccountNumber queryMaxOsAccountNumber(): Promise<number> Obtains the maximum number of OS accounts that can be created. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the maximum number of OS accounts that can be created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryMaxOsAccountNumber().then((maxCnt) => { console.log('queryMaxOsAccountNumber, maxCnt: ' + maxCnt); }).catch((err) => { console.log("queryMaxOsAccountNumber err: " + JSON.stringify(err)); }); ``` ### getOsAccountAllConstraints getOsAccountAllConstraints(localId: number, callback: AsyncCallback<Array<string>>): void Obtains all constraints enabled for an OS account. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ | | localId | number | Yes | ID of the target OS account. | | callback | AsyncCallback<Array<string>> | Yes | Callback used to return all [constraints](#constraints) obtained.| **Example**: Obtain all constraints of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getOsAccountAllConstraints(localId, (err, constraints)=>{ console.log("getOsAccountAllConstraints err:" + JSON.stringify(err)); console.log("getOsAccountAllConstraints:" + JSON.stringify(constraints)); }); ``` ### getOsAccountAllConstraints getOsAccountAllConstraints(localId: number): Promise<Array<string>> Obtains all constraints enabled for an OS account. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| **Return Value** | Type | Description | | :--------------------------------- | :----------------------------------------------------------- | | Promise<Array<string>> | Promise used to return the [constraints](#constraints) obtained.| **Example**: Obtain all constraints of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getOsAccountAllConstraints(localId).then((constraints) => { console.log("getOsAccountAllConstraints, constraints: " + constraints); }).catch((err) => { console.log("getOsAccountAllConstraints err: " + JSON.stringify(err)); }); ``` ### queryAllCreatedOsAccounts queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void Obtains information about all the OS accounts created. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | -------------------------------------------------- | | callback | AsyncCallback<Array<[OsAccountInfo](#osaccountinfo)>> | Yes | Callback used to return information about OS accounts created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryAllCreatedOsAccounts((err, accountArr)=>{ console.log("queryAllCreatedOsAccounts err:" + JSON.stringify(err)); console.log("queryAllCreatedOsAccounts accountArr:" + JSON.stringify(accountArr)); }); ``` ### queryAllCreatedOsAccounts queryAllCreatedOsAccounts(): Promise<Array<OsAccountInfo>> Obtains information about all the OS accounts created. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :---------------------------------------------------------- | :----------------------------------------------------------- | | Promise<Array<[OsAccountInfo](#osaccountinfo)>> | Promise used to return information about OS accounts created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryAllCreatedOsAccounts().then((accountArr) => { console.log('queryAllCreatedOsAccounts, accountArr: ' + JSON.stringify(accountArr)); }).catch((err) => { console.log("queryAllCreatedOsAccounts err: " + JSON.stringify(err)); }); ``` ### queryActivatedOsAccountIds8+ queryActivatedOsAccountIds(callback: AsyncCallback<Array<number>>): void Obtains information about all activated OS accounts. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------- | ---- | ------------------------------------------------------ | | callback | AsyncCallback<Array<number>> | Yes | Callback used to return information about activated OS accounts.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryActivatedOsAccountIds((err, idArray)=>{ console.log("queryActivatedOsAccountIds err:" + JSON.stringify(err)); console.log("queryActivatedOsAccountIds idArray length:" + idArray.length); for(var i=0;i8+ queryActivatedOsAccountIds(): Promise<Array<number>> Obtains information about all activated OS accounts. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :--------------------------------- | :----------------------------------------------------------- | | Promise<Array<number>> | Promise used to return information about activated OS accounts.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryActivatedOsAccountIds().then((idArray) => { console.log('queryActivatedOsAccountIds, idArray: ' + idArray); }).catch((err) => { console.log("queryActivatedOsAccountIds err: " + JSON.stringify(err)); }); ``` ### createOsAccount createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void Creates an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | :-------- | ---------------------------------------------------- | ---- | ------------------------------------------ | | localName | string | Yes | Name of the OS account to create. | | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create. | | callback | AsyncCallback<[OsAccountInfo](#osaccountinfo)> | Yes | Callback used to return the OS account created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.createOsAccount("testName", osaccount.OsAccountType.NORMAL, (err, osAccountInfo)=>{ console.log("createOsAccount err:" + JSON.stringify(err)); console.log("createOsAccount osAccountInfo:" + JSON.stringify(osAccountInfo)); }); ``` ### createOsAccount createOsAccount(localName: string, type: OsAccountType): Promise<OsAccountInfo> Creates an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | --------- | ------------------------------- | ---- | ---------------------- | | localName | string | Yes | Name of the OS account to create.| | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create.| **Return Value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | | Promise<[OsAccountInfo](#osaccountinfo)> | Promise used to return the OS account created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.createOsAccount("testAccountName", osaccount.OsAccountType.NORMAL).then((accountInfo) => { console.log("createOsAccount, accountInfo: " + JSON.stringify(accountInfo)); }).catch((err) => { console.log("createOsAccount err: " + JSON.stringify(err)); }); ``` ### createOsAccountForDomain8+ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void Creates an OS account and associates it with the specified domain account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | :--------- | ---------------------------------------------------- | ---- | ------------------------------------------ | | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create. | | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information. | | callback | AsyncCallback<[OsAccountInfo](#osaccountinfo)> | Yes | Callback used to return the OS account created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); var domainInfo = {domain: "testDomain", accountName: "testAccountName"}; accountManager.createOsAccountForDomain(osaccount.OsAccountType.NORMAL, domainInfo, (err, osAccountInfo)=>{ console.log("createOsAccountForDomain err:" + JSON.stringify(err)); console.log("createOsAccountForDomain osAccountInfo:" + JSON.stringify(osAccountInfo)); }); ``` ### createOsAccountForDomain8+ createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo> Creates an OS account and associates it with the specified domain account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ---------- | --------------------------------------- | ---- | ---------------------- | | type | [OsAccountType](#osaccounttype) | Yes | Type of the OS account to create.| | domainInfo | [DomainAccountInfo](#domainaccountinfo) | Yes | Domain account information. | **Return Value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | | Promise<[OsAccountInfo](#osaccountinfo)> | Promise used to return the OS account created.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); var domainInfo = {domain: "testDomain", accountName: "testAccountName"}; accountManager.createOsAccountForDomain(osaccount.OsAccountType.NORMAL, domainInfo).then((accountInfo) => { console.log("createOsAccountForDomain, account info: " + JSON.stringify(accountInfo)); }).catch((err) => { console.log("createOsAccountForDomain err: " + JSON.stringify(err)); }); ``` ### queryCurrentOsAccount queryCurrentOsAccount(callback: AsyncCallback<OsAccountInfo>): void Obtains information about the OS account to which the current process belongs. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------------------- | ---- | ---------------------------------------------- | | callback | AsyncCallback<[OsAccountInfo](#osaccountinfo)> | Yes | Callback used to return information about the OS account obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryCurrentOsAccount((err, curAccountInfo)=>{ console.log("queryCurrentOsAccount err:" + JSON.stringify(err)); console.log("queryCurrentOsAccount curAccountInfo:" + JSON.stringify(curAccountInfo)); }); ``` ### queryCurrentOsAccount queryCurrentOsAccount(): Promise<OsAccountInfo> Obtains information about the OS account to which the current process belongs. This method uses a promise to return the result. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | | Promise<[OsAccountInfo](#osaccountinfo)> | Promise used to return information about the OS account obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.queryCurrentOsAccount().then((accountInfo) => { console.log("queryCurrentOsAccount, accountInfo: " + JSON.stringify(accountInfo)); }).catch((err) => { console.log("queryCurrentOsAccount err: " + JSON.stringify(err)); }); ``` ### queryOsAccountById queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void Obtains information about an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------------------- | ---- | ---------------------------------------- | | localId | number | Yes | ID of the target OS account. | | callback | AsyncCallback<[OsAccountInfo](#osaccountinfo)> | Yes | Callback used to return the OS account information obtained.| **Example**: Query information about OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.queryOsAccountById(localId, (err, accountInfo)=>{ console.log("queryOsAccountById err:" + JSON.stringify(err)); console.log("queryOsAccountById accountInfo:" + JSON.stringify(accountInfo)); }); ``` ### queryOsAccountById queryOsAccountById(localId: number): Promise<OsAccountInfo> Obtains information about an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | -------------------- | | localId | number | Yes | ID of the target OS account.| **Return Value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | | Promise<[OsAccountInfo](#osaccountinfo)> | Promise used to return the OS account information obtained.| **Example**: Query information about OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.queryOsAccountById(localId).then((accountInfo) => { console.log("queryOsAccountById, accountInfo: " + JSON.stringify(accountInfo)); }).catch((err) => { console.log("queryOsAccountById err: " + JSON.stringify(err)); }); ``` ### getOsAccountTypeFromProcess getOsAccountTypeFromProcess(callback: AsyncCallback<OsAccountType>): void Obtains the type of the OS account to which the current process belongs. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------------------- | ---- | ---------------------------------------------------- | | callback | AsyncCallback<[OsAccountType](#osaccounttype)> | Yes | Callback used to return the OS account type.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getOsAccountTypeFromProcess((err, accountType) => { console.log("getOsAccountTypeFromProcess err: " + JSON.stringify(err)); console.log('getOsAccountTypeFromProcess accountType: ' + accountType); }); ``` ### getOsAccountTypeFromProcess getOsAccountTypeFromProcess(): Promise<OsAccountType> Obtains the type of the OS account to which the current process belongs. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :--------------------------------------------- | :----------------------------------------------------------- | | Promise<[OsAccountType](#osaccounttype)> | Promise used to return the OS account type.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getOsAccountTypeFromProcess().then((accountType) => { console.log('getOsAccountTypeFromProcess, accountType: ' + accountType); }).catch((err) => { console.log("getOsAccountTypeFromProcess err: " + JSON.stringify(err)); }); ``` ### getDistributedVirtualDeviceId getDistributedVirtualDeviceId(callback: AsyncCallback<string>): void Obtains the ID of this distributed virtual device. This method uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC or ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ------------------------------------ | | callback | AsyncCallback<string> | Yes | Callback used to return the device ID obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getDistributedVirtualDeviceId((err, virtualID) => { console.log("getDistributedVirtualDeviceId err: " + JSON.stringify(err)); console.log('getDistributedVirtualDeviceId virtualID: ' + virtualID); }); ``` ### getDistributedVirtualDeviceId getDistributedVirtualDeviceId(): Promise<string> Obtains the ID of this distributed virtual device. This method uses a promise to return the result. **Required permissions**: ohos.permission.DISTRIBUTED_DATASYNC or ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<string> | Promise used to return the device ID obtained.| **Example** ```js const accountManager = account_osAccount.getAccountManager(); accountManager.getDistributedVirtualDeviceId().then((virtualID) => { console.log('getDistributedVirtualDeviceId, virtualID: ' + virtualID); }).catch((err) => { console.log("getDistributedVirtualDeviceId err: " + JSON.stringify(err)); }); ``` ### getOsAccountProfilePhoto getOsAccountProfilePhoto(localId: number, callback: AsyncCallback<string>): void Obtains the profile photo of an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ---------------------------------------- | | localId | number | Yes | ID of the target OS account. | | callback | AsyncCallback<string> | Yes | Callback used to return the profile photo obtained.| **Example**: Obtain the profile photo of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getOsAccountProfilePhoto(localId, (err, photo)=>{ console.log("getOsAccountProfilePhoto err:" + JSON.stringify(err)); console.log("get photo:" + photo + " by localId: " + localId); }); ``` ### getOsAccountProfilePhoto getOsAccountProfilePhoto(localId: number): Promise<string> Obtains the profile photo of an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<string> | Promise used to return the profile photo obtained.| **Example**: Obtain the profile photo of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getOsAccountProfilePhoto(localId).then((photo) => { console.log("getOsAccountProfilePhoto: " + photo); }).catch((err) => { console.log("getOsAccountProfilePhoto err: " + JSON.stringify(err)); }); ``` ### setOsAccountProfilePhoto setOsAccountProfilePhoto(localId: number, photo: string, callback: AsyncCallback<void>): void Sets a profile photo for an OS account. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | ------------------------- | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| | photo | string | Yes | Profile photo information. | | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example**: Set a profile photo for OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; var photo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAPCAYAAAA/I0V3AAAAAXNSR0IArs4c6QAAAARnQU1BAA"+ "Cxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACwSURBVDhPvZLBDYMwDEV/ugsXRjAT0EHCOuFIBwkbdIRewi6unbiAyoGgSn1SFH85+Y"+ "q/4ljARW62X+LHS8uIzjm4dXUYF+utzBikB52Jo5e5iEPKqpACk7R9NM2RvWm5tIkD2czLCUFNKLD6IjdMHFHDzws285MgGrT0xCtp3WOKHo"+ "+7q0mP0DZW9pNmoEFUzrQjp5cCnaen2kSJXLFD8ghbXyZCMQf/8e8Ns1XVAG/XAgqKzVnJFAAAAABJRU5ErkJggg==" osAccountManager.setOsAccountProfilePhoto(localId, photo, (err)=>{ console.log("setOsAccountProfilePhoto err:" + JSON.stringify(err)); }); ``` ### setOsAccountProfilePhoto setOsAccountProfilePhoto(localId: number, photo: string): Promise<void> Sets a profile photo for an OS account. This method uses a promise to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| | photo | string | Yes | Profile photo information. | **Return Value** | Type | Description | | :------------------ | :---------------------------------- | | Promise<void> | Promise used to return the result.| **Example**: Set a profile photo for OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; var photo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAPCAYAAAA/I0V3AAAAAXNSR0IArs4c6QAAAARnQU1BAA"+ "Cxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACwSURBVDhPvZLBDYMwDEV/ugsXRjAT0EHCOuFIBwkbdIRewi6unbiAyoGgSn1SFH85+Y"+ "q/4ljARW62X+LHS8uIzjm4dXUYF+utzBikB52Jo5e5iEPKqpACk7R9NM2RvWm5tIkD2czLCUFNKLD6IjdMHFHDzws285MgGrT0xCtp3WOKHo"+ "+7q0mP0DZW9pNmoEFUzrQjp5cCnaen2kSJXLFD8ghbXyZCMQf/8e8Ns1XVAG/XAgqKzVnJFAAAAABJRU5ErkJggg==" accountManager.setOsAccountProfilePhoto(localId, photo).then(() => { console.log("setOsAccountProfilePhoto success"); }).catch((err) => { console.log("setOsAccountProfilePhoto err: " + JSON.stringify(err)); }); ``` ### getOsAccountLocalIdBySerialNumber8+ getOsAccountLocalIdBySerialNumber(serialNumber: number, callback: AsyncCallback<number>): void Obtains the OS account ID based on the SN. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------------ | --------------------------- | ---- | ------------------------------------------------ | | serialNumber | number | Yes | Account SN. | | callback | AsyncCallback<number> | Yes | Callback used to return the OS account ID obtained.| **Example**: Obtain the ID of the OS account whose SN is **12345**. ```js const accountManager = account_osAccount.getAccountManager(); var serialNumber = 12345; accountManager.getOsAccountLocalIdBySerialNumber(serialNumber, (err, localId)=>{ console.log("ger localId err:" + JSON.stringify(err)); console.log("get localId:" + localId + " by serialNumber: " + serialNumber); }); ``` ### getOsAccountLocalIdBySerialNumber8+ getOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number> Obtains the OS account ID based on the SN. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------------ | ------ | ---- | ---------- | | serialNumber | number | Yes | Account SN.| **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the OS account ID obtained.| **Example**: Obtain the ID of the OS account whose SN is **12345**. ```js const accountManager = account_osAccount.getAccountManager(); var serialNumber = 12345; accountManager.getOsAccountLocalIdBySerialNumber(serialNumber).then((localId) => { console.log("getOsAccountLocalIdBySerialNumber localId: " + localId); }).catch((err) => { console.log("getOsAccountLocalIdBySerialNumber err: " + JSON.stringify(err)); }); ``` ### getSerialNumberByOsAccountLocalId8+ getSerialNumberByOsAccountLocalId(localId: number, callback: AsyncCallback<number>): void Obtains the SN of an OS account based on the account ID. This method uses an asynchronous callback to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------- | ---- | ------------------------------------------ | | localId | number | Yes | ID of the target OS account. | | callback | AsyncCallback<number> | Yes | Callback used to return the account SN obtained.| **Example**: Obtain the SN of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getSerialNumberByOsAccountLocalId(localId, (err, serialNumber)=>{ console.log("ger serialNumber err:" + JSON.stringify(err)); console.log("get serialNumber:" + serialNumber + " by localId: " + localId); }); ``` ### getSerialNumberByOsAccountLocalId8+ getSerialNumberByOsAccountLocalId(localId: number): Promise<number> Obtains the SN of an OS account based on the account ID. This method uses a promise to return the result. **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | ------- | ------ | ---- | ------------ | | localId | number | Yes | ID of the target OS account.| **Return Value** | Type | Description | | :-------------------- | :----------------------------------------------------------- | | Promise<number> | Promise used to return the account SN obtained.| **Example**: Obtain the SN of OS account 100. ```js const accountManager = account_osAccount.getAccountManager(); var localId = 100; accountManager.getSerialNumberByOsAccountLocalId(localId).then((serialNumber) => { console.log("getSerialNumberByOsAccountLocalId serialNumber: " + serialNumber); }).catch((err) => { console.log("getSerialNumberByOsAccountLocalId err: " + JSON.stringify(err)); }); ``` ### on on(type: 'activate' | 'activating', name: string, callback: Callback<number>): void Subscribes to OS account changes. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------------- | ---- | ------------------------------------------------------------ | | type | 'activate' \| 'activating' | Yes | Type of the event to subscribe to. The value **activate** means an event indicating that an OS account is activated, and **activating** means an event indicating that an OS account is being activated.| | name | string | Yes | Subscription name, which can be customized. The value cannot be empty or exceed 1024 bytes. | | callback | Callback<number> | Yes | Callback used to return the OS account ID and status changes. | **Example** ```js const accountManager = account_osAccount.getAccountManager(); function onCallback(receiveLocalId){ console.log("receive localId:" + receiveLocalId); } accountManager.on("activating", "osAccountOnOffNameA", onCallback); ``` ### off off(type: 'activate' | 'activating', name: string, callback?: Callback<number>): void Unsubscribes from the OS account changes. This method uses an asynchronous callback to return the result. This is a system API and cannot be called by third-party applications. **Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION **System capability**: SystemCapability.Account.OsAccount **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------------- | ---- | ------------------------------------------------------------ | | type | 'activate' \| 'activating' | Yes | Type of the event to unsubscribe from. The value **activate** means an event indicating that an OS account is activated, and **activating** means an event indicating that an OS account is being activated.| | name | string | Yes | Subscription name, which can be customized. The value cannot be empty or exceed 1024 bytes, and must be the same as the value passed by **on()**.| | callback | Callback<number> | No | Callback used to return the OS account changes. By default, **0** is returned. | **Example** ```js const accountManager = account_osAccount.getAccountManager(); function offCallback(){ console.log("off enter") } accountManager.off("activating", "osAccountOnOffNameA", offCallback); ``` ## OsAccountInfo Defines information about an OS account. **System capability**: SystemCapability.Account.OsAccount | Name | Type | Mandatory| Description | | ------------------------------ | ------------------------------------------------------------ | ---- | --------------------------------- | | localId | number | Yes | ID of the target OS account. | | localName | string | Yes | OS account name. | | type | [OsAccountType](#osaccounttype) | Yes | OS account type. | | constraints | Array<string> | No | [Constraints](#constraints) on the OS account.| | isVerified8+ | boolean | Yes | Whether the OS account is verified. | | photo8+ | string | No | Profile photo of the OS account. | | createTime8+ | number | Yes | Time when the OS account was created. | | lastLoginTime8+ | number | No | Last login time of the OS account. | | serialNumber8+ | number | Yes | SN of the OS account. | | isActived8+ | boolean | Yes | Whether the OS account is activated. | | isCreateCompleted8+ | boolean | Yes | Whether the OS account information is complete. | | distributedInfo | [distributedAccount.DistributedInfo](js-apis-distributed-account.md) | No | Distributed account information. | | domainInfo8+ | [DomainAccountInfo](#domainaccountinfo) | No | Domain account information. | ## DomainAccountInfo8+ Domain account information. **System capability**: SystemCapability.Account.OsAccount | Name | Type | Mandatory| Description | | ----------- | ------ | ---- | ---------- | | domain | string | Yes | Domain name. | | accountName | string | Yes | Domain account name.| ## Constraints | Constraint | Description | | ------------------------------------- | ------------------------------ | | constraint.wifi | A user is not allowed to use Wi-Fi. | | constraint.wifi.set | A user is not allowed to change Wi-Fi settings. | | constraint.locale.set | A user is not allowed to change the device language. | | constraint.app.accounts | A user is not allowed to add or delete app accounts. | | constraint.apps.install | A user is not allowed to install apps. | | constraint.apps.uninstall | A user is not allowed to uninstall apps. | | constraint.location.shared | A user is not allowed to enable location sharing. | | constraint.unknown.sources.install | A user is not allowed to install apps from unknown sources. | | constraint.global.unknown.app.install | All users are not allowed to install apps from unknown sources.| | constraint.bluetooth.set | A user is not allowed to configure Bluetooth. | | constraint.bluetooth | The use of Bluetooth is prohibited on the device.| | constraint.bluetooth.share | Bluetooth sharing is prohibited.| | constraint.usb.file.transfer | A user is not allowed to transfer files over USB.| | constraint.credentials.set | A user is not allowed to configure user credentials.| | constraint.os.account.remove | An admin user is not allowed to remove users or a non-admin user is not allowed to remove itself.| | constraint.managed.profile.remove | The managed profiles of this user cannot be removed.| | constraint.debug.features.use | A user is not allowed to enable or access debugging features.| | constraint.vpn.set | A user is not allowed to configure a VPN.| | constraint.date.time.set | A user is not allowed to set date, time, or time zone.| | constraint.tethering.config | A user is not allowed to configure Tethering.| | constraint.network.reset | A user is not allowed to reset network settings.| | constraint.factory.reset | A user is not allowed to reset factory settings.| | constraint.os.account.create | A user is not allowed to create users.| | constraint.add.managed.profile | A user is not allowed to add managed profiles.| | constraint.apps.verify.disable | A user is not allowed to disable app verification.| | constraint.cell.broadcasts.set | A user is not allowed to configure cell broadcasts.| | constraint.mobile.networks.set | A user is not allowed to configure radio networks.| | constraint.control.apps | A user is not allowed to modify apps in **Settings** or the boot module.| | constraint.physical.media | A user is not allowed to mount external physical media.| | constraint.microphone | A user is not allowed to use microphones.| | constraint.microphone.unmute | A user is not allowed to unmute the microphone.| | constraint.volume.adjust | A user is not allowed to adjust the volume.| | constraint.calls.outgoing | A user is not allowed to make outgoing calls.| | constraint.sms.use | A user is not allowed to send or receive SMS messages.| | constraint.fun | A user is not allowed to have entertainment.| | constraint.windows.create | Windows other than app windows cannot be created.| | constraint.system.error.dialogs | Error dialogs for crashed or unresponsive apps are prohibited.| | constraint.cross.profile.copy.paste | Pasting clipboard content to other users or profiles is prohibited.| | constraint.beam.outgoing | A user is not allowed to use Near Field Communications (NFC) to transfer data from apps.| | constraint.wallpaper | A user is not allowed to manage wallpapers.| | constraint.safe.boot | A user is not allowed to reboot the device in safe boot mode.| | constraint.parent.profile.app.linking | The apps in the parent profile are allowed to handle web links from the managed profile.| | constraint.audio.record | Audio recording is prohibited.| | constraint.camera.use | The use of cameras is prohibited.| | constraint.os.account.background.run | Running in the background is prohibited.| | constraint.data.roam | A user is not allowed to use cellular data when roaming.| | constraint.os.account.set.icon | A user is not allowed to change their icon.| | constraint.wallpaper.set | A user is not allowed to set a wallpaper.| | constraint.oem.unlock | A user is not allowed to enable OEM unlock.| | constraint.device.unmute | A user is not allowed to unmute the device.| | constraint.password.unified | The managed profile is not allowed to have unified lock screen challenge with the primary user.| | constraint.autofill | A user is not allowed to use the autofill service.| | constraint.content.capture | Capturing the content of a user's screen is prohibited.| | constraint.content.suggestions | A user is not allowed to receive content suggestions.| | constraint.os.account.start | User switching is blocked.| | constraint.location.set | A user is not allowed to configure the location service.| | constraint.airplane.mode.set | The airplane mode is prohibited on the device.| | constraint.brightness.set | A user is not allowed to configure brightness.| | constraint.share.into.profile | A user is not allowed to share files, images, or data from the primary user to the managed profile.| | constraint.ambient.display | Ambient display is prohibited for the user.| | constraint.screen.timeout.set | A user is not allowed to configure the screen off timeout.| | constraint.print | A user is not allowed to print.| | constraint.private.dns.set | A user is not allowed to configure a private domain name server (DNS).|