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技术介绍