Android蓝牙开发

本文介绍了Android蓝牙4.0+的开发,强调其省电特性及与蓝牙2.0的区别。蓝牙4.0+使用Characteristic进行通讯,涉及关键类包括BluetoothAdapter、BluetoothGatt、BluetoothGattService、BluetoothGattCharacteristic、BluetoothGattDescriptor和BluetoothDevice。文章概述了蓝牙通讯的六个步骤,包括设备扫描、连接、服务发现、特征寻找、设置通讯方式、数据读写等。

好久没更新博客了。

终于忙完了多蓝牙设备多连接通讯库的开发,下面来探讨一下蓝牙开发。

蓝牙主要分为蓝牙2.0版本和蓝牙4.0+版本,在外行人看来,区别在于蓝牙4.0比较省电,也就是BLE;从程序的角度看,蓝牙4.0+改进了通讯实现方式和扫描方式,以达到让CPU在大多无用蓝牙通讯上可以休眠(据说,蓝牙5.0更省电,且通讯距离达到300m,笔者很期待...)。


蓝牙2.0     直接采用Socket通讯;

蓝牙4.0+   采用Characteristic(特征)通讯

这里主要讲蓝牙4.0+,并且基于Android系统。

关于蓝牙4.0+的介绍,推荐博客https://www.cnblogs.com/cxk1995/p/5693979.html,这位仁兄介绍的思路比较清晰,且看起来简单。

蓝牙4.0的相关类:

1.BluetoothAdapter 蓝牙适配器,单例,作用:蓝牙模块功能的开关及设备扫描。

2.BluetoothGatt 双方建立的通讯渠道,可多渠道通讯,理解为管道,更为恰当一些,作用:数据及指令通讯。

3.BluetoothGattService 蓝牙服务可理解为蓝牙设备提供的服务,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGatt 下有多个BluetoothGattService ,作用:提供蓝牙通讯服务。

4.BluetoothGattCharacteristic 蓝牙特征, 蓝牙服务端(蓝牙数据采集设备)和终端(手机)数据交换的载体,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGattService 下有多个BluetoothGattCharacteristic,作用:提供特征值,即通讯内容

5.BluetoothGattDescriptor 特征描述符,也可以作为数据交换的载体,但隶属于BluetoothGattCharacteristic ,拥有UUID(唯一标识符),可以通过UUID找到,一个BluetoothGattCharacteristic 下有多个BluetoothGattDescriptor 作用:提供特征值,即通讯内容,设置通知、读、写的通讯方式

对,还有一个,通讯嘛,最重要的就是设备。

6.BluetoothDevice 蓝牙设备,扫描时获得,也可通过BluetoothGatt 获取。作用:实现蓝牙连接、断开等功能。


好了,该是代码实现蓝牙通讯的时候了。

蓝牙通讯步骤:

需要蓝牙权限:

 
<!-- 蓝牙 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

 

1.扫描设备:

蓝牙设备扫描在Android5.0后做了一些改进。

 

//Android4.4以下

mBluetoothAdapter.startLeScan(mLeScanCallback )
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值