第一篇:蓝牙的一些准备工作 http://www.jianshu.com/p/81a2716d1f05
第二篇:蓝牙数据的广播数据解析 http://www.jianshu.com/p/d0c9e3c5e30a
Android BLE的基本描述
接触BLE已经快一年了,感触颇多,Android的蓝牙比起苹果的来说确实有些差距,毕竟iPhone手机的价格在哪里放着。
现在BLE5.0已经发布,但是全英文版的文档2000多页,我的乖乖不忍直视。
https://www.bluetooth.com/zh-cn/what-is-bluetooth-technology/how-it-works/bluetooth5
这个只是个介绍,相关的文档我会再后面给出。
刚刚开始的时候,我做BLE相关的时候 ,一脸懵逼的样子。我当时问我的经理的 时候,我说接受BLE的广播数据,需要自己写注册一个广播接收数据吗?现在觉得当时的自己的傻不拉几的。好了言归正传,下面我们一起来看下BLE蓝牙基本的入门吧。(其实感觉自己也就是会个基本的)
在我看来整个一个关于蓝牙接收到数据的过程需要分为几个部分。
1、蓝牙前期的准备。同时判断蓝牙的权限,需要有蓝牙权限,还有需要获取到蓝牙的状态,最好的方式应该是此时注册一个广播监听蓝牙的状态的变化。
2、获取到蓝牙适配器对象,此时有个地方点需要注意;(Android在5.0以下和5.0以上的接口上做了很大的改变,所有有些系统版本低的手机,需要在方法上做一些区别)
3、启动蓝牙扫描。(有两个版本的接口,后来我会详细提到这些地方)。
4、解析数据广播数据。(BLE的可连接状态的广播数据,一般这个广播会有一些设备的名称、是否可连接、设备类型的什么的,但是一般是有会设备的名称和是否可连接状态的,其他大部分是自己的自定义的,为了方便过滤其他设备的参数。)
5、拿到自己的过滤后的蓝牙设备对象后,就可以拿着这个对象去连接。(这个后面会说道)
6、连接上以后,会有一系列的通信。这个是根据不同需求来定义通信的内容的。后面我也会详细说到。
7、通信的过程中一般的情况是需要涉及到队列的问题的。所以的通信应该是一个堵塞式的。
8、完成过通信的相关操作,需要断开蓝牙。连接的资源,不然会一直后台连着。这个时候,你这个设备是不能被其他的 主机发现的。
上面的几点是关于蓝牙一些大的过程,后面我会持续更新,每个点对应的细节的问题,并贴出相关的源码。