前言

在写这篇文章的时候,谷歌刚刚发布了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 上的使用。

Bluetooth 与 Bluetooth LE简介

蓝牙自20世纪90年中后期就已经出现,并已成为短距离设备的对等网络的标准。一个缺点是它需要消耗一点电量,这在移动设备上是一 个问题,而且在电池更小的可穿戴设备中需要消耗更多电。另一个缺点是两个蓝牙设备必须配对才可以相互通信。虽然配对过程只需要执行一次,但对用户来说这是一个痛苦的经历。

Bluetooth Low Energy(低功耗蓝牙),缩写为Bluetooth LE,或BLE,作为蓝牙4.0 (有时称为蓝牙智能)规范的一部分,并针对上述的这些具体问题而被引入。就提高电池寿命而言,许多制造商声称一些传感器能维持数月甚至数年的时间(我必须承认我有点怀疑制造商的估计一般是基于最好的情况下,而不涉及实际的使用情况)。正如前面已经提到的,谷歌在Android 4.3(API 18)中加入了对BLE的支持。

Bluetooth 与 Bluetooth LE 的区别

对于那些已经熟悉蓝牙开发的童鞋来说,BLE提供了一个诸如学习曲线的玩意,因为它是一个非常不同的野兽(译者注:这句不知道该怎么翻译啦,求各位帮忙看看, 原文是: BLE presents something of a learning curve because it is a rather different beast ),所以让我们大致地看下他们的主要区别。

第一个主要区别是在配对过程。传统的蓝牙开发,配对两个设配主要是用户的任务,但使用BLE,配对的任务更多的在于开发商。这是一件好事,因为从用户的角度来说整个配对过程变得更直接了当。

另一个主要的区别是通信本身。传统的蓝牙开发通信方式有许多选择,从根本上说都是基于和标准的Sockets非常相似的Sockets架构。本质上我们的数据通过Sockets传递,并且它是两个设备知道数据流格式的一种实例。BLE则采用不同的方法,它以属性为中心进行数据通信。在两个设备之间共享的属性本质上是一个原子数据(整数或字符串)。属性可用于表示数据或控制传感器的行为。例如,在一个心率监测仪中一个属性可能包含了当前的心率值(数据)以及另一个可能包含心率值更新频率的设置(行为)。

关于本系列文章

在进一步了解之前,我们有必要定义一些角色。通常我们将传感器(心率监视器,温度传感器,等)连接到一个主机(智能手机,平板电脑,等)。在我们的例子中,主机从一个属性中读数据的同时可以通过写入一个新值到另一个属性中以控制传感器的行为。其实控制传感器行为的情况会更多一点,因为主机也可以注册监听一个属性的改变,这个我们将在适当的时候再去讨论。

在本系列的文章中我将使用的设备是  Texas Instruments SensorTag   它是一个具有BLE功能的多传感器开发套件。价格很便宜,在£20(25美元)之内。同时还有环境温度,红外温度,相对湿度,气压计,磁力计,加速度计,陀螺仪和手动开关等设备–所有这些都可以通过BLE访问。在这个系列博客中我们将开发一个应用程序,显示从SensorTag中获得的环境温度和湿度值。

非常抱歉在这篇文章中没有代码,因为我觉得在深究BLE之前了解一点背景知识很重要。不过在下一篇文章肯定会给出一些代码 -- 我保证!

