NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #821 most downloaded on pub.dev
Flutter plugin for connecting and communicating with Bluetooth Low Energy devices.
Last release 5 days ago
03 Oct 2026
Release timing varies
gaps range from 2 weeks to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
5 years old
301 releases · first in 2022
One column per quarter.
[Fix] Android: calling disconnect(queue:false) may sometimes silently fail
disconnect(queue:false) may sometimes silently fail[Feature] Android: add legacy scan option
[Fix] iOS: was not updating lastValueStream if withoutResponse:true
lastValueStream if withoutResponse:true[Fix] android: last byte was cutoff for msd of same manufactuerId (regression 1.32.5)
[Fix] calling startScan multiple times in a row would fail
startScan multiple times in a row would fail[Fix] android: support multiple MSD with the same manufacturer ID
[Improve] revert 1.32.3 (i.e. go back to 1.32.1 behavior)
SCAN_FAILED_ALREADY_STARTED on android after adapter is turned off then on[Improve] allow calling stopScan even if not currently scanning. (revert 1.32.1)
stopScan even if not currently scanning. (revert 1.32.1)[Improve] iOS: fix warning about implicit conversion for showPowerAlert
[Fix] Android: scan failure were not being pushed to onError
stopScan if currently scanning. prevents 'could not find callback wrapper' log on AndroidThis realease has a very slight behavior change for adapterState & connectionState
This realease has a very slight behavior change for adapterState & connectionState
adapterState stream before connectionState streams. Simplifies internal autoconnect code.[Improve] autoconnect: catch & print errors when autoconnect fails
[Feature] add setOptions function. Used to configure power alert on iOS
setOptions function. Used to configure power alert on iOS[Fix] android: autoconnect could enter disconnect / connection loop
disconnect should always disable autoconnect, even if already disconnected[Fix] forgot to push to mtu stream after disconnection
[Feature] support advertising appearance on Android
appearance on Android[Fix] autoconnect could not disconnect if there are multiple devices
[Improve] android: use name LINK_SUPERVISION_TIMEOUT instead of CONNECTION_TIMEOUT
LINK_SUPERVISION_TIMEOUT instead of CONNECTION_TIMEOUT[Improve] improve reliability of autoconnect on android
[Feature] add convenience function to get raw msd data in advertisement
msd data in advertisement[Fix] type 'DeviceIdentifier' is not a subtype of type 'String' (regression 1.31.9)
[Feature] add cancelAfterDisconnection delayed option for connectionState streams
cancelAfterDisconnection delayed option for connectionState streamsdevice.isDisconnected[Fix] stream asserts when calling startScan twice quickly
startScan twice quickly[Fix] cancelWhenScanComplete must handle error cases
cancelWhenScanComplete must handle error cases[Feature] add cancelWhenScanComplete convenience function
cancelWhenScanComplete convenience function[Improve] Updated README & Example app
[Fix] iOS: mtu and auto connect are incompatible
[Fix] adapterState.first & connectionState.first dont work (regression 1.30.7)
adapterState.first & connectionState.first dont work (regression 1.30.7)[Fix] Gradle 7 (Flutter 2) would not build (regression 1.7.6)
[Fix] iOS: scan filters were doing nothing (regression 1.31.0)
This release adds support for multiple scan filters at the same time.
This release adds support for multiple scan filters at the same time.
[Improve] assert: fbp only supprts a single scan filter at a time
scan filter at a time[Improve] android: discoverServices: add subscribeToServicesChanged option
subscribeToServicesChanged option[Fix] autoConnect not always working (bug in 1.30.0)
autoConnect not always working (bug in 1.30.0)NewStreamWithInitialValue was not closing its streams (regression 1.17.2)device.isAutoConnectEnabled[Feature] add adapterStateNow getter
adapterStateNow getter[Fix] iOS build error (regression 1.30.4)
autoConnect was broken (regression 1.30.1)[Fix] Perf: must close adapterState, bondState & scanResults BufferStreams
adapterState, bondState & scanResults BufferStreamskCBConnectOptionEnableAutoReconnect optionpredelay argumentsetState if mounted[Fix] android: connect crashes (regression in 1.30.0)
[Improve] auto connect: assert that mtu is null in connect
connect[Feature] auto connect: remove setAutoConnect function added in 1.30.0 and go back to using connect:autoConnect parameter
setAutoConnect function added in 1.30.0 and go back to using connect:autoConnect parameterThis release greatly improves autoconnect support on Android, and adds iOS support.
This release greatly improves autoconnect support on Android, and adds iOS support.
deadObjectExceptions when bluetooth is turned off[Improve] android: add delay before requestMtu is called to work around discoverServices timeout
requestMtu is called to work around discoverServices timeout[Fix] android: CALLBACK_TYPE_FIRST_MATCH causes scanning issues (regression in 1.27.0)
CALLBACK_TYPE_FIRST_MATCH causes scanning issues (regression in 1.27.0)withKeywords wasn't filtering out adverts that have no scan record (bug in original feature)[Fix] android: remoteId was wrong (regression in 1.29.10)
remoteId was wrong (regression in 1.29.10)[Fix] android: isNotifying was not updated (regression in 1.28.5)
isNotifying was not updated (regression in 1.28.5)[Fix] android: crash due to wrong type cast (regression in 1.29.7)
[Fix] scan errors should be pushed to scanResults stream (bug in original flutter_blue)
scanResults stream (bug in original flutter_blue)continuousUpdates is false, don't filter non-duplicate adverts (bug in original feature)continuousDivisor only applies when continuousUpdates is true[Improve] default continuousDivisor should be 1
continuousDivisor should be 1continuousDivisor should be applied after scan filters[Fix] iOS: 'service not found' if service supports short uuid (regression 1.28.5)
turnOn user rejected[Fix] characteristics with same UUID could return wrong properties or descriptors (regression in 1.20.4)
properties or descriptors (regression in 1.20.4)Nothing published for this version
Nothing published for this version
[Improve] more refinements to onScanResults
onScanResults[Breaking Change] scanResults: do not clear results after stopScan. If you want results cleared use onScanResults instead.
scanResults: do not clear results after stopScan. If you want results cleared use onScanResults instead.lastScanResults to synchronously get the most recent results[Fix] setAdvertisingDataType crash on android 10 and below (regression in 1.28.10)
setAdvertisingDataType crash on android 10 and below (regression in 1.28.10)[Fix] isNotifying was not set to false on disconnection (regression in 1.28.9)
isNotifying was not set to false on disconnection (regression in 1.28.9)[Fix] crash if rssi was zero on android (regression in 1.27.2)
rssi was zero on android (regression in 1.27.2)[Rename] giud.uuid -> guid.str & guid.uuid128 -> guid.str128
giud.uuid -> guid.str & guid.uuid128 -> guid.str128timeout argument is now optional. infinite timeout is possible on iOS[Perf] android: filter out devices without names if scan.withKeywords is set
scan.withKeywords is setisScanning=falseservicesList: return empty instead of null[Improve] to make FBP easier to use, never clear knownServices
knownServicesYour coding agent can read these notes before it upgrades. Set up the MCP server →