初识 HarmonyOS Next 的分布式管理:设备发现与认证

OpenHarmony实战开发-分布式设备管理开发指南 随着用户不同种类的终端设备数量不断增多,将不同设备作为本端设备能力的扩展,使设备之间协同合作完成各种复杂场景即为设备的分布式业务。 阅读详情

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。
在当今数字化时代,智能设备无处不在,人们对设备之间的协同工作和无缝交互的需求日益增长。华为鸿蒙HarmonyOS Next系统应运而生,其分布式管理服务为设备之间的互联互通提供了强大的支持。今天,咱们就来好好唠唠HarmonyOS Next中分布式管理的设备发现与认证功能,这可是实现分布式协同的关键第一步哦!

一、Distributed Service Kit 概览与分布式管理基本概念

HarmonyOS Next的Distributed Service Kit就像是一个智能管家,负责管理分布式设备、硬件,甚至实现键鼠穿越等神奇功能。它让不同的设备能够相互协作,共同完成各种复杂的任务。
分布式管理的核心概念就是把周围的设备都当成自己的得力助手,让它们协同工作,为用户提供更加便捷、高效的体验。比如说,你可以用手机控制智能家居设备,或者在多个设备之间共享数据和资源,就像它们是一个超级设备一样。

二、设备发现:在局域网中找到你的“小伙伴”

(一)发现机制与接口

要让设备协同工作,首先得找到它们,对吧?在HarmonyOS Next中,设备发现就像是在一个大派对里找朋友。开发者可以通过调用DeviceManager设备发现相关接口,让设备主动去寻找周围同局域网或者开启蓝牙的设备。这就好比你在派对上大喊一声:“嘿,小伙伴们,在哪里?”然后等着周围的设备回应你。

(二)所需权限与准备工作

不过呢,在开始寻找之前,你得先得到用户的许可,就像进入派对需要门票一样。使用设备管理能力,需要申请分布式数据同步权限(ohos.permission.DISTRIBUTED_DATASYNC)。这是为了保护用户的隐私和数据安全,确保只有经过授权的应用才能获取设备信息。

(三)示例代码解析

下面是一个简化的设备发现示例代码,让我们一起来看看是怎么实现的。

import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
// 申请分布式数据同步权限(这里假设已经在配置文件中正确配置)
// 创建设备管理实例,这是调用设备管理方法的入口
try {
    let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
    dmInstance.on('discoverSuccess', data => console.log('discoverSuccess on:' + JSON.stringify(data)));
    dmInstance.on('discoverFailure', data => console.log('discoverFailure on:' + JSON.stringify(data)));
} catch(err) {
    let e: BusinessError = err as BusinessError;
    console.error('createDeviceManager errCode:' + e.code + ',errMessage:' + e.message);
}
interface DiscoverParam {
    discoverTargetType: number;
}
interface FilterOptions {
    availableStatus: number;
    discoverDistance: number;
    authenticationStatus: number;
    authorizationType: number;
}
let discoverParam: Record<string, number> = {
    'discoverTargetType': 1
};
let filterOptions: Record<string, number> = {
    'availableStatus': 0
};
// 发现周边设备,持续两分钟,最多发现99个
try {
    dmInstance.startDiscovering(discoverParam, filterOptions);
} catch (err) {
    let e: BusinessError = err as BusinessError;
    console.error('startDiscovering errCode:' + e.code + ',errMessage:' + e.message);
}

在这段代码中,首先我们导入了必要的模块,然后创建了设备管理实例。接着,我们通过定义发现参数和筛选选项,调用startDiscovering方法开始寻找设备。如果发现成功,就会触发discoverSuccess回调;如果失败,就会触发discoverFailure回调。

三、设备认证:建立信任的桥梁

(一)认证的重要性

当我们在派对上找到了一些“小伙伴”后,怎么知道它们是可以信任的呢?这就需要设备认证了。设备认证就像是互相交换名片,确认对方的身份,确保只有可信的设备才能参与分布式业务。如果没有认证,就好比随便让一个陌生人进入你的重要会议,这显然是不安全的。

(二)认证流程与方式