Bluetooth LE(低功耗蓝牙) - 第一部分的更多相关文章

  1. Bluetooth LE(低功耗蓝牙) - 第三部分

    回顾 在本系列的前两篇文章中,我们已经了解了一些关于Bluetooth LE的背景并建立一个简单的Activity / Service框架.   在这篇文章中,我们将探讨Bluetooth LE的细节 ...

  2. Bluetooth LE(低功耗蓝牙) - 第二部分

    回顾 在前面的文章中我们介绍了Bluetooth LE的背景也说明了我们在本系列文章中将要开发什么,但是还没有实际的代码.我们将在这篇文章中纠正这一点,我们将通过定义 Service/Activity ...

  3. Bluetooth LE(低功耗蓝牙) - 第四部分

    回顾 在本系列前几篇文章中我们完成了BLE设备的发现 , 为我们的app通过BLE显示从TI SensorTag设备中获取到环境温度和湿度的工作打下了基础.在这篇文章中我们将着眼于连接到我们所发现的S ...

  4. Bluetooth LE(低功耗蓝牙) - 第五部分

    回顾: 在本系列前面的文章中我们完成了发现BLE传感器并与之建立连接.现在只剩下从其中获取数据了,但是这并没有看起来那么简单.在这篇文章中我们将讨论GATT的特点以及如何促进主机与传感器之间的数据交换 ...

  5. Bluetooth LE(低功耗蓝牙) - 第六部分(完)

    在本系列前面的文章中我们已经了解了,在我们从一个TI SensorTag中获取温度和湿度数据之前,我们需要经历的各种步骤.在本系列中的最后一篇文章,我们将完成注册并接收SensorTag的通知,并接收 ...

  6. Bluetooth Low Energy——蓝牙低功耗

    Android4.3(API级别18)引入内置平台支持BLE的central角色,同时提供API和app应用程序用来发现设备,查询服务,和读/写characteristics.与传统蓝牙(Classi ...

  7. 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://develope ...

  8. Android使用BLE(低功耗蓝牙,Bluetooth Low Energy)

    背景 在学习BLE的过程中,积累了一些心得的DEMO,放到Github,形成本文.感兴趣的同学可以下载到源代码. github: https://github.com/vir56k/bluetooth ...

  9. 低功耗之战!ANT VS Bluetooth LE

    利用近距离无线通信技术将手机及可穿戴式传感器终端等与智能电话连接起来,实现新的功能.最近,以此为目标的行动正在展开.其中备受关注的近距离无线方式是“ANT”和“Bluetooth LE”.为了在各种便 ...

随机推荐

  1. PS之火焰铁锈字

    效果图 素材一:将下图在PS中打开,选择菜单:编辑>定义图案,命名后关闭图案 素材二 1.新建如下画布 2.将素材二拖入新建好的画布(使用移动工具) 3.先将文字图层复制4次(ctrl+J)并且 ...

  2. C#中有关字符串去重的解决方案

    今天在群里看到一个同学的面试题 题目中有一个这样的要求 //本地有个文档文件a.txt里面包含的内容分为一段字符串"abacbacde"请编写一个程序,获取文件得到对应的内容,并对 ...

  3. [字符串] AppMessage--字符串返回帮助类 (转载)

    点击下载 AppMessage.rar 这个类是关于AppMessage的帮助类,主要是格式化返回字符串的里面会有很多的提供字符的格式以及预设置内容,大家可以直接使用的看下面代码吧 /// <s ...

  4. 简单登录案例(SharedPreferences存储账户信息)&联网请求图片并下载到SD卡(文件外部存储)

    新人刚学习Android两周,写一个随笔算是对两周学习成果的巩固,不足之处欢迎各位建议和完善. 这次写的是一个简单登录案例,大概功能如下: 注册的账户信息用SharedPreferences存储: 登 ...

  5. 关于AVD不能导入文件的解决方案

    安卓虚拟机导入文件时报以下异常: [2013-01-23 16:09:18 - ddms] transfer error: Read-only file system [2013-01-23 16:0 ...

  6. iis7.5 应用程序池 经典模式和集成模式的区别

    在 IIS 7.5 中,应用程序池有两种运行模式:集成模式和经典模式. 应用程序池模式会影响服务器处理托管代码请求的方式. 如果托管应用程序在采用集成模式的应用程序池中运行,服务器将使用 IIS 和 ...

  7. SQL SERVER while循环

    在SQL数据库中,可以通过WHILE实现循环,下面就将为您介绍SQL循环执行while控制,希望对您提升WHILE的使用水平能够有些帮助. WHILE Boolean_expression    { ...

  8. SQL Server 索引和视图【转】

    Ø 索引 1. 什么是索引 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度. 2. 索引分类 数据库中索引主要分为两类:聚集索引和非聚集索引.SQL Serv ...

  9. jquery动态插入行,不用拼写html,简洁版

    这个一个利用jquery实现动态插入输入行效果小功能,不用在javascript里拼写html字符串,更简洁.高效. html代码: <div class="fitem"&g ...

  10. 三种C#.net生成静态页面的方法

    ASP.NET生成静态页面方法主要有三种   第一种方法:向服务器的动态页面发送请求,获取页面的html代码.这种方法缺点显而易见:速度慢.另外如果请求的动态页面有验证控件的话,返回的html页面却无 ...