Android蓝牙BLE开发(一)——初识低功耗蓝牙BLE

简介

BLE的全称叫做 Bluetooth Low Energy,也称之为低功耗蓝牙,属于蓝牙技术中的一种。与之对应的是 Classic Bluetooth,经典蓝牙。当然,经典蓝牙是最先推出来的,后面才有了 LE 的版本。在兼容性上,LE 的蓝牙不兼容 Classic 的版本,可以理解成为独立的一种蓝牙形态。旨在针对低功耗的领域进行的一种无线数据传送的解决方案。
它的特点有低成本、短距离、可互操作。
通过GATT协议来进行BLE设备之间的通信。

关键概念

中心与外设角色: 在BLE开发当中,存在两个角色,一个是中心角色(CENTRAL),一个是外设角色(PERIPHERAL)。在Andriod的开发中,我们可以简单的认为中央即安卓手机,外设即BLE模块。一个没有被链接的外设角色,会向外界发出广播,这个时候可以被多个中心角色发现,一旦外设角色被某个中心角色链接后,外设角色就会停止广播,其他中心角色就无法在链接到这个外设角色。中心角色可以扫描外设角色,可以监听接收广播或主动链接,一个中心角色可以与多个外设同时链接。

协议,服务与特征: 外设角色的作用是为中心角色提供各种数据,中心角色可以扫描并接收多个外设角色数据,数据以服务(SERVICE)和特征(CHARACTERISTIC)的形式呈现。一份协议由一个或多个服务构成,一个服务由零个或多个特征构成,一个特征可以包含一组或多组值,可以包含零个或多个描述符。我们可以把服务当成一个盒子,特征当成盒子里面的物品,一个盒子可以装有多个物品,或为空。我们要获取其中的物品,首先要通过协议获取对应的盒子,再从盒子中取出我们需要的物品。每一个服务与特征都有一个UUID作为唯一识别符,识别符有通用的,也可以自定义,也可以随机生成,固定格式00000000-0000-0000-0000-000000000000(8-4-4-4-12),一般来说自定义的UUID只有前8位有变化,后面的基本是固定的-0000-1000-8000-00805f9b34fb,所以一个自定义的UUID一般看起来就像这样 “0000****-0000-1000-8000-00805f9b34fb” ****就表示4个16进制数。每一个特征都有其属性和权限(READ | WRITE | NOTIFY | INDICATE),特征根据属性可读可写。
在这里插入图片描述

适配器,扫描器,设备: 每一台支持蓝牙的手机中都会有一个蓝牙适配器,由蓝牙管理器管理着,从其中获得蓝牙适配器。适配器中自带扫描器,使用扫描器可以扫描周边的蓝牙设备。

在BLE开发当中各种主要类和其作用:

BluetoothDeivce:蓝牙设备,代表一个具体的蓝牙外设。
BluetoothAdapter:蓝牙适配器,每一台支持蓝牙功能的手机都有一个蓝牙适配器,一般来说,只有一个。
BluetoothManager:蓝牙管理器,主要用于获取蓝牙适配器和管理所有和蓝牙相关的东西。
BluetoothGatt:通用属性协议, 定义了BLE通讯的基本规则,就是通过把数据包装成服务和特征的约定过程。
BluetoothGattCallback:一个回调类,非常重要而且会频繁使用,用于回调GATT通信的各种状态和结果,后面会详细解释。
BluetoothGattCharacteristic:特征,里面包含了一组或多组数据,是GATT通信中的最小数据单元。
BluetoothGattService:服务,描述了一个BLE设备的一项基本功能,由零或多个特征组构成。
BluetoothGattDescriptor:特征描述符,对特征的额外描述,包括但不仅限于特征的单位,属性等。
BluetoothLeScanner:蓝牙适配器里面的扫描器,用于扫描BLE外设。
发布了63 篇原创文章 · 获赞 1 · 访问量 2101

猜你喜欢

转载自blog.csdn.net/weixin_42046829/article/details/104512448