在HarmonyOS Next中,对于周边发现的不可信设备,可以通过绑定操作使它们建立可信关系。系统提供了pin码、碰、扫、靠等多种设备认证框架,支持对接各种认证交互接口。这就像是有多种方式可以验证对方的身份,确保安全可靠。

(三)示例代码展示

下面是一个简单的设备认证示例代码(假设已经完成设备发现并获取到设备ID)。

import { distributedDeviceManager } from '@kit.DistributedServiceKit';
import { BusinessError } from '@kit.BasicServicesKit';
class Data {
    deviceId: string = '';
}
// 假设已经获取到设备ID
let deviceId = 'XXXXXXXX';
let bindParam: Record<string, string | number> = {
    'bindType': 1,
    'targetPkgName': 'xxxx',
    'appName': 'xxxx',
    'appOperation': 'xxxx',
    'customDescription': 'xxxx'
};
try {
    let dmInstance = distributedDeviceManager.createDeviceManager('ohos.samples.jsHelloWorld');
    dmInstance.bindTarget(deviceId, bindParam, (err: BusinessError, data: Data) => {
        if (err) {
            console.error('bindTarget errCode:' + err.code + ',errMessage:' + err.message);
            return;
        }
        console.info('bindTarget result:' + JSON.stringify(data));
    });
} catch (err) {
    let e: BusinessError = err as BusinessError;
    console.error('bindTarget errCode:' + e.code + ',errMessage:' + e.message);
}

在这个示例中,我们使用设备管理实例的bindTarget方法,传入设备ID和绑定参数,尝试与指定设备建立可信关系。如果认证成功,会返回相关结果;如果失败,会打印错误信息。

四、注意事项与使用限制

(一)权限相关

再次强调,权限是非常重要的。在使用设备管理能力之前,一定要确保已经正确申请了分布式数据同步权限,并且获得了用户的授权。否则,设备发现和认证功能将无法正常使用。这就像是没有门票就想进入高级会所,肯定是不行的。

(二)设备连接要求

设备发现功能依赖于设备连接同一局域网或者开启蓝牙。如果设备没有满足这些条件,就像你在派对上喊破喉咙也找不到不在同一个场地的朋友一样,是无法发现周围设备的。

(三)数据安全与隐私

设备信息属于用户敏感数据,我们开发者在获取和使用这些数据时,必须严格遵守相关法律法规和隐私政策。不要随意泄露用户的设备信息,否则会像泄露别人的秘密一样,惹上大麻烦。
总之,HarmonyOS Next的分布式管理服务中的设备发现与认证功能为设备之间的协同工作奠定了坚实的基础。通过合理使用这些功能,开发者可以打造出更加智能、便捷的分布式应用。希望大家在开发过程中,牢记这些要点,充分发挥HarmonyOS Next的强大功能,为用户带来更好的体验。如果在开发过程中遇到问题,不要慌张,仔细检查权限设置、设备连接等方面,相信你一定能够顺利解决。加油哦,各位开发者小伙伴们!

OpenHarmony实战开发-分布式关系型数据库 本示例使用@ohos.data.relationalStore 接口和@ohos.distributedDeviceManager 接口展示了在eTS中分布式关系型数据库的使用,在增、删、改、查的基本操作外,还包括分布式数据库的数据同步同能。 阅读详情

相关推荐

初识 HarmonyOS-分布式管理:设备发现与认证

总之,HarmonyOS Next的分布式管理服务中的设备发现与认证功能为设备之间的协同工作奠定了坚实的基础。设备认证就像是互相交换名片,确认对方的身份,确保只有可信的设备才能参与分布式业务。分布式管理的核心概念就是把周围的设备都当成自己的得力助手,让它们协同工作,为用户提供更加便捷、高效的体验。比如说,你可以用手机控制智能家居设备,或者在多个设备之间共享数据和资源,就像它们是一个超级设备一样。如果设备没有满足这些条件,就像你在派对上喊破喉咙也找不到不在同一个场地的朋友一样,是无法发现周围设备的。

duolala888的博客 937

鸿蒙跨设备协同开发03——分布式设备管理

如果你也对感兴趣,加入“Harmony自习室”吧!扫描下方名片,关注公众号,公众号更新更快,同时也有更多学习资料和技术讨论群。

harmonyClassRoom的博客 1673

