简介

HUAWEI OneHop技术是华为终端分布式技术的核心组成部分,是在传统NFC技术的基础上开创性融合创新,通过"一碰"交互的方式成功打通了手机与周边设备间的生态割裂问题,使得手机与周边设备间的协同体验变得更加简洁高效。

您将会学到什么

通过本篇CodeLab,您将创建Demo Project,并将HUAWEI OneHop的SDK集成到demo上,并借助此SDK实现Linux设备侧的onehopkit服务功能。

硬件要求

软件要求

需要的知识点

开发基本步骤

(1)创建工程

新建一个项目工程,建立工程的方式依据开发者自身开发环境而定,此处不做规定。以示例代码工程为例,工程目录结构如下图所示:

将工程上传至Linux编译环境,如下图所示:

(2)工程编译

在Linux编译环境上,执行编译命令进行工程编译,详细编译命令请参见示例代码包中的README文档。如下图所示,编译生成onehopkit_demo文件:

说明:Demo的可执行文件命名根据开发者自身需求进行命名,本文中以"onehopkit_demo"为例。

(3)环境变量配置

Demo程序运行的Linux环境需要进行环境变量的配置,环境变量配置命令详见示例代码包中的README文档。完成环境变量配置,即可运行Demo程序。配置环境变量及运行程序的命令如下图所示:

整体业务流程梳理

详细业务流程如下图所示:

注意事项:

具体接口定义参见《API接口说明》文档。

以一碰打印场景为例,结合Demo中的代码说明接口调用的方法:

onehop_demo.c

int main() { signal(SIGINT, p_exit); InitCallback(); InitDriverAdapt(); /* 调用OneHop服务初始化接口 */ if (InitOneHop(NULL) != 0) { printf("*****Init OneHop failed!*****\n"); return -1; } /* OneHop 服务运行 * 可使用ctrl + c停止服务 */ while (g_running) { if (g_serviceEndFlag == SERVICE_STOPPED) { g_serviceEndFlag = SERVICE_STARTED; printf("#####Start onehop service#####\n"); if (StartOneHopService(&g_callBack) != 0) { printf("*****Start onehop service failed!*****\n"); if (StopOneHopService() != 0) { printf("*****Stop onehop service failed!*****\n"); UninitOneHop(); return -1; } g_serviceEndFlag = SERVICE_STOPPED; } } sleep(1); } /* 调用停止OneHop服务接口 */ printf("#####Stop onehop service#####\n"); if (StopOneHopService() != 0) { printf("*****Stop onehop service failed!*****\n"); UninitOneHop(); return -1; } /* 调用去初始化OneHop服务接口 */ printf("#####Uninit onehop kit#####\n"); UninitOneHop(); return 0; }

干得好,你已经成功完成了Codelab并学到了:

您可阅读以下链接,了解更多关于HUAWEI OneHop的信息
HUAWEI OneHop技术介绍

下载 source code

已复制代码