谷歌 蓝牙4.0工作流程

谷歌于13年7月25日正式发布Android 4.3 操作系统,支持Bluetooth 4.0,搭载Bluetooth Low Energy/BLE技术。根据谷歌官网,SDK提供的demo开发,一共有一下几个步骤:

1、初始化BLE

2、搜索BLE设备

3、连接支持通用属性协议的设备

4、读取BLE属性

5、接收设备数据

6、关闭

每一步具体操作如下:

Step1:初始化BLE

1)得到一个本地适配器:BluetoothAdapter

2)启动蓝牙:if (!mBluetoothAdapter.isEnabled()) {

   Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

   startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }

Step2:搜索BLE设备

1)调用startLeScan()BluetoothAdapter.LeScanCallback作为参数,由于扫描非常耗电,所以需要设定一个扫描时间,且一旦发现目标设备,停止扫描。

2)如果想扫描已知的具体目标,可以使用startLeScan(UUID[], BluetoothAdapter.LeScanCallback)

直接给出一组uuid去扫描。

Step3:连接支持GATT的设备(GATT Server)

1)实例化一个BluetoothGatt 对象,如(mBluetoothGatt),

BluetoothGatt mBluetoothGatt = device.connectGatt(this, false, mGattCallback);

它有三个参数(对象,布尔变量,mGattcallback,mGattcallbackBluetoothGattcallback的一个引用,该对象用来指导手机端APP的操作(GATTclient

private final BluetoothGattCallback  mGattCallback = new BluetoothGattCallback() {

    public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {}

    public void onServicesDiscovered(BluetoothGatt gatt, int status) {}

 

    public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic, int status) {} //实现从设备端读取数据

    public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic) {}

}; //mGattCallback 有四个方法,分别是状态连接改变,低功耗设备发现,数据读,数据改变通知

2)BluetoothGattCallback 传递数据到APP,比如连接状态,以及更多的app操作

Step4:读取BLE属性

1)读取设备的名字和地址

Step5:接收GATT通知

1)setCharacteristicNotification() 通知APP,设备端的产生变化

public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic) {}

//实现数据写

Step6:关闭程序,解除连接

 

 

 

 

GATT API工作流程图:

 

 

 

解读官方提供的demo:(主要是设备连接那一块)

1BLE app 提供DeviceControlActivity 进行连接,显示数据和GATT设备以及设备支持的一些属性特征,该活动主要和BluetoothLeService通信,并通过安卓的BLE APT BEL设备进行交互。

2)当特定的某个反馈触发,将调用合适的broadcastUpdate() 方法,并传递一个动作

3)回到DeviceControlActivity 上面的四个事件由BroadcastRecevier进行处理

 

posted @ 2015-03-30 17:53  狂奔的小狮子  阅读(696)  评论(0编辑  收藏  举报