OpenHarmony实战:轻量级系统之子系统移植概述

若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。

m0_64420071的博客 2031

鸿蒙系统——强大的分布式系统

随着全场景多设备的生活方式不断深入,用户拥有的设备越来越多,不同设备都能在适合的场景下提供良好的体验,例如手表可以提供及时的信息查看能力,电视可以带来沉浸的观影体验。但是,每个设备也有使用场景的局限,例如在电视上输入文本相对移动设备来说是非常糟糕的体验。当多个设备通过分布式操作系统能够相互感知、进而整合成一个超级终端时,设备与设备之间就可以取长补短、相互帮助,为用户提供更加自然流畅的分布式体验。在HarmonyOS中,将跨多设备的分布式操作统称为流转;

m0_68038853的博客 3849

第三方系统(异构系统)基于token身份认证方式访问Ecology9的Restful接口Ecology9服务器配置部分

通过Token的认证方式调用Ecology9系统Restful业务接口服务器配置部分

svsou的专栏 2174

LAMMPS模拟新合金没势函数?手把手教你用`pair_style hybrid`混合势函数(附FeCMnSiTi案例)

本文详细介绍了在LAMMPS中如何使用`pair_style hybrid`混合势函数模拟新型高熵合金(如FeCMnSiTi),解决缺乏现成势函数的问题。通过实战案例,涵盖参数查找、命令编写、错误排查等关键步骤,特别适合处理多组元体系的复杂相互作用。文章还提供了EAM势函数与LJ势的组合技巧,帮助研究者准确模拟合金性能。

weixin_30635053的博客 243

鸿蒙HarmonyOS NEXT应用层架构

从开发模型上可以了解到,Feature类型的HAP,而对于不需要通过Ability承载的功能,根据是否需要实现按需加载,可以选择设计为HAR模块或者HSP模块,编译后对应HAR包或者HSP包。在部署模型中,每个Entry类型的HAP代表了应用的入口点,而Feature类型的HAP则包含了应用的特定功能模块。应用可以共享和调用这些公共能力。也可以看到产物为app后缀,有不同的hap包构成,产物支持phone和2in1,在实际操作中我们知道app包是提交应用市场的包,测试和开发阶段只能使用hap后缀的包。

fengyongge的专栏 2341

极验第四代滑块验证码破解(三):滑块轨迹构造

极验第四代滑块验证码破解(三):滑块轨迹构造声明 声明 原创文章,请勿转载! 本文内容仅限于安全研究,不公开具体源码。维护网络安全,人人有责。 本文关联文章超链接:

帯泪的鱼的博客 8624

HarmonyOS APP<<古今职鉴定>>开源教程第1篇:初识鸿蒙:为什么选择 HarmonyOS?

本篇从鸿蒙生态、HarmonyOS NEXT、ArkTS/ArkUI 技术栈和「古今职鉴」项目出发,帮助你建立学习鸿蒙开发的整体认知。

尽吾所能 分享永久免费知识 1万+

Claude Code与Vibe Coding:2026年AI编程实战指南

AI编程助手是基于大语言模型的智能代码生成工具,通过理解编程上下文提供精准的代码补全和重构建议。其核心原理是利用深度学习技术分析代码语义,将自然语言指令转化为可执行代码。这种技术能显著提升开发效率,减少重复性编码工作,特别适用于快速原型开发和复杂问题求解。在实际应用场景中,AI编程助手可与Vibe Coding方法论结合,建立流畅的人机协作工作流。Claude Code作为先进的AI编程工具,支持多语言开发和智能错误检测,而Vibe Coding则强调自然交互和迭代优化,两者协同为开发者提供完整的AI编程解

weixin_29057695的博客 341

python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装)

python后端的支付宝小程序用户认证问题(alipay-sdk-python、pycrypto无法安装) 写在前面 事先说明,本人不是大佬,我只是在不断探索的途中找到了解决这个问题的方法,之前在网上搜索的时候没有看到相关文章,所以就来简单讲一下。 正文 借着蚂蚁金服小程序大赛开通了支付宝小程序个人开发者,尝试将一个微信小程序的项目移植到支付宝上,支付宝对于用户唯一id的获取比微信要复杂很多,微信...

