简介

HUAWEI Wear Engine面向手机和手表的服务&应用开发者,提供华为穿戴设备开放能力。应用通过调用Wear Engine开放能力接口,实现手机和手表上三方应用之间的消息通信和数据传输。Wear Engine集成方式简单,不需要关注设备间交互,具体集成方式示意如下:

您将建立什么

在这个Codelab中,提供了一个三方应用基础开发样例,您将使用Wear Engine实现一个手机端与手表端消息通信和数据传输的应用程序。

您将会学到什么

硬件要求

软件要求

需要的知识点

  1. 点击以下链接,下载Codelab的demo工程包:
  2. Demo工程

  3. 解压下载的压缩包到本地磁盘(比如D:\WearEngineCodeLab)。
  4. 使用Android Studio开发工具打开解压后的Demo工程。

1. 集成 Wear Engine SDK

步骤1 配置Wear Engine的Maven仓地址,在项目的build.gradle中配置仓库:

buildscript { repositories { maven { url 'http://developer.huawei.com/repo/' } google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.3' } } allprojects { repositories { maven { url 'http://developer.huawei.com/repo/' } google() jcenter() } }

步骤2 添加编译依赖,在工程APP目录中的build.gradle中添加如下依赖:

implementation 'com.huawei.hms:wearengine:5.0.0.300'

2. 补充关键代码

步骤1 获取用户授权

添加代码,在工程WearEngineMainActivity类文件的initData(){} 方法中完成HiWear的授权

private void initData() { HiWear.getAuthClient(this).requestPermission(new AuthCallback() { @Override public void onOk(Permission[] permissions) { Log.d(TAG, "getAuthClient onOk"); } @Override public void onCancel() { Log.e(TAG, "getAuthClient onCancel"); } }, Permission.DEVICE_MANAGER); }

步骤2 初始化并设置包名和指纹

添加代码,在工程WearEngineMainActivity类文件的initData(){} 方法中完成p2pClient的配置,需要通过设置手表应用包名和指纹连接手表应用

private void initData() { HiWear.getAuthClient(this).requestPermission(new AuthCallback() { @Override public void onOk(Permission[] permissions) { Log.d(TAG, "getAuthClient onOk"); } @Override public void onCancel() { Log.e(TAG, "getAuthClient onCancel"); } }, Permission.DEVICE_MANAGER); p2pClient = HiWear.getP2pClient(this); deviceClient = HiWear.getDeviceClient(this); p2pClient.setPeerPkgName("com.watch.wearengine"); p2pClient.setPeerFingerPrint("*******"); }

手表侧指纹信息

com.watch.wearengine_BC1bSGDxiTcUEkNGNztsD6sLBFgFWQm9lPl05ktD1R8Bx8SvYQNhjlIMJJGRkf8yVYNxMnwNCbxToR5xerVCp+o=

步骤3 调用Send方法发送文件到手表

添加代码,在工程WearEngineMainActivity类文件的sendFile中完成文件消息构建,并且调用send方法发送文件到手表端。

public void sendFile(String sendFilePath) { File sendFile = new File(sendFilePath); Message.Builder builder = new Message.Builder(); builder.setPayload(sendFile); Message fileMessage = builder.build(); String[] fileInfo = sendFilePath.split("/"); final String filename = fileInfo[fileInfo.length - 1]; Log.e(TAG, "file name is " + filename); p2pClient.send(selectedDevice, fileMessage, new SendCallback() { @Override public void onSendResult(int resultCode) { printOperationResult(Calendar.getInstance().getTime() + SEND_MESSAGE_TO + selectedDevice.getName() + DEVICE_NAME_OF + PEER_PKG_NAME + STRING_RESULT + resultCode); } @Override public void onSendProgress(long progress) { printOperationResult(Calendar.getInstance().getTime() + SEND_MESSAGE_TO + selectedDevice.getName() + DEVICE_NAME_OF + PEER_PKG_NAME + " progress:" + progress); if (progress == 100) { sendMessageResult(filename); } } }).addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void success) { printOperationResult( SEND_MESSAGE_TO + selectedDevice.getName() + DEVICE_NAME_OF + PEER_PKG_NAME + SUCCESS); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(Exception error) { printOperationResult( SEND_MESSAGE_TO + selectedDevice.getName() + DEVICE_NAME_OF + PEER_PKG_NAME + FAILURE); } }); }

3. 构建并运行应用程序

在工程完成同步后,选择您的设备作为部署目标,单击"运行"图标,构建运行,在设备上安装并启动示例应用程序,开始进行体验测试。

运行效果:

恭喜您,您已经成功完成了此次Codelab任务和挑战,并学到了以下技能:

请访问我们的官方网站,以进一步了解HUAWEI Wear Engine:

相关文档

本Codelab中所用Demo源码下载地址如下:

下载source code

已复制代码