我们曾给开发者们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南0.1版本,将有线键盘改造成蓝牙键盘,实现一个键盘被多操作系统/终端设备识别使用的功能。经过几个月的更新,这次我们为大家带来的是基于Neptune开发板的键盘蓝牙模块DIY指南v0.3版本,为大家带来几个重磅更新:
1. 支持搭载HarmonyOS系统手机“碰一碰”连接
2. 支持HUAWEI DevEco Device Tool一站式编译烧录
3. 在原有支持4种OS(HarmonyOS、Windows、Linux、Android)的基础上,新增初步支持ios
4. 从原有的支持最多2台设备增加到现在的支持最多5台设备自由切换
更多项目更新详情,可通过下方链接查看:
https://gitee.com/openharmony-sig/vendor_oh_fun/tree/master/hihope_neptune-oh_hid
在之前的版本中,我们已经了解了硬件环境搭建和USB串口(CH340)获取相关信息,这一次让我们把重点放在开发者们最关注的“碰一碰”的实现和HUAWEI DevEco Device Tool一站式编译、烧录步骤上,让我们一起来了解吧~
1、从体验角度诠释“碰一碰”实现
用户使用“碰一碰”实现蓝牙键盘连接的示意图如下:
1. 用户通过碰一碰NFC标签拉起FA应用;
2. 获取蓝牙设备(开发板)的MAC信息;
3. 同时,手机中的蓝牙扫描将获取到的蓝牙列表与开发板MAC信息进行比对;
4. 当匹配到相同开发板MAC信息将反馈连接蓝牙结果,连接该蓝牙设备;
5. 同时连接成功的结果将通过被拉起的FA应用通知用户,用户可在界面上看到成功连接的提示。效果可看视频:
2、从原理角度诠释“碰一碰”实现:
这个过程中,碰一碰NFC标签能拉起FA应用和获取开发板MAC地址的关键点在于FA应用信息和开发板MAC地址已经被写入到NFC标签中,用户打开手机上的NFC开关,手机在NFC标签时即可读取相关信息拉起FA应用并获取到开发板的MAC地址用于匹配。
但实际上被写入NFC标签的是FA应用的productid(需在华为官方“应用调测助手”APP中申请获得),申请完成后通过在华为快服务智慧平台(以下及图中均简略为HAG)创建、发布该FA服务,将productid与FA应用App包名关联,开发者将productid写入NFC标签中,当用户使用NFC标签碰一碰时,HAG端将通过productid查询对应的包名并将其拉起。
而蓝牙设备则是通过工具获取设备MAC地址码,将MAC地址码写入NFC标签,当用户使用NFC标签碰一碰时将获取到写入其中的MAC地址码,与手机当前蓝牙列表匹配并连接相同MAC地址的蓝牙设备。
下面让我们来详细解析一下这个过程,由于我们已有productid且服务已发布,我们将聚焦在如何实现FA应用信息及开发板MAC地址写入NFC标签的过程中。
3、从动手流程学习“碰一碰”实现
接下来就让我们来详细了解一下FA应用信息及开发板MAC地址写入NFC标签过程。
1. 了解写入NFC的数据样例结构
我们将为各位开发者提供一段用于写入到NFC的数据样例结构,开发者只需做很小部分的改动即可直接写入NFC标签中。
数据样例结构字符串如下:
D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD824FEF
其中:
39393533表示9953的Ascill码,9953即是我们为该FA应用已经申请好的productid;
286DCD824FEF用于表示BLE设备硬件编码(MAC地址),后续我们将通过获取目标BLE设备的MAC地址并将其替换掉。
2. 获取BLE设备MAC地址
在“华为应用市场”安装“BLE调试助手”( 该工具用来获取目标BLE设备的MAC地址),打开改工具,找到蓝牙键盘,获取蓝牙键盘的MAC地址:286DCD7C0E67
3. 替换目标设备的MAC地址
将上一步中通过BLE调试助手获取的MAC地址:286DCD7C0E67替换样例的MAC地址:286DCD824FEF,组装后的字符串为:
D20C1A6170702F68776F6E65686F702001004800393935330081060005200685919106286DCD7C0E67