• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 分布式帐号
2
3### 介绍
4
5本示例主要展示了分布式帐号相关的功能,使用[@ohos.account.distributedAccount](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-distributed-account.md)、[@ohos.account.osAccount](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-osAccount.md)等接口,实现了绑定分布式帐号、解绑分布式帐号、更新分布式帐号信息和管理分布式帐号的功能。
6
7### 效果预览
8
9| 首页                        | 帐号列表                                     | 帐号信息                                     |
10| --------------------------- | -------------------------------------------- | -------------------------------------------- |
11| ![](screenshots/index.jpeg) | ![](screenshots/DistributedAccountList.jpeg) | ![](screenshots/DistributedAccountInfo.jpeg) |
12
13使用说明
14
151. 首次进入应用会根据分布式帐号绑定状态进行页面跳转,若帐号已绑定,则直接跳转至帐号列表界面;若帐号未绑定,则需要在首页进行绑定;
162. 首页输入分布式帐号名(必填)、昵称,选择头像(需先使用hdc命令将图片推到storage/media/100/local/files/Pictures/路径下并重启),选择绑定的系统帐号,点击**绑定**,绑定成功跳转至帐号列表界面;
173. 在帐号列表界面,可对所有可解绑分布式帐号进行管理,点击选择分布式帐号,跳转至对应的帐号信息界面;
184. 在帐号信息界面,点击**解绑**,可解绑该分布式帐号;
195. 在帐号解绑之后,可对分布式帐号信息进行更新,在首页直接进行输入后点击绑定即可。
20
21### 工程目录
22
23```
24entry/src/main/ets/
25|---pages
26|   |---Index.ets                           // 首页
27|---distributedaccount
28|   |---pages
29|   |   |---DistributedAccountList.ets      // 帐号列表
30|   |   |---DistributedAccountInfo.ets      // 帐号信息
31|---common
32|   |---component
33|   |   |---ListItemComponent.ets           // 列表项
34|   |   |---TitleBar.ets                    // 标题栏
35|   |---constants
36|   |   |---CommonConstants.ets
37|   |---database
38|   |   |---Account.ets                     // 帐号数据库
39|   |---utils
40|   |   |---DatabaseUtils.ets               // 封装关系型数据库工具类
41|---model
42|   |---BasicDataSource.ets                 // 懒加载数据
43|   |---Logger.ts                           // 日志工具
44|   |---DistributedAccountModel.ets         // 封装分布式帐号类
45```
46
47### 具体实现
48
49* 绑定、解绑、查询、更新分布式帐号的功能接口封装在DistributedAccountModel,源码参考:[DistributedAccountModel.ets](entry/src/main/ets/model/DistributedAccountModel.ets)
50    * 使用distributedAccount.getDistributedAccountAbility()获取分布式帐号单实例对象accountAbility;
51    * 绑定、解绑和更新分布式帐号:使用accountAbility.setOsAccountDistributedInfoByLocalId();
52    * 查询分布式帐号信息:使用accountAbility.getOsAccountDistributedInfo()和accountAbility.getOsAccountDistributedInfoByLocalId;
53
54### 相关权限
55
56[ohos.permission.MANAGE_LOCAL_ACCOUNTS](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionmanage_local_accounts)
57
58[ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionmanage_distributed_accounts)
59
60### 依赖
61
62不涉及。
63
64### 约束与限制
65
661. 本示例仅支持标准系统上运行,支持设备:RK3568;
672. 本示例仅支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0 Release);
683. 本示例需要使用DevEco Studio 版本号(4.0 Release)及以上版本才可编译运行;
694. 本示例涉及使用系统接口:@ohos.account.osAccount中的queryAllCreatedOsAccounts接口,需要手动替换Full SDK才能编译通过,具体操作可参考[替换指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/faqs/full-sdk-switch-guide.md)705. 本示例涉及系统接口,需要配置系统应用签名,可以参考[特殊权限配置方法](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/app-provision-structure.md#修改harmonyappprovision配置文件),把配置文件中的“app-feature”字段信息改为“hos_system_app”。
71
72### 下载
73
74如需单独下载本工程,执行如下命令:
75
76```
77git init
78git config core.sparsecheckout true
79echo code/SystemFeature/DistributedAppDev/DistributedAccount > .git/info/sparse-checkout
80git remote add origin https://gitee.com/openharmony/applications_app_samples.git
81git pull origin master
82```
83