文章目录
- 引言
- 一、Android 蓝牙版本演进
- 源码改动
-
- Android 4.0 - 引入 BLE
- Android 4.1 - 设备发现优化
- Android 4.3 - 新增 BLE 扫描功能
- Android 4.4 - HID API 引入
- Android 5.0 - A2DP API 增强
- Android 6.0 - 动态权限管理
- Android 7.0 - 多设备管理
- Android 8.0 - 支持蓝牙 5.0
- Android 9.0 - 用户交互与设置跳转
- Android 10 - 强化蓝牙权限控制
- Android 11 - BLE Audio 支持
- Android 12 - Bluetooth API 重构
- Android 13 - LC3 编解码器支持
- 总结
引言
蓝牙技术在 Android 系统中扮演着重要的角色,随着每个版本的更新,Android 对蓝牙功能的支持不断增强。本文将详细介绍 Android 各个版本之间在蓝牙控制方面的主要差异,特别关注 Android 4.0 及之后版本中的重要改动。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Android 蓝牙版本演进
Android 版本 | 程序控制蓝牙的主要改动 |
---|---|
Android 4.0 (Ice Cream Sandwich) | 引入 BLE 相关 API,如 BluetoothGatt 和 BluetoothGattCallback,使开发者能够控制 BLE 设备的连接和数据传输。 |
Android 4.1 (Jelly Bean) | 优化设备发现 API,改善 BluetoothAdapter 的操作方式,增加回调机制,使设备发现更高效。 |
Android 4.3 (Jelly Bean) | 新增 BluetoothLeScanner 类,提供更高级的 BLE 扫描功能,开发者可以控制扫描的参数和过滤条件。 |
Android 4.4 (KitKat) | 引入 HID API,简化对 HID 设备(如键盘、鼠标)的管理。 |
Android 5.0 (Lollipop) | 增强 A2DP API,支持 aptX 编解码器,允许开发者选择更高质量的音频编码。 |
Android 6.0 (Marshmallow) | 引入蓝牙权限模型,应用需动态申请蓝牙权限,提升用户隐私保护。 |
Android 7.0 (Nougat) | 允许使用 BluetoothProfile API 获取和管理多个蓝牙设备的连接状态,简化多设备管理。 |
Android 8.0 (Oreo) | 新增对蓝牙 5.0 特性的支持,开发者可以利用更快的传输速率和更远的连接距离。 |
Android 9.0 (Pie) | 加强蓝牙权限管理,若应用需要权限或未开启蓝牙,将引导用户跳转到蓝牙设置界面。 |
Android 10 | 继续强化蓝牙权限控制,支持更清晰的蓝牙设置跳转。 |
Android 11 | 引入 BLE Audio 支持,通过新 API 控制音频流传输方式和格式。 |
Android 12 | 对 Bluetooth API 进行重构,提供更简洁的接口和更高效的设备管理方式。 |
Android 13 | 新增 LC3 编解码器支持,开发者可通过相关 API 进行音频编码设置。 |
源码改动
Android 4.0 - 引入 BLE
在 Android 4.0 版本中,新增了 BLE(Bluetooth Low Energy)相关的类和方法,比如 BluetoothGatt 和 BluetoothGattCallback。这些类允许开发者连接 BLE 设备,并通过 GATT(Generic Attribute Profile)与设备进行数据交互。
public class BluetoothGatt {
public void connect() {
/* 连接到 GATT 服务器 */ }
public void readCharacteristic(BluetoothGattCharacteristic characteristic) {
/* 读取特征值 */ }
}
Android 4.1 - 设备发现优化
Android 4.1 对设备发现 API 进行了优化,改善了 BluetoothAdapter 的操作方式,增加了回调机制以提高设备发现的效率。
bluetoothAdapter.startDiscovery(); // 开始发现设备
Android 4.3 - 新增 BLE 扫描功能
在 Android 4.3 中,新增了 BluetoothLeScanner 类,提供了更高级的 BLE 扫描功能,允许开发者自定义扫描参数。
BluetoothLeScanner leScanner = bluetoothAdapter