暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

碰一碰,鸿蒙原子化服务实战

鸿蒙技术社区 2022-01-17
936

本文主要给大家分享通过鸿蒙手机与 NFC 标签碰一碰唤起原子化服务,即一个相关的 FA。


我们先看下最终的运行效果:

前置条件


申请华为开发者账号,并实名认证,如果你还没有华为账号,可以到“华为开发者门户注册”。
https://developer.huawei.com/consumer/cn/


账号具备发布应用/服务到 AGC(AppGallery Connect)平台的权限。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/


账号具备 HarmonyOS 服务开放平台创建服务权限。
https://developer.huawei.com/consumer/cn/console#/openCard/FastService/63


如果你想商用,则需要先在 HarmonyOS Connect 平台(原 HiLink 开发者平台)注册自己的设备并申请标签。
https://devicepartner.huawei.com/cn/


什么是碰一碰?


官方介绍:碰一碰特性,是 HarmonyOS 具备的多终端业务协同技术。其依托 NFC 短距通信协议,通过碰一碰的交互方式,将手机和全场景设备连接起来。


然后通过手机端的原子化服务能力,快速完成配网、远程控制的能力,解决了应用与设备之间接续慢、配网复杂、传输难的问题,为用户带来无缝切换的流畅体验。


关键字:NFC、原子化服务(免安装)。


NFC:NFC(Near Field Communication,近距离无线通信技术) 是一种非接触式识别和互联技术,让移动设备、消费类电子产品、PC 和智能设备之间可以进行近距离无线通信,通常的通信距离是 4 厘米或更短。


有兴趣可以看 NFC 相关介绍与开发:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/connectivity-nfc-overview-0000000000030030


原子化服务:原子化服务是 HarmonyOS 提供的一种面向未来的服务提供方式,是有独立入口的(用户可通过点击方式直接触发)、免安装的(无需显式安装,由系统程序框架后台安装后即可使用)、可为用户提供一个或多个便捷服务的用户应用程序形态。

有兴趣可以看关于原子化服务的介绍:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/atomic-service-definition-0000001090840664


碰一碰实战


①构建原子化服务


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

show in service center 被勾选后 IDE 会自动创建服务卡。
关于服务卡的内容,并不是本次介绍的重点,如果你有兴趣可以参看:服务卡片有详细的说明。
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-service-widget-overview-0000001062607955


服务卡接口:服务卡片提供方控制卡片实际显示的内容、控件布局以及控件点击事件。

如果创建项目时,勾选了 show in service center,则可以在 entry module 中的 MainAbility 类中看到重写的相关接口。

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


②运行原子化服务


说明:如果你想在发布前看看你的项目是否能正常运行,那么你可以进行本地运行,运行调试有两种方式。


远程模拟器调试,参看:使用模拟器进行调试。

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_emulator-0000001115721921


真机调试,参看:使用真机进行调试。
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404


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


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


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

解决方案:在 IDE 的 File->Project Structure->Project->Signing Configs,如果你未登录,则需要使用华为开发者账号进行登录,点击 SignIn 即可跳转到登录页面。

登录成功后,在 web 页面上点击“允许”,再返回 IDE 即可进行签名和认证的相关配置。

如果你没有设置自己的签名可以通过:“Automatically generate signing”自动生成签名和认证,自动生成的只在 debug 环境下使用。

建议需要发布的应用还是需要再 AGC 平台上申请相关的证书,参看:应用/服务发布。
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/publish_app-0000001053223745


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

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

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

运行起来没问题,现在可以准备发布了。

备注:如果你想通过 AGC 平台发布前进行测试,可以通过华为提供的开放式测试方案进行上架前测试验证,请参看我前面写的一篇灰度发布的文章:鸿蒙基于开放式测试方案发布原子化服务的实战。
https://harmonyos.51cto.com/posts/9937


③发布原子化服务


配置 release 环境的签名与认证:说明,发布之前必须要构建 release 的签名包,所以你必须需要在 AGC 平台上申请相关发布的数字认证和 Profile 文件。


生成环境下的签名与认证的申请可以参看:申请发布证书,将申请到的数字认证和 Profile 文件配置到本地的 release 环境。

https://developer.huawei.com/consumer/cn/doc/distribution/service/apply-certificate-0000001238387073


构建 APP:点击 IDE 的菜单:Build->Build Hap(s)/APP(s)->Build APP(s)。


构建成功后可以在项目的 build->outputs->app->release->xxxx-release-signed.app。

发布应用:将已认证签名的 app 包上传到 AGC(AppGallery Connect)平台,并且通过审核,发布成功。

发布流程不是本此的重点,这里就一步带过,如果对于上架问题,你可以参看:发布应用。

https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-configure-appinfo-0000001100086630


④申请 NFC 标签


编辑服务:打开需要申请 NFC 标签的服务(HarmonyOS 服务开放平台),点击“编辑”。

https://oauth-login.cloud.huawei.com/oauth2/v2/authorize?access_type=offline&response_type=code&client_id=6099200&login_channel=89000000&req_client_type=89&lang=zh-CN&redirect_uri=https%3A%2F%2Fdeveloper.huawei.com%2Fconsumer%2Fcn%2Fdevunion%2FopenPlatform%2Frefactor%2FhandleLogin.html&state=8534637&scope=https%3A%2F%2Fwww.huawei.com%2Fauth%2Faccount%2Fcountry+https%3A%2F%2Fwww.huawei.com%2Fauth%2Faccount%2Fbase.profile


申请支持碰一碰 NFC 标签:在 HarmonyOS 服务开放平台的“分发”菜单中申请支持碰一碰/扫一扫触发标签。

如果你想要了解NFC标签的详细信息,可以参看我之前的一篇关于:鸿蒙NFC标贴写入数据-详细。
https://harmonyos.51cto.com/posts/9898


最终华为提供的 NFC 标签有两种,如下所示:

  • 唤起服务的二维码

  • 唤起服务的 NFC 标贴数据

服务提测:在“测试”菜单中,点击“开始测试发布”。

添加测试用户:可以构建自己下需要添加测试用户,此用户必须为华为注册用户。

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

👇扫码报名周三的鸿蒙直播课👇

👇点击关注鸿蒙技术社区👇
了解鸿蒙一手资讯

求分享

求点赞

求在看

文章转载自鸿蒙技术社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论