24鸿蒙宣传图.png

目标

通过鸿蒙手机与NFC标签碰一碰唤起原子化服务,即一个相关的FA。

运行效果

我们先看下最终的运行效果
6.gif

前置条件

1、申请华为开发者账号,并实名认证,如果你还没有华为账号,可以到[华为开发者门户注册];(https://developer.huawei.com/consumer/cn/)
2、账号具备发布应用/服务到AGC(AppGallery Connect)平台的权限;
3、账号具备HarmonyOS服务开放平台创建服务权限;
4、如果你想商用,则需要先在HarmonyOS Connect平台(原HiLink开发者平台)注册自己的设备并申请标签。

什么是碰一碰?

官方介绍
碰一碰特性,是HarmonyOS具备的多终端业务协同技术。其依托NFC短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、配网复杂、传输难的问题,为用户带来无缝切换的流畅体验。
关键字:NFC、原子化服务(免安装)
NFC:NFC(Near Field Communication,近距离无线通信技术) 是一种非接触式识别和互联技术,让移动设备、消费类电子产品、PC和智能设备之间可以进行近距离无线通信,通常的通信距离是 4 厘米或更短。有兴趣可以看NFC相关介绍与开发
原子化服务:原子化服务是HarmonyOS提供的一种面向未来的服务提供方式,是有独立入口的(用户可通过点击方式直接触发)、免安装的(无需显式安装,由系统程序框架后台安装后即可使用)、可为用户提供一个或多个便捷服务的用户应用程序形态。有兴趣可以看关于原子化服务的介绍。
0碰一碰流程.png

碰一碰实战

一、构建原子化服务

1.1、在DevEco Studio中创建项目,选择原子化服务,启动“show in service center”。

1创建原子化服务.png
2创建原子化服务.png

1.1.1、show in service center

show in service center被勾选后IDE会自动创建服务卡,关于服务卡的内容,并不是本次介绍的重点,如果你有兴趣可以参看:服务卡片有详细的说明。
3原子化服务卡.png

1.1.2、服务卡接口

服务卡片提供方控制卡片实际显示的内容、控件布局以及控件点击事件。如果创建项目时,勾选了show in service center,则可以在entry module中的MainAbility类中看到重写的相关接口。
4原子化服务卡项目目录.png

到目前为止你已经构建好了一个原子化服务项目,是不是很容易,你没有写任何一行代码。

二、运行原子化服务

说明:如果你想在发布前看看你的项目是否能正常运行,那么你可以进行本地运行,运行调试有两种方式:
远程模拟器调试,参看:使用模拟器进行调试
真机调试,参看:使用真机进行调试

在未发布之前,我们只需要先测试项目的功能是否正常,所以我们可以先用debug环境,目前我使用的是真机调试。

2.1、运行:Run

说明:运行只要点击IDE上的Run即可,我们说说可能遇到的问题。

问题1、签名认证问题导致debug环境安装失败

5运行报错未签名.png

解决方案:在IDE的File->Project Structure->Project->Signing Configs,如果你未登录,则需要使用华为开发者账号进行登录,点击SignIn即可跳转到登录页面。
6project structure配置签名.png
7签名配置华为登录.png
登录成功后,在web页面上点击“允许”,再返回IDE即可进行签名和认证的相关配置。
8华为登录请求.png

如果你没有设置自己的签名可以通过:“Automatically generate signing”自动生成签名和认证,自动生成的只在debug环境下使用,建议需要发布的应用还是需要再AGC平台上申请相关的证书,参看:应用/服务发布
9自己申请签名和认证.png

配置debug环境下的签名与认证后,可以在项目build.gradle的配置中查看到相关的签名与认证配置信息。
10签名和认证配置信息.png

签名问题解决后再次运行项目 Run,运行成功后可以在手机端的我的服务中查看到你创建的服务。
11我的服务卡.png

这里需要你关注一点即前面提到的原子化服务的特性:免安装,这个免安装的配置在entry module下的config.json配置的字段:"installationFree": true
12原子化服务为免安装模式.png

运行起来没问题,现在可以准备发布了
备注:如果你想通过AGC平台发布前进行测试,可以通过华为提供的开放式测试方案进行上架前测试验证,请参看我前面写的一篇灰度发布的文章:鸿蒙基于开放式测试方案发布原子化服务的实战

三、发布原子化服务

3.1、配置release环境的签名与认证

说明:发布之前必须要构建release的签名包,所以你必须需要在AGC平台上申请相关发布的数字认证和Profile文件,生成环境下的签名与认证的申请可以参看:申请发布证书,将申请到的数字认证和Profile文件配置到本地的release环境。
13配置release的签名与认证.png

3.2、构建APP

点击IDE的菜单:Build->Build Hap(s)/APP(s)->Build APP(s),构建成功后可以在项目的build->outputs->app->release->xxxx-release-signed.app。
14构建app.png
15生成app.png

3.3、发布应用

将已认证签名的app包上传到AGC(AppGallery Connect)平台,并且通过审核,发布成功,发布流程不是本此的重点,这里就一步带过,如果对于上架问题,你可以参看:发布应用
16应用上架成功.png

四、申请NFC标签

4.1、编辑服务

打开需要申请NFC标签的服务(HarmonyOS服务开放平台),点击“编辑”
17智慧服务.png
18我的服务.png

4.2、申请支持碰一碰NFC标签

在HarmonyOS服务开放平台的“分发”菜单中申请支持碰一碰/扫一扫触发标签。
如果你想要了解NFC标签的详细信息,可以参看我之前的一篇关于:鸿蒙NFC标贴写入数据-详细
19申请NFC标签.png
最终华为提供的NFC标签有两种,如下所示:

  • 唤起服务的二维码
  • 唤起服务的NFC标贴数据
    20NFC标签.png

4.3、服务提测

在“测试”菜单中,点击“开始测试发布”
21测试发布.png363c0f53d379a26bffcee70d9126f70e.png

4.4、添加测试用户

可以构建自己下需要添加测试用户,此用户必须为华为注册用户。
22创建测试名单.png
23完成测试名单申请.png

感谢

如果您能看到最后,还希望您能动动手指点个赞,一个人能走多远关键在于与谁同行,我用跨越山海的一路相伴,希望得到您的点赞。

想了解更多关于鸿蒙的内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com/#bkwz

::: hljs-center

21_9.jpg

:::