π©΅ 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.