android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探

android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探

ID:12779528

大小:160.50 KB

页数:11页

时间:2018-07-19

android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探_第1页
android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探_第2页
android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探_第3页
android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探_第4页
android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探_第5页
资源描述:

《android ble与终端通信(五)——google api ble.低功耗蓝牙文档解读之案例初探》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AndroidBLE与终端通信(五)——GoogleAPIBLE4.0低功耗蓝牙文档解读之案例初探一.概述我们直接翻译GenericAttributeProfile(GATT)—GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为“属性”的数据块。目前所有的BLE应用都基于GATT。蓝牙SIG规定了许多低功耗设备的配置文件。配置文件是设备如何在特定的应用程序中工作的规格说明。注意一个设备可以实现多个配置文件。例如,一个设备可能包括心率监测仪和电量检测。AttributeProtocol(ATT)—GATT在ATT协议

2、基础上建立,也被称为GATT/ATT。ATT对在BLE设备上运行进行了优化,为此,它使用了尽可能少的字节。每个属性通过一个唯一的的统一标识符(UUID)来标识,每个String类型UUID使用128bit标准格式。属性通过ATT被格式化为characteristics和services。Characteristic一个characteristic包括一个单一变量和0-n个用来描述characteristic变量的descriptor,characteristic可以被认为是一个类型,类似于类。DescriptorDescripto

3、r用来描述characteristic变量的属性。例如,一个descriptor可以规定一个可读的描述,或者一个characteristic变量可接受的范围,或者一个characteristic变量特定的测量单位。Serviceservice是characteristic的集合。例如,你可能有一个叫“HeartRateMonitor(心率监测仪)”的service,它包括了很多characteristics,如“heartratemeasurement(心率测量)”等。你可以在bluetooth.org找到一个目前支持的基于GAT

4、T的配置文件和服务列表。二.角色和责任这里有两个概念中央VS外围设备。适用于BLE连接本身。中央设备扫描,寻找广播;外围设备发出广播。GATT服务端VSGATT客户端。决定了两个设备在建立连接后如何互相交流。为了方便理解,想象你有一个Android手机和一个用于活动跟踪BLE设备,手机支持中央角色,活动跟踪器支持外围(为了建立BLE连接你需要注意两件事,只支持外围设备的两方或者只支持中央设备的两方不能互相通信)。当手机和运动追踪器建立连接后,他们开始向另一方传输GATT数据。哪一方作为服务器取决于他们传输数据的种类。例如,如果运动

5、追踪器想向手机报告传感器数据,运动追踪器是服务端。如果运动追踪器更新来自手机的数据,手机会作为服务端。在这份文档的例子中,androidapp(运行在android设备上)作为GATT客户端。app从gatt服务端获得数据,gatt服务端即支持HeartRateProfile(心率配置)的BLE心率监测仪。但是你可以自己设计androidapp去扮演GATT服务端角色。也就是自定义三.案例好的,Google文档中,也举了一个例子说明,我们要使用BLE的时候,必须有要加上两个权限

6、android:name="android.permission.BLUETOOTH"/>这其实你要使用蓝牙这个硬件都是要加上这个权限的,但是这里Google又声明了一点如果n你想声明你的软件只为具有BLE的设备提供服务的话,你应该要在清单文件中加入

7、roid:required="true"/>如果改为false的话,那其他蓝牙也是可以使用的,我们创建一个工程——BLETest和传统蓝牙一样,我们添加完权限之后就要去判断这个设备是否支持BLE//判断是否支持BLE设备if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)){Toast.makeText(this,"此设备不支持BLE",Toast.LENGTH_SHORT).show();finish();}这步操作也只是你设置

8、为false的时候才是必须的,因为你如果你设置为true,那你只给BLE服务,那这个判断也就是多余的了,紧接着,我们还需要去判断蓝牙是否开启,如果没有开启,我们就去开启他,这次虽然也是用BluetoothAdapter去获取,但是这里用了一个新的类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。