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 GATT
    profiles, 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的支持。

时间: 2024-12-28 18:21:02

Android平台BLE应用程序开发指南的相关文章

Python 3程序开发指南(第2版 修订版)笔记

Python 3程序开发指南(第2版 修订版) 目录 1 过程型程序设计快速入门 2 数据类型 3 组合类型 4 控制结构与函数 5 模块 6 OOP 7 文件处理 8 高级程序设计技术 8.1 FP 9 调试.测试与Profiling 10 进程与线程 11 网络 12 数据库 13 正则表达式 14 分析简介 14.1 PyParsing 14.2 PLY 15 GUI 过程型程序设计快速入门 for in try except as 数据类型 sys.float_info.epsilon

Vista/Win7 UAC兼容程序开发指南

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

python 数据类型--《Python 3程序开发指南》笔记

参考:<Python 3程序开发指南> 整数转换函数: bin(i) 返回整数i的二进制表示(字符串) hex(i) 返回i的十六进制表示(字符串) int(x) 将x转换为整数,失败产生ValueError异常,x的数据类型不知道到整数的转换产生TypeError异常,x为浮点数则截取整数部分 int(x,base) 将用base进制表示的x转换成十进制,例如int('74',8)返回60,int('A4',16)返回164 oct(i) 返回i的八进制表示,例如oct(10)=='012'

freeMarker(八)——程序开发指南之配置(Configuration)

1.基本内容 配置(configuration)就是 freemarker.template.Configuration 对象, 它存储了常用(全局,应用程序级)的设置,定义了想要在所有模板中可用的变量(称为共享变量). 而且,它会处理 Template 实例的新建和缓存. 应用程序典型的用法是使用一个独立的共享 Configuration 实例.更精确来说, 典型的做法是每一个独立开发的组件(比如项目,模块等)都有一个 Configuration 实例,它在内部使用FreeMarker, 每一

Khronos推出OpenXR 0.9规范临时版 简化平台XR应用程序开发

由多家软硬件公司组成的开发联盟Khronos,公开OpenXR 0.9规范的临时版本,提供统一的跨平台API,简化各平台XR应用程序的开发工作.XR指的便是由计算机透过人机互动,所产生真实和虚拟的组合环境,包括虚拟现实(VR).增强实境(AR)和混合实境(MR)等相关技术.Khronos OpenXR工作小组在2017年的时候成立,而OpenXR则是一个免授权金的XR开放标准,其扮演应用程序和XR Runtime系统的接口.Runtime功能包括处理影格组合.外围装置管理以及原始的追踪讯息等功能

马上搞定Android平台的Wi-Fi Direct开发

导语 移动互联网时代,很多用户趋向于将大量的资料保存在移动设备上.但在给用户带来便利的同时引发了一个新的问题——保存在移动设备上的资料该怎样共享出去?到了思考时间,普通青年这样想:折腾什么劲啊,直接用数据线不就行了:而文艺青年可能这样想:咱们建个群吧,大家有好的东西都可以共享:二逼青年不高兴了,都特么互联网时代了,来点新意,好么?直接上网盘啊,大家互相研究研究,你懂的,嘿嘿.然而我是这样想的:都特么别BB,技术要以时俱进,来个新潮点的不行么?直接上Wi-Fi Direct.好用简单不解释.那么我

Android端实时音视频开发指南

简介 yun2win-sdk-Android提供Android端实时音视频完整解决方案,方便客户快速集成实时音视频功能. SDK 提供的能力如下: 发起 加入 AVClient Channel AVMember yun2win官网:www.yun2win.com SDK下载地址:http://www.yun2win.com/h-col-107.html 开发准备 注册并创建应用 到 github下载yun2winSDK及demo 下载源码详解 app为主体显示Module uikit为公共服务M

在Android平台下搭建PhoneGap开发环境

自己按照以下步骤写的,没有错误,中间因为没有cordova-2.9.1.jar文件,导致建的项目出错,所以步骤2是很重要哒. 1,在phonegap官方网站(phonegap.com/install)里下载最新版本(目前是 phonegap 2.9.1),下载后解压. 2,新版的phonegap 2.9.1,D:\phonegap-2.9.1\lib\android\framework中没有cordova-2.9.1.jar,所以要编译出来. 1)打开cmd命令行工具. 2)依次进入D:\pho

微信小程序 - 开发指南

一.下载并安装开发工具 下载地址 二.创建项目 三.启动流程 四.适用场景 五.技术框架