Android蓝牙BLE低功耗相关简单总结
在看Android4.42的源代码时看到有加入对BLE设备的处理。看的一头雾水,多方百度,最终有种柳暗花明的感觉。
本文总结来源于百度多篇文章,欢迎转载。分享交流
BLE蓝牙概念
BLE:Bluetooth low Energy 低能耗蓝牙,实现低成本,短距离的无线传输。传输速率于传统蓝牙同样位2.4GHZ。採用很高速的连接方式,适用于发送数据量少并且发送次数较少的蓝牙通信
相比于传统蓝牙
- BLE蓝牙设备的传输距离最远可达100米
- 发送数据所需时间短(<3ms)
- 响应延时时间短(6ms)
- 低能耗
- 主要应用于仅仅能穿戴,汽车。家用电子等
BLE通信协议
在进行BLE通信时通信两方分为外围(Periphery)和中央(Central)
1,外围用于提供数据
2。中央用于接收和处理数据
相当于集中式布局。中央可接收多个外围的数据,但外围仅仅能向一个中央发送数据,也就是说一个中央同一时候可连接多个外围设备,但一个外围设备仅仅能连接一个中央
3,主要类
i>,BluetoothGattServer:外围设备要发送的数据
ii>。BluetoothServerCallback:返回外围设备的状态
iii>,BluetoothGatt:中央使用和处理数据
iv>。BluetoothGattCallBack:返回中央设备的状态
使用ble通信能够包括多个Profile,一个profile能够包括多个service。一个service能够包括多个特征characteristic。
眼下所使用的Android手机仅仅能作为中央使用和处理数据,接下来介绍下怎样去创建一个中央
创建中央(Central)
- 在配置文件里加入蓝牙的权限
- 获取本地蓝牙适配器mBluetoothAdapter = BluetoothAapter.getDefaultAdapter()
- 扫描附近可用的BLE蓝牙设备mBluetoothAdapter.startLeScan(mLeScanCallback);传入的參数对象为BluetoothAdapter.LeScanCallback。
- 搜索到ble设备时会回调onLeScan方法,获取到BluetoothDevice
- 利用所获取的device调用连接方法device.connectGatt(......)方法。方法返回BluetoothGatt对象
/**
*第一个參数为上下文,context
*第二个參数为autoConnect。布尔值
*第三个參数为BluetoothAdapter.LeScanCallback对象,连接后回调,在回调中能够获取到手机的蓝牙连接状态
*/
mBluetoothGatt = device.connectGatt(BluetoothCODAService.this, false, mGattCallback);
- 在连接成功后就能够搜索服务进行通信了。利用获取到的BluetoothGatt对象。mBluetoothGatt.discoveryServices()能够搜索服务。在搜索到服务后会触发onServicesDiscovered()方法。若status位BluetoothGatt.GATT_SUCCESS代表搜索成功
- 在搜索到服务后调用mBluetoothGatt.getService()来获取BluetoothGattService列表
- 单个BluetoothGattService对象调用gattService.getCharacteristics()方法获取到BluetoothGattCharacteristic列表
- 获取到特征之后能够调用API的方法来获取所须要的信息
Android蓝牙BLE低功耗相关简单总结的更多相关文章
- Android蓝牙BLE开发,扫描、连接、发送和读取信息;
1.BLE开发权限 Android蓝牙BLE开发须打开蓝牙权限和6.0位置权限: <uses-permission android:name="android.permission.B ...
- Android使用BLE(低功耗蓝牙,Bluetooth Low Energy)
背景 在学习BLE的过程中,积累了一些心得的DEMO,放到Github,形成本文.感兴趣的同学可以下载到源代码. github: https://github.com/vir56k/bluetooth ...
- Android 蓝牙 BLE 开发笔记
最近公司头戴换了一块蓝牙4.0 BLE模块,所以我们Android组要适配 BLE.Android BLE 需要 4.3 以上系统,api 还是非常简单的, 第一步就是扫描, 扫描到设备后就可以连接了 ...
- Android -BLE蓝牙小DEMO
代码地址如下:http://www.demodashi.com/demo/13890.html 原文地址: https://blog.csdn.net/vnanyesheshou/article/de ...
- 深入了解Android蓝牙Bluetooth ——《总结篇》
在我的上两篇博文中解说了有关android蓝牙的认识以及API的相关的介绍,蓝牙BLE的搜索,连接以及读取. 没有了解的童鞋们请參考: 深入了解Android蓝牙Bluetooth--<基础篇& ...
- 【转】蓝牙ble app开发(三) -- 抓包
原文网址:http://blog.csdn.net/lckj686/article/details/43156617 关于android 蓝牙app开发抓包的重要性在 android 蓝牙ble ap ...
- Android低功耗蓝牙(BLE)开发的一点感受
最近一段时间,因为产品的需要我做了一个基于低功耗蓝牙设备的Android应用,其中碰到了一些困难,使我深深体会到Android开发的难处:不同品牌,不同型号和不同版本之间的差异使得Android应用适 ...
- 【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 : -- 官方文档 : https://develope ...
- Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址
Android BLE与终端通信(一)--Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址 Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端 ...
随机推荐
- Embarcadero RAD Studio XE5
英巴卡迪诺 RAD Studio XE是终极应用程序开发套件,能以最快速方式为Windows.Mac OS X. .NET. PHP. Web和移动设备可视化开发数据丰富.界面美观的跨平台应用程序.R ...
- 淘宝应对"双11"的技术架构分析
原文地址:http://kb.cnblogs.com/page/193670/ 双“11”最热门的话题是TB ,最近正好和阿里的一个朋友聊淘宝的技术架构,发现很多有意思的地方,分享一下他们的解析资料: ...
- ASIHTTPRequest学习笔记
1.creating requestsrequest分为同步和异步两种.不同之处在于开始request的函数:[request startSynchronous];[request startAsyn ...
- c++中 extern
用例子给你示范 // 1.cpp int x = 10; // 2.cpp 注意没有包含1.cpp #include <iostream> using namespace std; ext ...
- Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析
本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象.与Google原生AOSP有些许差异.请读者知悉. ...
- Unity3D 中鼠标按下时OnMouseDown()、Input.GetMouseButtonDown()和EventType.MouseDown的响应验证
初学unity3D,对于其中的事件响应不是很清楚,于是写了下面的代码来验证: 1.新建.cs文件,名为testMouse.cs: using UnityEngine; using System.Col ...
- java.io.IOException: Attempted read from closed stream解决
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...
- SharePoint 表单认证创建用户
前言 本文介绍如何在SharePoint表单登陆中添加表单用户,前提是已经配置了表单认证,如果没配置表单登陆,需要先配置表单登陆: 1. 打开Visual Studio,如下图: 2. 新建一个项目 ...
- script标签加载顺序(defer & async)
script 拥有的属性 async:可选,表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本.只对外部脚本文件有效. charset:可选.表示通过 src 属性指 ...
- 冰川时代5:星际碰撞Ice Age: Collision Course迅雷下载
影片讲述松鼠奎特为了追松果,偶然引发了宇宙事件,改变并威胁着冰川时代的世界.为了拯救自己,话唠树懒希德.猛犸象曼尼.剑齿虎迪亚哥,以及别的动物群族必须离开家园,踏上了他们充满喜剧色彩的冒险旅程,他们来 ...