flutter_blue_ultra 2.2.0
flutter_blue_ultra: ^2.2.0 copied to clipboard
Flutter plugin for connecting and communicating with Bluetooth Low Energy devices.
🩵 Flutter Blue Ultra #
An open-source Bluetooth Low Energy (BLE) plugin for Flutter. Scan for nearby devices, connect, discover GATT services and characteristics, read and write, subscribe to notifications, negotiate MTU, and manage bonding — all from a single cross-platform API on iOS, Android, macOS, Linux, and Web (central role).
A community continuation of flutter_blue_plus 1.x — same familiar API, with new capabilities and ongoing platform maintenance.
✨ Features #
- Legacy 1.x compatibility — keep using the familiar
flutter_blue_plus1.x API surface. - Cross-platform — iOS, Android, macOS, Linux, and Web (central role).
- Actively maintained — tracks Android/iOS/macOS/Linux/Web Bluetooth API changes.
- New functionality — expanded features on top of the legacy API.
- Accessory Setup Kit — optional accessory pairing flow integration on iOS.
⚡ Quick start #
Add the package:
flutter pub add flutter_blue_ultra
Or add it manually to pubspec.yaml:
dependencies:
flutter_blue_ultra: ^2.2.0
Configure platform permissions (Android manifest, iOS Info.plist, macOS entitlements, Android minSdkVersion) — see Getting started. Apps cannot scan or connect without these.
Minimal scan example:
import 'package:flutter_blue_ultra/flutter_blue_ultra.dart';
void main() async {
// Ensure Bluetooth is supported and powered on before scanning.
if (await FlutterBlueUltra.isSupported == false) return;
await FlutterBlueUltra.adapterState
.where((s) => s == BluetoothAdapterState.on)
.first;
await FlutterBlueUltra.startScan(timeout: const Duration(seconds: 5));
await FlutterBlueUltra.isScanning.where((v) => v == false).first;
}
A full runnable app lives in example/.
📘 Documentation #
🚇 Compatibility and migration #
Compatibility with flutter_blue_plus #
- You cannot install both
flutter_blue_plusandflutter_blue_ultrain the same project — they are mutually exclusive. - A compatibility layer keeps legacy code that uses
FlutterBluePlusworking withflutter_blue_ultra. - New features land only on the
FlutterBlueUltraAPI.
Migration strategy #
- Immediate migration (recommended) — find-and-replace:
flutter_blue_plus→flutter_blue_ultra(imports)FlutterBluePlus→FlutterBlueUltra(code)
- Gradual migration — keep using
FlutterBluePlusvia the compatibility layer and migrate file by file. - Legacy support — on
flutter_blue_plus1.x, use this project as a drop-in replacement. Original migration notes are inMIGRATION.md.
🙋 Where to go next #
- Report a bug or request a feature: GitHub issues
- Contribute: see CONTRIBUTING.md
- Changelog: CHANGELOG.md
- Testing & mocking: MOCKING.md
🤖 Credits and origins #
A community continuation of flutter_blue_plus 1.x. Original work:
flutter_blue_plusby Chip Weinbergerflutter_blueby Paul DeMarco
📜 License #
Licensed under the BSD 3-Clause license. See LICENSE.
🛠️ Maintained by Intent #
Flutter Blue Ultra is built and maintained by Intent — we design and engineer connected products, including Bluetooth and IoT experiences. Get in touch if you need help with your BLE project.