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

 

目录
相关文章
|
关系型数据库 MySQL Linux
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
.NET开源免费、企业级、可商用内容管理系统 - SSCMS
339 0
|
机器学习/深度学习 算法 数据挖掘
|
5月前
|
人工智能 安全 Java
对比测评:AI编程工具需要 Rules 能力
通义灵码Project Rules是一种针对AI代码生成的个性化规则设定工具,旨在解决AI生成代码不精准或不符合开发者需求的问题。通过定义编码规则(如遵循SOLID原则、OWASP安全规范等),用户可引导模型生成更符合项目风格和偏好的代码。例如,在使用阿里云百炼服务平台的curl调用时,通义灵码可根据预设规则生成Java代码,显著提升代码采纳率至95%以上。此外,还支持技术栈、应用逻辑设计、核心代码规范等多方面规则定制,优化生成代码的质量与安全性。
875 115
|
9月前
|
API 数据安全/隐私保护 开发者
商品订单接口获取及作用详解
在电商平台的后台管理中,订单接口至关重要。本文介绍了如何获取商品订单接口及其作用,包括注册开发者账号、创建应用、申请API权限和调用接口获取订单及物流信息的详细步骤,并提供了Python示例代码。同时,强调了遵守平台规则、数据安全和接口维护的重要性。
|
10月前
|
JavaScript 前端开发 数据可视化
哪些 JS 框架支持 SPA 单页面应用
目前主流的JavaScript框架如React、Vue和Angular都支持SPA(单页面应用)开发,能够实现页面无刷新更新,提升用户体验。其他如Ember.js、Backbone.js等也具备SPA开发能力。
|
7月前
|
人工智能 Oracle 搜索推荐
大模型重塑数据中心,全球服务器产业迎新增长浪潮
大模型重塑数据中心,全球服务器产业迎新增长浪潮
|
10月前
|
弹性计算 并行计算 双11
阿里云服务器多少钱一年?看看2024双11优惠价格,太给力了!
2024年双十一期间,阿里云推出多款优惠云服务器配置。轻量应用服务器2核2G、3M带宽、50GB ESSD云盘,仅需36元/年;云服务器ECS 2核2G、3M带宽、40GB ESSD Entry云盘,99元/年;ECS u1实例2核4G、5M带宽、80GB ESSD Entry盘,199元/年。更多配置详见官网。
706 1
|
程序员 开发者
玩转 GitHub profile - 打造自己的特色 GitHub 主页(交友利器🐶)
Github 作为全球最大程序员交友网站,大家在上面交友时一个具有个人特色的自我介绍自然是少不了的。🐶 今天介绍下 GitHub 的一项特色功能 - GitHub profile,以及一些列开源工具、项目来帮助打造自己特色的 GitHub profile。 GitHub profile 也是最近两年 GitHub 才新加的功能,开发者可以通过编写 README 打造属于自己的个人 GitHub 首页。
|
Kubernetes 关系型数据库 Nacos
Kubernetes(k8s)上搭建nacos集群
Kubernetes(k8s)上搭建nacos集群
4976 0
|
IDE Java Scala
一文了解IDE的安装及配置
一文了解IDE的安装及配置
493 0