weixin_43102379的博客 3642

新书速览|鸿蒙之光HarmonyOS NEXT原生应用开发入门

内容涵盖HarmonyOS架构、DevEco Studio使用、应用结构解析、ArkTS编程语言、Ability组件、ArkUI开发、公共事件处理、窗口管理、网络编程、安全管理、数据管理、多媒体开发、多端部署及应用测试等关键主题。书中不仅详细阐述了相关理论知识,还结合了多个实战项目,如计算器开发、WeLink打卡系统、图片轮播播放器、购物车功能实现、录音机与音乐播放器创建、购物应用设计与微信应用模拟、图片查看器构建等,旨在通过实际操作提升读者的动手能力和解决实际问题的能力。

quanzhankaifaqua的博客 1227

DQN网络代码调用env.reset()后存储观测信息报错问题ValueError: setting an array element with a sequence.解决处理

**reset()函数返回的是一个array类型以及其中数据的type!模拟游戏进行学习任务。因此需要将observation指定为真正需要的array信息即可,得到的的变量observation类型与Agent存储时的。因此怀疑返回的observation有问题,于是通过。报错信息提示为数据维度不对应,也即最初通过。在强化学习DQN网络代码实现过程中,针对。

Vulcan_Q的博客 4092

“星河”鸿蒙(HarmonyOS),真正技术底座,真正的独立

1月18日,华为宣布HarmonyOS NEXT开发者预览版开放申请,根据官方注解,这个版本的鸿蒙系统有个更通俗易懂的名字——“星河版”,也被称为“纯血”鸿蒙。“鸿蒙系统实现了 AI 框架、大模型、设计系统、编程框架、编程语言、编译器等全栈自研,有核心技术、全栈能力、底座和生态,是真正的操作系统,而非安卓套皮。”余承东在1月18日的发布会上表示。可以说,鸿蒙系统已经独立生根发芽。

Eqiqi的博客 1521

【报错解决】彻底解决 CondaHTTPError: HTTP 000 CONNECTION FAILED for url 报错

CondaHTTPError: HTTP 000 CONNECTION FAILED for url 错误本质上是由于 Conda 无法访问远程仓库引起的,常见原因包括网络不通、防火墙或安全软件阻拦、SSL 证书异常以及默认仓库不可达。解决该问题的关键在于:确保网络畅通、配置国内稳定镜像源、调整防火墙和安全设置、处理 SSL 证书问题,并保持 Conda 版本更新。通过这些方法,几乎可以彻底消除连接失败问题,保证 Conda 环境的正常使用和包管理的稳定性。

博客 1162

DPI — 业务识别技术

目录 文章目录目录DPI 的业务识别技术类型特征识别Protocol 特征Payload 特征关联识别行为识别 DPI 的业务识别技术类型 DPI 的关键技术是能够高效的识别出网络上的各种应用类型。 浅报文检测是通过端口号来识别应用类型的。如:检测到端口号为 80 时,则认为是 HTTP 协议。但实际上,为了应用的安全性考虑通常不会使用默认端口来暴露业务能力。此时采用 L2 ~ L4 层的传统检测方法已无能为力了。 而 DPI 技术与我们熟知的防病毒软件在某些方面比较类似,即:其能识别的应用类型必须是系统已

烟云的计算 3516

HarmonyOS实战开发:ContinuationExtraParams

流转管理入口中设备选择模块所需的过滤参数

2401_84194030的博客 426

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

20年老程序员谈谈:鸿蒙开发会成为下一个java吗?_鸿蒙程序员怎么样

(**ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony****多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)**技术知识点。而鸿蒙开发也是一个这样的新风口。互联网大厂都是行业的领头羊和先行者,鸿蒙系统无疑将成为一个新的发展趋势,现在成为第一波投入学习成本的人将获得时间优势,在鸿蒙系统开发在市场广泛流行之前掌握先机,自然有更大的机会进入大厂工作!

2501_90251752的博客 850

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

鸿蒙发布星河版,Q4或发布不兼容安卓版本鸿蒙!

