harmony 鸿蒙Managing Distributed Accounts (for System Applications Only)

  • 2025-06-06
  • 浏览 (4)

Managing Distributed Accounts (for System Applications Only)

You can use the distributed account SDK to implement smooth switchover between a distributed account and a system account.

Before You Start

  1. Request the ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS permission. For details, see Requesting Permissions for system_basic Applications.

  2. Import the distributedAccount module.

   import { distributedAccount, BusinessError } from '@kit.BasicServicesKit';
  1. Obtain a DistributedAccountAbility instance.
   const distributedAccountAbility = distributedAccount.getDistributedAccountAbility();

Logging In to a Distributed Account from the Current System Account

Procedure

  1. Specify the distributed account to be logged in. Set event to Ohos.account.event.LOGIN.
   let distributedInfo: distributedAccount.DistributedInfo = {
       name: 'ZhangSan',
       id: '12345',
       event: 'Ohos.account.event.LOGIN',
   };
  1. Use setOsAccountDistributedInfo to log in to the distributed account.
   distributedAccountAbility.setOsAccountDistributedInfo(distributedInfo).then(() => {
       console.log('setOsAccountDistributedInfo successfully');
   }).catch((err: BusinessError) => {
       console.log('setOsAccountDistributedInfo exception: '  + JSON.stringify(err));
   });
  1. After the login, use getOsAccountDistributedInfo to obtain information of the distributed account.
   distributedAccountAbility.getOsAccountDistributedInfo().then((data: distributedAccount.DistributedInfo) => {
       console.log('distributed information: ' + JSON.stringify(data));
   }).catch((err: BusinessError) => {
       console.log('getOsAccountDistributedInfo exception: '  + JSON.stringify(err));
   });

Logging Out of a Distributed Account to the Current System Account

Procedure

  1. Specify the distributed account to be logged out. Set event to Ohos.account.event.LOGOUT.
   let distributedInfo: distributedAccount.DistributedInfo = {
       name: 'ZhangSan',
       id: '12345',
       event: 'Ohos.account.event.LOGOUT',
   };
  1. Use setOsAccountDistributedInfo to log out of the specified distributed account.
   distributedAccountAbility.setOsAccountDistributedInfo(distributedInfo).then(() => {
       console.log('setOsAccountDistributedInfo successfully');
   }).catch((err: BusinessError) => {
       console.log('setOsAccountDistributedInfo exception: '  + JSON.stringify(err));
   });

Logging In to a Distributed Account from a System Account

Procedure

  1. Specify the system account and the distributed account to be logged in. Set event to Ohos.account.event.LOGIN.
   let localId: number = 100;
   let distributedInfo: distributedAccount.DistributedInfo = {
       name: 'ZhangSan',
       id: '12345',
       event: 'Ohos.account.event.LOGIN',
   };
  1. Call setOsAccountDistributedInfoByLocalId to bind the specified distributed account to the current system account.
   distributedAccountAbility.setOsAccountDistributedInfoByLocalId(localId, distributedInfo).then(() => {
       console.log('setOsAccountDistributedInfoByLocalId successfully');
   }).catch((err: BusinessError) => {
       console.log('setOsAccountDistributedInfoByLocalId exception: '  + JSON.stringify(err));
   });
  1. After the login, use getOsAccountDistributedInfoByLocalId to obtain information of the distributed account.
   distributedAccountAbility.getOsAccountDistributedInfoByLocalId(localId).then((data: distributedAccount.DistributedInfo) => {
       console.log('distributed information: ' + JSON.stringify(data));
   }).catch((err: BusinessError) => {
       console.log('getOsAccountDistributedInfoByLocalId exception: '  + JSON.stringify(err));
   });

Logging Out of a Distributed Account to a System Account

Procedure

  1. Specify the system account and the distributed account to be logged out. Set event to Ohos.account.event.LOGOUT.
   let localId: number = 100;
   let distributedInfo: distributedAccount.DistributedInfo = {
       name: 'ZhangSan',
       id: '12345',
       event: 'Ohos.account.event.LOGOUT',
   };
  1. Use setOsAccountDistributedInfoByLocalId to log out of the specified distributed account to the target system account.
   distributedAccountAbility.setOsAccountDistributedInfoByLocalId(localId, distributedInfo).then(() => {
       console.log('setOsAccountDistributedInfoByLocalId successfully');
   }).catch((err: BusinessError) => {
       console.log('setOsAccountDistributedInfoByLocalId exception: '  + JSON.stringify(err));
   });

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Account Management

harmony 鸿蒙Account Management Overview

harmony 鸿蒙Authenticating a Domain Account (for System Applications Only)

harmony 鸿蒙Applying Constraints for System Accounts

harmony 鸿蒙Managing Application Accounts

harmony 鸿蒙Managing Domain Accounts (for System Applications Only)

harmony 鸿蒙Managing Domain Account Plugins (for System Applications Only)

harmony 鸿蒙Managing System Account Credentials (for System Application Only)

harmony 鸿蒙Managing System Accounts (for System Applications Only)

0  赞