Android Wear 手机与手表数据通讯

数据通讯
数据通讯这最大的坑就是服务这一块,因为在国内是没办法使用服务的,所以这一点有点坑 。也就是不使用谷歌服务就没办法实现手机与手表的数据交互(当然也不是绝对的) 。这里找到了两个绝对权威的资料,这里跟大家分享一下 。防止大家在这上面浪费太多的时间 。
我们只需要按照上面资料中的说明去下载-play--7-8-87.zip就可以了(版本以官网提供的为准),上面两个网站都能下载到资料 。我们先将资料先下载下来(暂时还用不到) 。接下来我们先创建项目 。
一、创建项目
创建项目与创建Phone项目稍微有点区别,这里我就将不同的地方以GIF来作为演示 。

Android Wear 手机与手表数据通讯

文章插图
我们来看下创建项目的目录结构 。结构非常清晰,这里有两个,一个是手机应用,另一个就是穿戴应用 。
Android Wear 手机与手表数据通讯

文章插图
二、修改中的依赖配置
在创建的项目中,默认为开发者配置好的了一些依赖插件,但是有一个我们是没办法用的 。是啥呢?就是-play-,为啥不能用呢?因为版本太高,我们只能使用-play--7-8-87这个版本才行 。这里我以wear的为例(与wear的修改方法是一样的) 。
1.创建项目中的wear的配置:
这是wear的配置,这里默认使用的-play-版本是10.2.0 。我们需要将这个替换成-play--7-8-87才行 。
Android Wear 手机与手表数据通讯

文章插图
2.获取play--7.8.87.aar文件:
我们需要解压-play--7-8-87.zip,随后找到play--7.8.87.aar这个文件 。(解压后文件所在目录:-play--7-8-87\com\\\gms\play-\7.8.87)
Android Wear 手机与手表数据通讯

文章插图
3.导入play--7.8.87.aar文件:
1.首先将play--7.8.87.aar文件复制 。
Android Wear 手机与手表数据通讯

文章插图
2.将复制的play--7.8.87.aar文件粘贴到wear的libs包中 。
Android Wear 手机与手表数据通讯

文章插图
3.修改wear的的配置完成资源依赖
【Android Wear 手机与手表数据通讯】
Android Wear 手机与手表数据通讯

文章插图
导入play--7.8.87.aar文件只需按着这个操作步骤再做一遍就可以了 。
三、修改文件
无论是还是wear都要这样修改(将图片中红框中的部分添加到你的配置文件中) 。
Android Wear 手机与手表数据通讯

文章插图
四、通过手机向手表传递数据
这里将会使用.接收数据,用法跟ice基本没啥区别 。
moble应用发送数据:
当点击按钮后,手机端会发送出一条消息 。
package com.lyan.test;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.wearable.DataMap;import com.google.android.gms.wearable.PutDataMapRequest;import com.google.android.gms.wearable.Wearable;public class MainActivity extends AppCompatActivity {GoogleApiClient googleApiClient;//服务对象@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建服务对象googleApiClient = new GoogleApiClient.Builder(this).addApi(Wearable.API).build();googleApiClient.connect();//开始连接}/*** 发送消息到手表* @param view*/public void send(View view){PutDataMapRequest dataMapRequest = PutDataMapRequest.create("/KEY");//使用KEY来过滤DataMap dataMap = dataMapRequest.getDataMap();//获取消息的载体dataMap.putLong("time" , System.currentTimeMillis());//传递点击按钮的时间Wearable.DataApi.putDataItem(googleApiClient,dataMapRequest.asPutDataRequest());//发送数据}}