一、NetworkID

① NetworkID 简介
  • 网络设备节点通信标识符,是分布式软总线提供的一种非永久性标识符。NetworkID 基于 Java 原生的 UUID 接口随机生成,长度为 32 字节,使用十六进制表示。主要用于业务调用分布式能力时,标识分布式网络内的设备节点。如 NetworkID 示例:
 6B97BC8F6F85A2A1A6E0E262111F42D6A8541CBFF6CAF688FA5293956EC3FD43
  • NetworkID 为设备级标识符,不同 APP 在同一时间获取到同一设备的 NetworkID 相同。
  • NetworkID 在设备下线、设备重启、恢复出厂设置后会发生变化,因此不可用于数据持久化存储的索引等场景。
  • 为满足在分布式场景中的隐私要求,NetworkID 在以下几个场景会发生变化,发生重置:
    • 用户操作进行设备恢复出厂设置;
    • 设备重启;
  • 分布式组网的设备上线列表从非空转为空,并持续为空 5 分钟后。
② 应用场景
  • NetworkID 是分布式网络设备节点在分布式组网中的通信标识符,用于在分布式业务中标识网络设备节点。
  • 上层业务在调用分布式能力的时候,使用 NetworkID 标识不同的网络设备节点。
  • 由于同一设备的 NetworkID 的值在多次组网中可能会发生变化,因此 NetworkID 不能用于数据持久化存储的索引等场景。
