android蓝牙使用总结

 前几个月做了一个蓝牙项目,后面一直没有时间总结,这几天心血来潮,想来做个总结,一来为了以后自己用时直接拿来用,二来有方便想学习蓝牙朋友学习,好了,废话少说,进入主题:

1.加入权限

2.判断手机是否可用蓝牙

android蓝牙使用总结_第1张图片

3.打开蓝牙

(1) 强制打开手机蓝牙

android蓝牙使用总结_第2张图片

(2) 跳到手机蓝牙页面手动打蓝牙

android蓝牙使用总结_第3张图片

4.搜索周边蓝牙设备

android蓝牙使用总结_第4张图片
先判断蓝牙是否打开,未打开先打开蓝牙,已打开蓝牙进入蓝牙搜索页面

进入搜索蓝牙页面,开始蓝牙搜索:

设为true
android蓝牙使用总结_第5张图片

开始蓝牙搜索后设一下监听回调方法mLeSenCallback,当搜索到有搜索时加入到蓝牙列表中;

android蓝牙使用总结_第6张图片

5.蓝牙连接

点击蓝牙列表中任何一个设备进去蓝牙连接,蓝牙连接,蓝牙通讯我都写在一个UartService服务里面;下面看蓝牙连接代码:

android蓝牙使用总结_第7张图片

从以上代码可以看出,先要判断上次连接的蓝牙是否跟本次连接的蓝牙一样,如果一样的话就直接连接,方法为mBluetoothGatt.connect();不是一样的话就根据蓝牙地址得到蓝牙设备进行蓝牙连接,(device.connectGatt(this,false,mGattCallback)第二个参数,设为true时,表示蓝牙断开后会重动重连,设为false时,断开后不会重连)这里做一个蓝牙连接监听回调;

android蓝牙使用总结_第8张图片

这个方法监听连接状态的改变,连接状态有四个值:

值描述

STATE_CONNECTED    已连接

STATE_CONNECTING    正在连接

STATE_DISCONNECTED     断开连接

STATE_DISCONNECTING      正在断开连接

当设备已连接时,需要通过discoverServices()查找GATT服务,查找服务过程中会执行重写的第二个方法onServicesDiscovered。

onServicesDiscovered

可以在此方法中获取GATT的服务列表,这个服务列表中的每一个服务对应着一个BluetoothGattCharacteristic(用于通信)列表,需要对这个列表通过UUID过滤出我们想要的BluetoothGattCharacteristic,然后就可以拿这个BluetoothGattCharacteristic进行通信了。

关于 UUID

通用唯一标识符 (UUID) 是用于唯一标识信息的字符串 ID 的 128 位标准化格式。 UUID 的特点是其足够庞大,因此你可以选择任意随机值而不会发生冲突。 在此示例中,它被用于唯一标识应用的蓝牙服务。 要获取 UUID 以用于你的应用,你可以使用网络上的众多随机 UUID 生成器之一,然后使用 fromString(String) 初始化一个 UUID。不必过多纠结于UUID。

android蓝牙使用总结_第9张图片

bleGatt.setCharacteristicNotification(bleGattChar,true);//设置开启接收蓝牙数据

6.蓝牙写入数据(向蓝牙设备发送数据)

通过BluetoothGattCharacteristic对对象以及BluetoothGatt对象进行相关方法的调用就行,

android蓝牙使用总结_第10张图片

7.蓝牙接收数据

此方法用于接收蓝牙模块发送过来的数据,它是异步的,

android蓝牙使用总结_第11张图片
android蓝牙使用总结_第12张图片

蓝牙差不多就这些方法,先总结到这里,后面有的话会继续增加!!!

你可能感兴趣的:(android蓝牙使用总结)