# ble_service iOS 集成说明
## 概述
该插件提供了蓝牙低功耗(BLE)设备的连接和通信功能,特别支持BLE耳机设备的音频数据传输。
- 支持 iOS 13.0+ 的基础蓝牙连接功能
- 支持 iOS 18.0+ 的 AccessorySetupKit 集成,实现应用后台唤醒
## 集成步骤
### 1. 权限配置
在应用的 `Info.plist` 中添加以下权限描述:
```xml
NSBluetoothAlwaysUsageDescription
需要使用蓝牙连接您的耳机设备
NSBluetoothPeripheralUsageDescription
需要使用蓝牙连接您的耳机设备
UIBackgroundModes
bluetooth-central
```
### 2. iOS 18+ AccessorySetupKit 配置
如果需要支持 iOS 18+ 的 AccessorySetupKit 功能(应用后台唤醒),还需要在 `Info.plist` 中添加:
```xml
NSAccessorySetupBluetoothCompanyIdentifiers
ABEF
NSAccessorySetupBluetoothServices
0000ABC0-0000-1111-2222-123456789ABC
0000AE00-0000-1000-8000-00805F9B34FB
NSAccessorySetupKitSupports
Bluetooth
```
### 3. 集成到 Runner 项目
1. 确保项目的最低部署版本为 iOS 13.0
2. 在 Xcode 中编辑 `Runner` 项目的 `info.plist`,添加上述配置
3. 如需自定义 UUID 或厂商 ID,请同时修改 `BleConst.swift` 文件中的对应常量
## 使用说明
### 基本流程
1. 首次使用时,应用需要在前台扫描并连接设备
2. 配对成功后,后续可通过 AccessorySetupKit (iOS 18+) 自动唤醒应用
### 支持的命令
- 获取设备版本: `getDeviceVersion()`
- 获取电池信息: `getBatteryInfo()`
- 打开/关闭编解码: `openEncoder()`, `openDecoder()`, `closeCodec()`
- A2DP 控制: `playA2DP()`
## 后台运行说明
1. 该插件支持在后台接收 BLE 通知和数据
2. iOS 18+ 设备上,支持应用在后台/被杀死状态下被设备唤醒
3. 后台保活和状态恢复由系统管理,无需额外代码
## 注意事项
- 使用前确保已在用户设备上获得蓝牙权限
- 由于苹果限制,手动杀死应用后,仍需用户主动重新打开一次应用才能完全激活后台唤醒
- 厂商 ID 和服务 UUID 需要与实际设备匹配