1月18日,华为宣布HarmonyOS NEXT鸿蒙星河版开发者预览面向开发者开放申请,这意味着鸿蒙生态进入第二阶段,将加速千行百业的应用鸿蒙化。发布会上,华为方面宣布,2024年Q4,华为将发布面向消费者的商用版本,预示着鸿蒙和安卓开始割席,该版本鸿蒙或不再兼容安卓。

bugyinyin的博客 1163

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

全网首发,鸿蒙(HarmonyOS)系统开发学习教程指南

2023年8月4日,2023年华为开发者大会上,华为推出了面向开发者的 HarmonyOS NEXT 开发者预览版。HarmonyOS NEXT 即日起面向合作企业开发者开放,2024年第一季度面向所有开发者开放!HarmonyOS NEXT 系统底座全线自研,去掉了传统的 AOSP 代码,仅支持鸿蒙内核和鸿蒙系统的应用,不再兼容安卓 OS。减少了40%的冗余代码,使系统的流畅度、能效、纯净安全特性大为提升。多家头部应用厂商开始启动鸿蒙原生应用开发。

嘴巴吃糖了 1323

如何成为鸿蒙开发者,看这篇就够了!(1)

VX:vip204888 (备注鸿蒙获取)**[外链图片转存中…(img-XhqK4glH-1712894453763)]

2401_84186109的博客 1513

鸿蒙实训营广州站火爆开班,鸿蒙即将迈入新阶段

鸿蒙生态学堂·创新实训营广州站于4月15日-17日开班,吸引了广东省本地及全国范围内各领域的300多位应用开发者们踊跃参与.培训期间,技术专家们围绕鸿蒙生态发展、HarmonyOS系统特性、鸿蒙原生应用开发等热门内容,进行深入讲解,并通过实操、实练,帮助开发者们更好的理解和体验鸿蒙技术,熟练掌握鸿蒙原生应用的开发能力。培训课程结束后,伙伴们积极参与HarmonyOS开发者高级认证考试,通过该认证表明参训学员已具备独立开发鸿蒙原生应用的能力。今年以来,鸿蒙生态取得了爆发式增长,鸿蒙生态设备数量超8亿。

Android 开发架构 822

如何成为鸿蒙开发者,看这篇就够了!,面试建议英语对话

资料也是东平西凑,这只适合作为前期了解的一些材料~我建议零基础的小白,最好是选择官方合作的认证机构,不仅可以学到成体系的知识,还有很多实战项目可以帮助你更好地掌握鸿蒙的应用开发,不仅为面试加分,还能帮助你更快投入工作。有小伙伴在后台问我,自学的能不能考试,当然是可以的,但是自学对个人自律方面的要求特别高,零散的学习也不利于你的知识框架搭建,容易出现遇到问题,没有专业的人帮你解答的困境,特别浪费时间跟精力,当然如果你是一个就喜欢这样挑战自我的人,不在意时间的长短,不在乎拿没拿到证书的话,那可以选择自学。

2401_84166497的博客 474

鸿蒙先锋共筑星河 | “南方基金App”全面拥抱HarmonyOS NEXT

【HarmonyOS开发者社区】官方小助手 508

深圳打造“鸿蒙之城”,全民鸿蒙不远了?

在充满浪漫氛围的5月20日,深圳南山区迎来了一场科技界的盛大聚会。来自全国各地的600家科技企业高管们,怀揣着对鸿蒙生态的好奇与期待,汇聚一堂,共同参与了“鸿蒙生态万象新”原生应用合作交流会。这场盛会由深圳市工业和信息化局、南山区人民政府联合指导,鸿蒙生态服务有限公司精心主办。会议现场,政府领导、华为代表、鸿蒙生态专家、顶级应用开发者、众多生态服务伙伴、人才培养机构以及权威媒体汇聚,共同见证了鸿蒙生态的成长与繁荣。

2401_83047642的博客 642

20年老程序员谈谈:鸿蒙开发会成为下一个java吗?_鸿蒙程序员怎么样(1)

小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

2401_84446919的博客 411
上一篇: HarmonyOS Next移动办公的多设备文件共享:WLAN P2P与蓝牙串行通信的综合应用
下一篇: 分布式管理进阶:HarmonyOS Next 中的设备信息查询与状态监听
SameX-4869
博客等级 码龄18年 3354粉丝 657原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值