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

Android 蓝牙4.0详细

2016-03-16 08:56 405 查看
最近,随着智能穿戴式设备、智能医疗以及智能家居的普及,蓝牙开发在移动开中显得非常的重要。由于公司需要,研究了一下,蓝牙4.0在Android中的应用。

以下是我的一些总结。

1.先介绍一下关于蓝牙4.0中的一些名词吧:

(1)、GATT(Gneric Attibute Profile)

通过ble连接,读写属性类小数据Profile通用的规范。现在所有的ble应用Profile 都是基于GATT

(2)、ATT(Attribute Protocal)

GATT是基于ATT Potocal的ATT针对BLE设备专门做的具体就是传输过程中使用尽量少的数据,每个属性都有个唯一的UUID,属性chartcteristics and Service的形式传输。

(3)、Service是Characteristic的集合。

(4)、Characteristic 特征类型。

比如,有个蓝牙ble的血压计。他可能包括多个Servvice,每个Service有包括多个Characteristic

注意:蓝牙ble只能支持Android 4.3以上的系统 SDK>=18

2.以下是开发的步骤:

2.1首先获取BluetoothManager

复制代码代码如下:

BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);

2.2获取BluetoothAdapter

复制代码代码如下:

BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();

2.3创建BluetoothAdapter.LeScanCallback

?
2.4.开始搜索设备。

复制代码代码如下:

mBluetoothAdapter.startLeScan(mLeScanCallback);

2.5.BluetoothDevice 描述了一个蓝牙设备 提供了getAddress()设备Mac地址,getName()设备的名称。

2.6开始连接设备

?
2.7连接到设备之后获取设备的服务(Service)和服务对应的Characteristic。

?
2.8获取到特征之后,找到服务中可以向下位机写指令的特征,向该特征写入指令。

?
2.9写入成功之后,开始读取设备返回来的数据。

?
2.10、断开连接

?
2.11、数据的转换方法

?
?
大概整体就是如上的步骤,但是也是要具体根据厂家的协议来实现通信的过程。

就拿一个我们项目中的demo说一下。

一个蓝牙ble的血压计。 上位机---手机 下位机 -- 血压计

1.血压计与手机连接蓝牙之后。

2.上位机主动向下位机发送一个身份验证指令,下位机收到指令后开始给上位做应答,

3.应答成功,下位机会将测量的血压数据传送到上位机。

4.最后断开连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: