# device_jieli
Flutter plugin around the JieLi (杰理) RCSP Bluetooth SDK. Provides a vendor-agnostic
MethodChannel / EventChannel surface (`device_jieli/method`, `device_jieli/event`)
so Dart-side code can scan / connect / query / OTA / translate against JieLi earpieces
on both Android and iOS.
## Platforms
| Platform | Native SDK | Status |
|---|---|---|
| Android | `android/libs/jl_bluetooth_rcsp_*.aar` etc. | Functional (used in production demo) |
| iOS | `ios/Frameworks/JL_BLEKit.xcframework` etc. (from `JIELI-IOS-Release/Libs`) | **Compiles,真机验证未完成** — see [CHANGELOG.md](CHANGELOG.md) for the per-feature status matrix. |
## iOS setup
The plugin ships every required `.xcframework` under `ios/Frameworks/`. When the upstream
SDK in `JIELI-IOS-Release/Libs/` updates, mirror the new `.xcframework` directories on
top of `ios/Frameworks/` (overwrite is safe) and `pod install` again in the host app.
Minimum target: iOS 12.
The host app must declare in `Info.plist`:
```xml
NSBluetoothAlwaysUsageDescription
用于连接杰理蓝牙耳机
NSBluetoothPeripheralUsageDescription
用于连接杰理蓝牙耳机
NSMicrophoneUsageDescription
用于翻译 / 语音助手录音
```
## Channel surface
Dart API lives in [`lib/device_jieli.dart`](lib/device_jieli.dart). Native code on either
platform implements the same set of method calls and emits the same event payload schema —
the iOS implementation lives in [`ios/Classes/`](ios/Classes/), the Android
implementation in [`android/src/main/kotlin/com/jielihome/jielihome/`](android/src/main/kotlin/com/jielihome/jielihome/).
For background on the RCSP commands and translation pipeline see
[`JIELI_SDK_COMMANDS.md`](JIELI_SDK_COMMANDS.md).