* draft: 临时提交 * feat: 实现扫描功能 * fix: 优化广播逻辑 * feat: 添加协程方法 * fix: 修改宏定义 * draft: 临时提交 * feat: 调整接口 * fix: 修改版本号 * feat: 4.1.1 * draft: 临时提交 * feat: 5.0.0-dev.2 * fix: 修复版本号错误 * draft: 临时提交 * fix: 修复连接断开异常 * fix: 修复问题 * fix: 优化代码 * fix: 优化 short UUID 格式化逻辑 * fix: 尝试实现 read_rssi 接口,当前此接口不可用,会报异常 * feat: 删除 getMaximumWriteLength 方法 * fix: 更新 CHANGELOG.md * feat: 5.0.0-dev.1 * fix: 更新依赖项 * feat: linux-5.0.0-dev.1 * fix: 更新 CHANGELOG.md * fix: 开始搜索设备时清空设备列表 * fix: 开始扫描时清空设备列表 * feat: 5.0.0-dev.2 * fix: 优化 MyGattService 和 MyGattCharacteristic * feat: 更新 interface 版本 -> 5.0.0-dev.4 * feat: 更新 interface 版本 -> 5.0.0-dev.4 * feat: 实现 flutter 部分 5.0.0 * fix: 移除 maximumWriteLength * fix: 移除 rssi * feat: 5.0.0-dev.1 * feat: 5.0.0-dev.2 * fix: 更新依赖项 * fix: 5.0.0-dev.4 * fix: 更新依赖项 * draft: 临时提交 * feat: 5.0.0-dev.5 * draft: 删除 MyCentralManager 和 MyPeripheralManager * fix: 更新依赖项 * fix: 更新依赖项 * feat: 适配新接口 * feat: 5.0.0-dev.6 * draft: 临时提交 * feat: 5.0.0-dev.7 * fix: 修改版本号 * feat: 5.0.0-dev.8 * feat: 5.0.0-dev.9 * fix: 修复 trimGATT 错误 * feat: 5.0.0-dev.6 * feat: 5.0.0-dev.3 * feat: 5.0.0-dev.4 * fix: 更新 pubspec.lock * feat: 5.0.0-dev.7 * feat: 5.0.0-dev.3 * fix: balabala * fix: balabala * draft: 5.0.0-dev.1 * fix: trim GATT when call the `writeCharacteristic` method. * fix: make difference of `trim` and `fragment`. * feat: 5.0.0-dev.1 * feat: 5.0.0-dev.1 * feat: 优化示例程序 * fix: 更新 README.md * fix: 修复插件引用 * draft: XXXX * feat: 增加调试信息 * fix: 更新 pubspec.lock * feat: 5.0.0-dev.4 * feat: 5.0.0-dev.3 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0 * feat: 5.0.0
60 lines
2.5 KiB
Markdown
60 lines
2.5 KiB
Markdown
# bluetooth_low_energy
|
|
|
|
A Flutter plugin for controlling the bluetooth low energy.
|
|
|
|
## Features
|
|
|
|
### CentralManager
|
|
|
|
- [x] Get/Listen the state of the central manager.
|
|
- [x] Listen connection state cahgned.
|
|
- [x] Listen GATT characteristic notified.
|
|
- [x] Start/Stop discovery.
|
|
- [x] Connect/Disconnect peripherals.
|
|
- [x] Read RSSI of peripherals.
|
|
- [x] Discover GATT.
|
|
- [x] Read/Write GATT characteristics.
|
|
- [x] Set GATT characteristics notify state.
|
|
- [x] Read/Write GATT descriptors.
|
|
|
|
### PeripheralManager
|
|
|
|
- [x] Get/Listen the state of the peripheral manager.
|
|
- [x] Listen GATT characteristic read/written/notifyStateChanged.
|
|
- [x] Add/Remove/Clear service(s).
|
|
- [x] Start/Stop advertising.
|
|
- [x] Read/Write(Notify) GATT characteristics.
|
|
|
|
## Getting Started
|
|
|
|
Add `bluetooth_low_energy` as a [dependency in your pubspec.yaml file](https://flutter.dev/using-packages/).
|
|
|
|
```
|
|
dependencies:
|
|
bluetooth_low_energy: ^<latest-version>
|
|
```
|
|
|
|
Remember to call `await CentralManager.setUp()` and `await PeripheralManager.setUp()` before use any apis of this plugin.
|
|
|
|
*Note:* Bluetooth Low Energy doesn't work on emulators, so use physical devices which has bluetooth features for development.
|
|
|
|
### Android
|
|
|
|
Make sure you have a `miniSdkVersion` with 21 or higher in your `android/app/build.gradle` file.
|
|
|
|
### iOS and macOS
|
|
|
|
According to Apple's [documents](https://developer.apple.com/documentation/corebluetooth/), you must include the [`NSBluetoothAlwaysUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nsbluetoothalwaysusagedescription) on or after iOS 13, and include the [`NSBluetoothPeripheralUsageDescription`](https://developer.apple.com/documentation/bundleresources/information_property_list/nsbluetoothperipheralusagedescription) key before iOS 13.
|
|
|
|
*Note:* The `PeripheralManager#startAdvertising` only support `name` and `serviceUUIDs`, see [the startAdvertising document](https://developer.apple.com/documentation/corebluetooth/cbperipheralmanager/1393252-startadvertising)
|
|
|
|
### Linux
|
|
|
|
PeripheralManager is not implemented because the `bluez` plugin doesn't support this yet, see [How to use bluez to act as bluetooth peripheral](https://github.com/canonical/bluez.dart/issues/85)
|
|
|
|
### Windows
|
|
|
|
PeripheralManager is not implemented, it will be implemented in the future.
|
|
|
|
*Note:* The `CentralManager#readRSSI` method is not implemented on windows(windows doesn't support read RSSI after connected), avoid call this when running on windows devices.
|