谷歌 蓝牙4.0工作流程

简介: 谷歌于13年7月25日正式发布Android 4.3 操作系统,支持Bluetooth 4.0,搭载Bluetooth Low Energy/BLE技术。根据谷歌官网,SDK提供的demo开发,一共有一下几个步骤: 1、初始化BLE 2、搜索BLE设备 3、连接支持通用属性协议的设备 4、读...

谷歌于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进行处理

 

目录
相关文章
|
2月前
|
存储 安全 IDE
设备电源管理基础 【ChatGPT】
设备电源管理基础 【ChatGPT】
|
编解码 缓存 物联网
一个蓝牙实战项目的掏肺总结
一个蓝牙实战项目的掏肺总结
蓝牙技术简介(英语演讲)
蓝牙技术简介(英语演讲)
229 0
|
物联网 API 芯片
HarmonyOS系统中内核实现NFC无线通信的方法
大家好,今天主要聊一聊,如何使用鸿蒙系统中的NFC视频通信方法。
267 0
HarmonyOS系统中内核实现NFC无线通信的方法
|
传感器 大数据 测试技术
蓝牙体脂秤解决方案|学习笔记
快速学习蓝牙体脂秤解决方案
213 0
蓝牙体脂秤解决方案|学习笔记
|
存储 安全 测试技术
蓝牙核心规范(V5.2)3.5-深入详解之蓝牙应用架构
蓝牙核心规范(V5.2)3.5-深入详解之蓝牙应用架构
432 0
蓝牙核心规范(V5.2)3.5-深入详解之蓝牙应用架构
|
算法 iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
164 0
|
开发工具 git iOS开发
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计(二)
iOS简易蓝牙对战五子棋游戏设计思路之一——核心蓝牙通讯类的设计
246 0
|
物联网 开发工具 开发者
下一篇
无影云桌面