在写这篇文章的时候,谷歌刚刚发布了Android Wear ,摩托罗拉也发布了 Moto 360 智能手表。Android Wear的API仍是至关基本的,是很好的文档材料,并且还会不断的更新,因此我不打算写一个关于他们的教程(至少如今尚未)。有趣的是 Moto 360 支持 Android 4.3及以后的版本。这明显是Bluetooth LE只有在Android 4.3及之后才被支持的缘由,这也意味着 Moto 360 支持Bluetooth LE。Bluetooth LE 将不只是可穿戴技术的核心技术,并且也是许多物联网设备的核心技术。在这个系列博客中咱们将了解 Bluetooth LE 在 Android 上的使用。 网络
蓝牙自20世纪90年中后期就已经出现,并已成为短距离设备的对等网络的标准。一个缺点是它须要消耗一点电量,这在移动设备上是一 个问题,并且在电池更小的可穿戴设备中须要消耗更多电。另外一个缺点是两个蓝牙设备必须配对才能够相互通讯。虽然配对过程只须要执行一次,但对用户来讲这是一个痛苦的经历。 架构
Bluetooth Low Energy(低功耗蓝牙),缩写为Bluetooth LE,或BLE,做为蓝牙4.0 (有时称为蓝牙智能)规范的一部分,并针对上述的这些具体问题而被引入。就提升电池寿命而言,许多制造商声称一些传感器能维持数月甚至数年的时间(我必须认可我有点怀疑制造商的估计通常是基于最好的状况下,而不涉及实际的使用状况)。正如前面已经提到的,谷歌在Android 4.3(API 18)中加入了对BLE的支持。
学习
对于那些已经熟悉蓝牙开发的童鞋来讲,BLE提供了一个诸如学习曲线的玩意,由于它是一个很是不一样的野兽(译者注:这句不知道该怎么翻译啦,求各位帮忙看看, 原文是: BLE presents something of a learning curve because it is a rather different beast ),因此让咱们大体地看下他们的主要区别。
spa
第一个主要区别是在配对过程。传统的蓝牙开发,配对两个设配主要是用户的任务,但使用BLE,配对的任务更多的在于开发商。这是一件好事,由于从用户的角度来讲整个配对过程变得更直接了当。
.net
另外一个主要的区别是通讯自己。传统的蓝牙开发通讯方式有许多选择,从根本上说都是基于和标准的Sockets很是类似的Sockets架构。本质上咱们的数据经过Sockets传递,而且它是两个设备知道数据流格式的一种实例。BLE则采用不一样的方法,它以属性为中心进行数据通讯。在两个设备之间共享的属性本质上是一个原子数据(整数或字符串)。属性可用于表示数据或控制传感器的行为。例如,在一个心率监测仪中一个属性可能包含了当前的心率值(数据)以及另外一个可能包含心率值更新频率的设置(行为)。
翻译
在进一步了解以前,咱们有必要定义一些角色。一般咱们将传感器(心率监视器,温度传感器,等)链接到一个主机(智能手机,平板电脑,等)。在咱们的例子中,主机从一个属性中读数据的同时能够经过写入一个新值到另外一个属性中以控制传感器的行为。其实控制传感器行为的状况会更多一点,由于主机也能够注册监听一个属性的改变,这个咱们将在适当的时候再去讨论。 blog
在本系列的文章中我将使用的设备是 Texas Instruments SensorTag 它是一个具备BLE功能的多传感器开发套件。价格很便宜,在£20(25美圆)以内。同时还有环境温度,红外温度,相对湿度,气压计,磁力计,加速度计,陀螺仪和手动开关等设备–全部这些均可以经过BLE访问。在这个系列博客中咱们将开发一个应用程序,显示从SensorTag中得到的环境温度和湿度值。 教程
很是抱歉在这篇文章中没有代码,由于我以为在深究BLE以前了解一点背景知识很重要。不过在下一篇文章确定会给出一些代码 -- 我保证! 开发