③ 获取 NetworkID
  • HarmonyOS SDK 提供 NetworkID 相关 API,应用程序可通过 API 使用 NetworkID 的能力。
 public class MainAbility extends Ability {// 建议开发者自行设计界面,示例代码仅供参考private static final int OFFSET_X = 100;private static final int OFFSET_Y = 100;private static final int ADD_OFFSET_Y = 150;private static final int BUTTON_WIDTH = 800;private static final int BUTTON_HEIGHT = 100;private static final int TEXT_SIZE = 50;private int offsetY = 0;// 应用包名private String BUNDLE_NAME = "com.example.continuationdemo";// 注册控制中心服务后返回的Ability tokenprivate int abilityToken;// 用户在设备列表中选择设备后返回的NetworkIDprivate String selectNetworkId;// 获取控制中心服务管理类private IContinuationRegisterManager continuationRegisterManager;// 设置控制中心设备状态变更的回调private IContinuationDeviceCallback callback = new IContinuationDeviceCallback() {@Overridepublic void onDeviceConnectDone(String networkId,String deviceType) {// 在用户选择设备后回调获取NetworkIDselectNetworkId = networkId;}@Overridepublic void onDeviceDisconnectDone(String networkId) {}};// 设置注册控制中心服务回调private RequsetCallback requsetCallback = new RequsetCallback() {@Overridepublic void onResult(int result) {abilityToken = result;}};// 弹出选择设备列表private ClickedListener mShowDeviceListListener = new ClickedListener() {@Overridepublic void onClick(Component arg0) {// 显示选择设备列表continuationRegisterManager.showDeviceList(abilityToken, null, null);}};@Overridepublic void onStart(Intent intent) {super.onStart(intent);continuationRegisterManager = getContinuationRegisterManager();// 开发者可以自行进行界面设计// 为按钮设置统一的背景色// 例如通过PositionLayout可以实现简单界面PositionLayout layout = new PositionLayout(this);LayoutConfig config = new LayoutConfig(LayoutConfig.MATCH_PARENT, LayoutConfig.MATCH_PARENT);layout.setLayoutConfig(config);ShapeElement buttonBg = new ShapeElement();buttonBg.setRgbColor(new RgbColor(0, 125, 255));Button btnShowDeviceList = createButton("ShowDeviceList", buttonBg);btnShowDeviceList.setClickedListener(mShowDeviceListListener);linear.addComponent(btnShowDeviceList);super.setUIContent(layout);// 注册控制中心continuationRegisterManager.register(BUNDLE_NAME, null, callback, requsetCallback);}private Button createButton(String text, ShapeElement buttonBg) {Button button = new Button(this);button.setContentPosition(OFFSET_X, OFFSET_Y + offsetY);offsetY += ADD_OFFSET_Y;button.setWidth(BUTTON_WIDTH);button.setHeight(BUTTON_HEIGHT);button.setTextSize(TEXT_SIZE);button.setTextColor(Color.YELLOW);button.setText(text);button.setBackground(buttonBg);return button;}@Overridepublic void onStop() {super.onStop();// 解注册控制中心continuationRegisterManager.unregister(abilityToken, null);}}

二、DVID

① DVID 简介
  • DVID(Distributed Virtual device Identifier), 分布式虚拟设备标识符。设备登录了 HarmonyOS 账号后,系统根据 HarmonyOS 帐号及应用程序信息生成分布式虚拟设备 ID,即 DVID。
  • 应用程序可以根据 DVID 访问和管理分布式设备,具备类似管理本地设备的能力和体验。同时,为防止其他应用获取当前应用数据(比如用户行为收集),DVID 与 HarmonyOS 帐号及应用程序信息强关联,在登录了相同 HarmonyOS 帐号的分布式设备上,相同应用获取到的 DVID 相同,不同应用获取的 DVID 不同。
② 应用场景
  • 应用程序一键式登录:登录了相同的 HarmonyOS 帐号的多个分布式设备中,应用程序在某一设备上登录之后,可按需同步应用帐号认证信息(帐号名、Token 或其他)到其他设备上,在其他设备上打开应用时不再需要输入应用帐号认证信息,可直接登录使用。
  • 应用程序管理多设备:应用程序在服务器端可以根据 DVID 管理相同应用帐号关联/绑定的分布式虚拟设备列表。
③ 获取 DVID
  • HarmonyOS SDK 提供 DVID 相关 API,应用程序可通过 API 使用 DVID 的能力。
 private String getDVID() {return AccountAbility.getAccountAbility().getDistributedVirtualDeviceId();}

三、UUID

① UUID 简介
  • 随机生成的字符串,同一时空下所有设备生成的 UUID 都不同。应用在其生命周期内可以用该标识唯一识别相同设备。
  • 格式说明:string 型,标准的 UUID 格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。
② 应用场景
  • 应用在后台统计分析在相同设备上的应用的使用情况,该标识作为设备的唯一标识,区别其它设备。
  • 但需要注意,当应用卸载后该标识销毁,再次重新安装后调用获取 UUID 接口时会重新生成不同的 ID,所以不会持久的标识同一台设备。
③ 获取 UUID
 import java.util.UUIDUUID uuid = UUID.randomUUID()

HarmonyOS之深入解析设备标识符的功能和使用相关推荐

  1. HarmonyOS之深入解析蓝牙Bluetooth的功能和使用

    一.蓝牙简介 ① 概念 蓝牙是短距离无线通信的一种方式,支持蓝牙的两个设备必须配对后才能通信.HarmonyOS 蓝牙主要分为传统蓝牙和低功耗蓝牙(通常称为 BLE,Bluetooth Low Ene ...

  2. HarmonyOS之深入解析NFC的功能和使用

    一.简介 NFC(Near Field Communication,近距离无线通信技术) 是一种非接触式识别和互联技术,让移动设备.消费类电子产品.PC 和智能设备之间可以进行近距离无线通信. Har ...

  3. vSAN架构解析与6.7功能介绍

    vSAN架构解析与6.7功能介绍 2018-11-16 09:43:40 来源: IT大咖说举报 2 分享至 阅读字数:6759 | 17分钟阅读 Overview of vSAN About vSA ...

  4. 《移动优先与响应式Web设计》一1.2 设备不同,功能不同

    本节书摘来异步社区<移动优先与响应式Web设计>一书中的第1章,第1.2节,作者: [美]Luke Wroblewski , Ethan Marcotte 译者: 司徒卓恆 责编: 赵轩, ...

  5. Vmware Workstation 6.5试用之二—支持设备的热插拔功能

    Vmware Workstation 6.5试用之二-支持设备的热插拔功能 在Vmware Workstation 6.5中,如果虚拟机硬件是6.5的格式,在Windows XP.Windows Se ...

  6. 通过调试微信小程序示例代码解析flex布局参数功能(一)

    通过调试微信小程序示例代码解析flex布局参数功能 官方示例小程序源代码下载地址:https://github.com/wechat-miniprogram/miniprogram-demo 通过调试 ...

  7. 河南城建计算机学院的设备条件,河南城建学院仪器设备技术指标和功能要求

    河南城建学院仪器设备技术指标和功能要求 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.90 积分 河南城建学院仪器设备技术指标和功能要求河南城 ...

  8. 一文搞懂【EV-TPM】设备管理系统的功能和意义

    企业对设备进行信息化的.全生命周期的管理就显得尤为重要,那么设备管理系统到底具备哪些功能? 一.设备管理系统的功能 1.与数据采集联动 设备管理系统可以和数据采集联动,共同获取设备的相关数据,将其存储 ...

  9. WiFi选型_主设备WiFi模块,从设备WiFi模块功能介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.主设备WiFi模块 主设备WiFi模块功能介绍 二.从设备WiFi模块 从设备WiFi模块功能介绍 前言 在物联网 ...

最新文章

  1. 尺取法 POJ 3601 Subsequence
  2. 【编程题】简单的四则运算
  3. sdut 3361迷宫探索dfs
  4. Spring Cloud Gateway的全局异常处理
  5. 免费mysql空间_php+mysql免费空间
  6. mysql 5.7 内存占用_MySQL 5.7 内存使用计算
  7. 陆正耀为瑞幸数据造假道歉:非常自责 会全力挽回损失
  8. 事业编和公务员哪个好?
  9. 中山大学计算机学院官网万海,中山大学
  10. 计算机的科学导论pdf,教材计算机科学导论.PDF
  11. vscode中终端字体设置
  12. 第四轮学科评估计算机专业排名,第四轮学科评估
  13. 【C语言】输出“*”菱形图案
  14. 用命令设置 ip 地址
  15. c语言字母大小写转换程序
  16. 运维安全:微软远程桌面修改默认远程端口
  17. 理不清薪酬,更心愁 穆穆-movno1
  18. 免费获取全球夜间NPP VIIRS灯光数据!内附下载链接!
  19. 计算机基础实验测试题第一章(悄悄变强秘籍)
  20. java祖冲之加密算法_对称加密和非对称加密

热门文章

  1. 第一章 Java快速入门
  2. onselectstart 、onselect区别
  3. 39. Combination Sum
  4. 在项目中谨慎为系统类添加分类!!!!!
  5. Linux server配置安装Java,Tomcat服务器
  6. listview侧滑删除
  7. undefined reference to '__gxx_personality_v0'
  8. ubuntu18.04安装windows版本微信
  9. for循环执行次数_VB考试笔记之循环控制结构部分
  10. 每日程序C语言25-查找100以内的素数