您的位置:首页 > 移动开发 > Android开发

Android平台BLE应用程序开发指南

2014-09-04 17:58 323 查看
从Android 4.3开始,BLE(Bluetooth Low Energy)在Android平台上被支持了。但是目前Android上BLE应用程序稀少,尤其是中文应用程序,希望本文对有兴趣开发BLE应用程序的开发者有所帮助。本文主要是对目前已有的Andriod BLE开发相关资料进行整理,给出一个开发资料的索引。(本文会根据大家的问题,不断完善)

基本参考资料

最基本的学习资料是这篇Android官方文档:《Bluetooth Low Energy》。该文档对BLE涉及的基本概念进行了介绍,并结合例子代码对如何使用Android BLE API进行了讲解。所用的例子源代码在AOSP/developers/samples/android/connectivity/bluetooth/BluetoothLeGatt/。
开发中需要用到的BLE profile的spec,可以在蓝牙组织的官方网站上找到《Specification Adopted Documents》,该页面的“GATT-Based Specifications“即是BLE profile and service的spec。我们开发手机端的应用主要是根据某个profile
spec,但是该profile对应的service spec也需要阅读,因为它通常包含了该profile相关的专业概念的说明和数据格式的定义,比如Heart Rate Service spec中就介绍了从sensor发送到手机的Heart Rate Measurement Value field的定义,手机端在接收到数据后就要根据这个field定义来解析数据。
Definition Browser“页面也是一个很重要的参考资料,在这个页面你可以“View the structure of XML definitions for GATTprofiles,
services, characteristics,descriptors and
declarations and download the definitions in an XML format“,此外还能查看UnitsFormat Types。比如你可以在characteristics->Heart
Rate Measurement下看到该characteristic的Assigned number(uuid16)和Value fields的表格。
Profile, service, characteristic等都有一个128-bit UUID(Universally Unique Identifier),它可以通过把uuid16加到BASE_UUID的高32位得到,可以参考"Service Discovery"。

BLE相关的类

和BLE相关的类有以下七个:

BluetoothGatt
BluetoothGattCallback
BluetoothGattService
BluetoothGattCharacteristics
BluetoothGattDescriptor
BluetoothGattServer
BluetoothGattServerCallback

其中,前两个实现对GATT Client的支持,后两个实现对GATT Server的支持。多数情况下,手机都扮演GATT Client的角色。这些类都包含在android.bluetooth package. 目前Android没有基于GATT的profiles的API,比如Heart
Rate Profile, 开发者需要根据Heart Rate Profile的spec,利用这些类来实现连接并配置Heart Rate Sensor,然后获取并解析Heart Rate Sensor的测量数据。另外,对GATT这一层的一些参数和事件,Android也没有完全支持,所以不是所有的GATT profile都可以在目前的Android版本(4.4.4)上实现。Android对BLE的支持还在不断完善中,在后续的版本中应该会有更好的对BLE的支持。

硬件平台

开发BLE应用程序不仅需要一部支持BLE的Android手机,还需要BLE Sensors。这些Sensor如果每种单独购买市场上的产品,价格比较贵。作为应用程序开发者来说,最好是购买TI提供的BLE开发套件。TI提供了两种开发套件:CC2540/2541
Mini Development Kit(99美元)和CC2541
SensorTag Development Kit(25美元)。前者的硬件包含一个CC2540 USB Dongle,CC2540 "Keyfob"开发板(配备a two-colored LED, a buzzer, an accelerometer, and two buttons),CC Debugger烧写调试器。后者的硬件只包含一个SensorTag(配备IR temperature Sensor, Humidity Sensor, Pressure Sensor, Accelerometer,
Gyroscope, Magnetometer)。虽然前者支持的sensor只有一个,但是它是可编程的,能运行任意BLE profile的模拟程序,这样就能仿真各种sensor,并且TI提供了多数BLE profile的模拟程序源代码。个人建议还是购买CC2540/2541 Mini Development Kit。在Google Play/App Store上TI提供了支持SensorTag的应用程序。在www.ti.com上可以直接购买这两种套件,无须在某宝上被二道贩子再赚一比。TI也可能免费提供这两种套件(我自己的就是),不过TI不收钱,不代表海关不收税,Mini
Development Kit大概会被中国海关课100块的关税、增值税;SensorTag如果是分开购买,好像是免税的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: