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

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

基本参考资料

  1. 最基本的学习资料是这篇Android官方文档:《Bluetooth Low Energy》。该文档对BLE涉及的基本概念进行了介绍,并结合例子代码对如何使用Android BLE API进行了讲解。所用的例子源代码在AOSP/developers/samples/android/connectivity/bluetooth/BluetoothLeGatt/。
  2. 开发中需要用到的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定义来解析数据。
  3. 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的表格。
  4. 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如果是分开购买,好像是免税的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值