HarmonyOS开发:【NFC配置流程】
一、简介
碰一碰是HarmonyOS具备的多终端业务协同技术。其依托NFC短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、配网复杂、传输难的问题,为用户带来无缝切换的流畅体验。
二、碰一碰配置

前提
- 已安装数字管家应用。
- 准备已经升级至HarmonyOS 2系统的华为Mate系列或P系列手机,系统版本号为2.0.0.168及以上。
- 在华为应用市场,下载并安装“应用调测助手”APP,用于写NFC标签。
- 若开发板不包含NFC模块,则需准备1个NFC标签,可以用手机触碰NFC标签,提前确保NFC功能可用。
- 打开手机设置 > 应用和服务 > 应用管理,搜索“智慧生活基础服务”,检测智慧生活基础服务的版本是否为12.0.2.306及以上。如果不是,请打开华为手机的“智慧生活”APP,点击“我的 > 设置 > 检查应用更新”,更新“智慧生活基础服务”。
智慧服务配置
申请Product ID
注:本节中Product ID是碰一碰拉起标识,而非IoTDA平台的设备产品ID。

登陆[华为开发者联盟]

登陆华为开发者联盟,主页右上角管理中心按钮,进入管理中心。

创建智慧
在管理中心页面中依次点击智慧服务->HarmonyOS服务开放平台进入智慧服务平台。

点击右上角创建服务按钮。

选择HarmonyOS测试服务,填写服务相关信息,点击创建按钮完成服务模型的创建。

录入服务信息
在服务信息栏下的基本信息页面完善服务模型基本信息后,点击右上角保存按钮,保存服务基本信息。

进入服务呈现信息页面完善相关信息(星标项目必填,其它项目视需要进行填写),可下载批量导入模板并填写,进行批量导入。点击右上角保存按钮,保存服务呈现信息。

录入服务配置信息
点击配置栏,进行配置信息的填写。 HarmonyOS标签页面如下图,其中产品型号填写在应用调测助手中申请的Product ID ,产品子型号填写00。

FA信息页面填写信息如下图,其中App包名、服务名分别为FA开发中对应的IoT应用的包名,以及开发者期望通过NFC唤起的IoT应用的服务名(本项目唤起的服务为设备配网)。

录入服务测试信息
点击测试栏,进入智慧服务测试页面,进行测试相关信息的填写。 点击创建进入创建真机测试名单窗口。

填写手机号码与描述。

点击确定可以看到该手机已经录入名单中。

到此,应用功能唤起信息申请和配置完成。
设备信息的准备
鸿蒙开发应用知识参考gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md前往。
设备信息简介
设备信息内容包括:华为IoTDA平台的Product ID、NodeID、配网方式以及对应的参数信息,如下列表格;所有信息需要写入到调测助手的自定义数据之中,然后通过NFC拉起应用时,数字管家FA可通过Intent中的91字段进行读取NFC数据,从而可获取到板子相关的信息。
存储格式
设备信息采用TLV格式,即数据字段使用T+L+V进行表示。
T:标签,1字节
L:T信息长度,2字节
V:T对应的详细信息
标签分配
| 标签 | 名字 | 描述 | 样例 |
|---|---|---|---|
| 1 | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 6128c7b60ad1ed0286680f19 |
| 2 | NodeID | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节 | Lamp01 |
| 3 | DevicePwd | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节 | 12345678 |
| 4 | 配网标识 | 标识当前设备配网类型,1字节 0:不需要配网设备(如手表平板等自带蜂窝网络的设备); 1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码); 2:softAP配网,连入设备热点,输入wifi密码进行配网; 3:ble蓝牙配网; 4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1 |
| 5 | ApSSID | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Lamp01 |
| 6 | ApToken | 设备自身热点的密码,典型值8字节,小于16字节; | 12345678 |
| 7 | BLE-MAC | 设备蓝牙地址。典型值6字节,BLE配网下必须提供 | 010203040506 |
注:DeviceID由FA读取NFC之后,使用华为IoTDA平台设备产品ID+‘’_“+"NodeID"拼接而成,如华为IoTDA平台设备产品ID为6128c7b60ad1ed0286680f19,NodeID为Lamp01,则生成的设备ID为”6128c7b60ad1ed0286680f19_Lamp01“
根据以上规则可编写TLV数据如下:

生成配网信息
- 使用[NFC信息生成器]生成配网信息
- 手动输入生成: 生成实际配网数据虚须基于[profile设备模型] 进行编写,如以设备id为6128c7b60ad1ed0286680f19_Lamp01(华为IoTDA平台设备产品ID+‘’_“+"NodeID")的台灯配网信息如下:

三、NFC数据写入

我们程序员都知道学习开发技术,最先是从语言学起,鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力


内容包含:《鸿蒙NEXT星河版开发学习文档》
- ArkTS
- 声明式ArkUI
- 多媒体
- 通信问题
- 系统移植
- 系统裁剪
- FW层的原理
- 各种开发调试工具
- 智能设备开发
- 分布式开发等等。
这些就是对往后开发者的分享,希望大家多多点赞关注喔!
相关文章:
HarmonyOS开发:【NFC配置流程】
一、简介 碰一碰是HarmonyOS具备的多终端业务协同技术。其依托NFC短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、…...
解决JQuery和其他库的冲突
文章目录 1.使用 noConflict() 方法:2.使用 IIFE(立即调用函数表达式):3.加载顺序:4.使用命名空间:5.使用 jQuery Migrate 插件: 1.使用 noConflict() 方法: 这是最常见和简单的解决…...
【Linux】在 Linux 上模拟网络故障
文章目录 模拟网络丢包模拟网络延迟、抖动模拟网络包重复模拟网络带宽受限模拟网络错误模拟网络乱序配合 cgroup 进行进程级带宽限制重置网络清空所有规则 模拟网络丢包 # 在eth0网络接口上替换排队规则,应用netem规则来模拟30%的数据包丢失 tc qdisc replace dev …...
腾讯云流量怎么计算的?轻量服务器流量价格表
腾讯云轻量应用服务器套餐带流量包,就是有月流量限制的意思,超出轻量套餐的流量需要另外支付流量费,轻量服务器地域不同超额流量费用也不同,北京上海广州等中国内地地域流量价格是0.8元每GB,中国香港地域流量价格是1元…...
解决Maven Clean过程因内存溢出导致的“Process terminated”问题
正文: 在今天的开发过程中,我遇到了一个意料之外的问题,当我尝试使用 Maven 进行项目清理(maven clean)时,命令行反馈了一个错误信息:“Process terminated”。经过一番排查,发现问…...
十分钟掌握在 PyTorch 中构建一个深度神经网络,基本组件、步骤和代码实现,从导入模块和定义网络结构到训练和评估网络性能。
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 深度神经网络(Deep Neural Networks, DNNs),也被称为人工神经网络(Artificial Neural Networks,ANNs),已成为当今机器学习任务中最流行、最成功的方法之一。这些网络能够表示数据中的复杂关系,并在图像分类、自然…...
BUG:vue表单验证校验不报错,必填都有信息,就是不能正常往下进行
vue表单验证未报错却出现异常 框架bug场景解决办法 框架 UI:element-UI 前端:vue2 bug场景 正常表单里面,有的信息要求必填或者加了一些限制,作为校验验证,只有走到校验才会执行其他行为,比如调用保存接…...
MapStruct入门教程详解:轻松掌握Java Bean映射
博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …...
Springboot 集成websocket
webSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信--浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。 http协议和websocket协议对比 http是短连接 websocket是长连接 http通信是单向的…...
FPGA和ARM学习那个比较好
FPGA和ARM是两种不同的技术,具有不同的应用领域和学习难度。以下是对两者进行比较的一些建议: 1. 应用领域:FPGA主要用于数字电路设计和硬件加速器开发,可在实时系统、信号处理、嵌入式系统等方面发挥重要作用。ARM则是一种处理器…...
你知道 Java 线程池的原理吗?
Java线程池是用于管理和复用线程的机制,它可以帮助开发者有效地管理线程的生命周期和资源,并提高应用程序的性能和稳定性。 1. 线程池概述 在计算机科学中,线程池是一种可用来执行异步任务的线程队列。它主要包含以下几个组成部分ÿ…...
numpy学习笔记(1),不定期更新
在对numpy进行了几个小时的学习后,做出如下学习笔记 1. numpy类型入门 写完这边笔记后,过了几天补充一些理解: numpy处理的主要内容是数组,一维的,二维的,三维的,多维的。numpy的数组与python原…...
如何使用静态IP代理解决Facebook多账号注册并进行网络推广业务?
在当今的数字时代,社交媒体成为了企业进行网络推广的一个重要途径,其中,Facebook是最受欢迎的社交媒体之一,因为它可以让企业通过创建广告和页面来推广他们的产品或服务。 但是,使用Facebook进行网络推广时࿰…...
局部适配器在产品和二次开发中的应用
局部适配器这个说法是本人从产品项目中总结出的一种叫法。原理是在产品项目的某一项业务处理时,嵌入抽象方法和默认实现,以便产品作二次开发时,不用迁分支或重写就适配修改产品工程的局部逻辑。该方法使用原理很简单,但好处明显&a…...
C++之类和对象(上)
目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1访问限定符 4.2 类的两种定义方式 第一种: 第二种: 4.3封装 5.类的实例化 6.类对象模型 1.面向过程和面向对象初步认识 C语言是面向过程的,…...
Linux 测试磁盘读写速度
1、先熟悉两个特殊的设备: (1)/dev/null:回收站、无底洞。 (2)/dev/zero:产生字符。 2、测试磁盘写能力 time dd if/dev/zero of/testw.dbf bs4k count100000 因为/dev//zero是一个伪设备…...
【YOLOv8】Yolov5和Yolov8网络结构的分析与对比
目录 一 YOLOv5 二 YOLOv8 yolo通常采用backbone-neck-head的网络结构。 Backbone 主要负责从输入图像中提取高层次的语义特征,常包含多个卷积层和池化层,构建了一个深层次的特征提取器。Neck通常用来进一步整合与调整backbone提取的特征,有利于将不同…...
无人机低空数字摄影测量系统
一、 系统概述 系统完全基于IDL设计实现,包括界面布局到人机交互再到底层核心函数功能。整体设计框架基于数字摄影测量的专业处理流程,实现了数据输入、数据预处理、影像信息检测、空间定向、地形三维建模、专题信息提取、成果输出与更新等功能。同时为…...
Disk Drill Enterprise for Mac v5.5.1515数据恢复软件中文版
Disk Drill 是 Mac 操作系统固有的Mac数据恢复软件:使用 Recovery Vault 轻松保护文件免遭意外删除,并从 Mac 磁盘恢复丢失的数据。支持大多数存储设备,文件类型和文件系统。 软件下载:Disk Drill Enterprise for Mac v5.5.1515激…...
day55 最长递增子序列 最长连续递增子序列 最长重复子数组
题目1 300 最长递增子序列 题目链接 300 最长递增子序列 题意 找到整数数组nums的最长严格递增子序列的长度(子序列并不改变原始的顺序,但是可以删除元素) 动态规划 动规五部曲 1)dp数组及下标i的含义 dp[i] 表示以nums[i…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
