PackageTrack
Sign in Get early access

universal_ble

A cross-platform (Android/iOS/macOS/Windows/Linux/Web) Bluetooth Low Energy (BLE) plugin for Flutter

2.1.1 40K downloads/mo #1628 most downloaded on pub.dev Navideck/universal_ble

What this package is like to depend on

Last release 28 days ago

27 Jul 2026

Release timing varies

gaps range from 8 days to 4 months

Nearly every release is documented

notes for 43 of 44 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

44 releases · first in 2024

12 releases in the last 12 months

see the full history below

Release timeline

44 releases · Jan 2024 to Jul 2026
2025 2026
Release Pre-release

Releases

latest 44
  1. 2.1.1 27 Jul 2026
    Release notes
    • Android: Fix BluetoothDevice null-safety compile error under Kotlin 2.x
    • Android: Make Android write-completion delivery thread-safe
    • Fix BleCharacteristic equality and hashCode to compare properties by value
    • Handle device IDs case-insensitively
    Open source →
  2. 2.1.0 25 Jun 2026
    Release notes

    Re-generate pigeon files

    Open source →
    Release notes
    • Add optional queueId parameter to all APIs
    • iOS/macOS: add opt-in AppleConnectionOptions to connect (via ConnectionPlatformConfig) — map to CBConnectPeripheralOptionNotifyOnConnectionKey, NotifyOnDisconnectionKey and NotifyOnNotificationKey, so a suspended app is relaunched into the background to handle connection events (e.g. auto-reconnect while the phone is locked)
    • Android: add legacy to AndroidOptions — set legacy: true to scan legacy BLE 4.x advertisements (e.g. ESP32) on API 26+; default (null/false) keeps extended-advertisement scanning unchanged from prior releases
    • Android: add addServicesInScanResponse to PeripheralAndroidOptions - set addServicesInScanResponse: true to Put advertised service UUIDs in the scan response instead of the primary advertisement
    • Android: merge manufacturer data with duplicate company id in scan results
    Open source →
  3. 2.0.4 05 Jun 2026
    Release notes
    • iOS: make Bluetooth state restoration optional by enabling it only when the bluetooth-central background mode is declared
    • iOS: when state restoration is enabled, init CBCentralManager at launch only if Bluetooth permission is granted
    Open source →
  4. 2.0.3 05 Jun 2026
    Release notes
    • iOS/macOS: defer CBPeripheralManager creation until peripheral APIs are used, fixing Bluetooth permission prompt on app launch
    • iOS: add CoreBluetooth state preservation/restoration so the app can be relaunched in the background by a connected peripheral and resume the live connection. Requires the bluetooth-central background mode in Info.plist (see README → Permissions → iOS / macOS).
    • Android: Fix missing scan name after reconnection
    • Windows: Fix null pointer crash when BLE device is unpaired during active scanCommits on May 28, * Windows: Refactor property value lookups to use a safe lookup function
    • Fix Dart primary constructor compatibility
    Open source →
  5. 2.0.2 20 May 2026
    Release notes
    • iOS/macOS: retain peripheral from retrievePeripherals to fix API MISUSE on connect
    • Android: migrate to built-in Kotlin (removes Kotlin Gradle Plugin usage)
    • Use conditional imports for the Linux backend so the package is compatible with the WASM runtime on pub.dev
    Open source →
  6. 2.0.1 18 May 2026
    Release notes
    • Android peripheral: eager Kotlin initialization, thread-safe GATT connection cache, and pairing only via pair() or when encryption requires it
    • Add onConnectionParametersChange to notify when Android link-layer connection parameters change (API 26+)
    • Android: expose callbackType, matchMode, and numOfMatches on AndroidOptions so callers can configure ScanSettings to defeat aggressive chip-side advert de-duplication on Pixel devices. callbackType accepts a List<AndroidScanCallbackType> (OR-folded on the native side) and includes a new allMatchesAutoBatch value (API 34+).
    Open source →
  7. 2.0.0 15 May 2026
    Release notes
    • Add peripheral mode on Android, iOS, macOS, and Windows
    • Add requestConnectionPriority to allow tuning BLE connection intervals on Android
    • Add SPM support on Apple
    Open source →
  8. 1.2.0 28 Feb 2026
    Release notes
    • Add autoConnect parameter to connect() method for automatic reconnection support on Android and iOS/macOS
    • Add serviceData in BleDevice
    • Add AndroidScanMode and reportDelayMillis to AndroidOptions for scanning
    • Add support for BLE scanning from background services (ForegroundTask) on Android. PermissionHandler is now activity-aware and succeeds silently if permissions are already granted when no activity is available
    • Always use custom scan filter on Windows
    • Fix Windows crash by handling WinRT exceptions in BLE callback paths
    • Add serviceData tracking in Linux advertisements
    Open source →
  9. 1.1.0 05 Jan 2026
    Release notes
    • Add readRssi method
    Open source →
  10. 1.0.1+3 05 Jan 2026

    Nothing published for this version

  11. 1.0.0 17 Dec 2025
    Release notes
    • BREAKING CHANGE: OnValueChange callback also includes timestamp
    • BREAKING CHANGE: Bump minimum IOS version to 13.1
    • BREAKING CHANGE: Bump minimum MacOS version to 10.15
    • Fix Windows 11 crash on cancelling pairing
    • Unified error codes for all platforms
    • Add isScanning api
    • Add hasPermissions api
    • Add requestPermissions api and auto ask permission on startScan
    • disconnect now waits for disconnection confirmation before returning
    • Improve Windows disconnection event handling and cleanup
    • Add withDescriptors parameter in discoverServices API
    • Add timestamp in BleDevice
    • Add setLogLevel api for configuring logs
    Open source →
  12. 0.21.1 01 Sep 2025
    Release notes
    • Fix device name resolution on Windows
    • Add exclusionFilters to filter out devices from scan results
    Open source →
  13. 0.21.0 16 Jul 2025
    Release notes
    • BREAKING CHANGE: connectionTimeout argument from connect, isPaired and pair API renamed to timeout
    • Add timeout argument to all APIs
    • Add clearQueue() API
    Open source →
  14. 0.20.2 08 Jul 2025
    Release notes
    • Fix BleCharacteristic.onValueReceived
    Open source →
  15. 0.20.1 26 Jun 2025
    Release notes
    • Fix writeWithoutResponse() which was not properly waiting for completion on Android and Apple
    Open source →
  16. 0.20.0 19 Jun 2025
    Release notes
    • Add new high level API. Services are auto-discovered. the BleDevice class offers convenient member methods and properties.
    • BREAKING CHANGE: bleDevice.isPaired is now bleDevice.paired
    • Deprecate readValue in favor of read
    • Deprecate writeValue in favor of write
    • Deprecate setNotifiable in favor of subscribeNotifications, subscribeIndications, unsubscribe
    • Fix getBluetoothAvailabilityState reporting wrong Bluetooth status on browsers where Web Bluetooth can globally be disabled
    • startScan on web now throws a WebBluetoothGloballyDisabled exception if scanning cannot proceed due to Web Bluetooth being globally disabled
    • EXAMPLE APP: Migrate to the new high level API
    Open source →
  17. 0.19.0 29 May 2025
    Release notes
    • Get and prefer advertised name of scanned devices on Apple
    • Improve Android runtime permissions docs
    • Cache and return advertised name for system devices on Apple
    • Add app showcase in Readme
    • EXAMPLE APP: Don't disconnect on leaving the details page
    • EXAMPLE APP: Fix Android builds
    • EXAMPLE APP: Fix service filter warning on macOS
    • EXAMPLE APP: Add types to callbacks
    Open source →
  18. 0.18.0 08 May 2025
    Release notes
    • Add Streams: scanStream, availabilityStream, connectionStream, characteristicValueStream, pairingStateStream
    • Fix connect api bug to detect proper connection state
    • Fix getSystemDevices() on Linux
    • Improve docs for isPaired
    Open source →
  19. 0.17.0 19 Mar 2025
    Release notes
    • Fix Windows crash when calling pair APIs with an unknown deviceId
    • Fix Windows crash when calling startScan again after some time
    • Fix Windows warning Unable to establish connection on channel when hot restarting
    • Refactor native Windows code
    • Improve Android permission documentation
    Open source →
  20. 0.16.0 17 Feb 2025
    Release notes
    • BREAKING CHANGE: payload is now payloadPrefix
    • BREAKING CHANGE: mask is now payloadMask
    • Bump bluez to 0.8.3
    • Do not normalize UUIDs on native side
    • Reverse _permissionStatus return values in example app
    • Improve readme
    • Improve ManufacturerDataFilter
    Open source →
  21. 0.15.0 27 Jan 2025
    Release notes
    • getSystemDevices(withServices:) now sets several generic services by default as filter
    • getConnectionState on Android will now return BleConnectionState.disconnected if device is connected to the system but not to the app
    • Improve callback error handling
    Open source →
  22. 0.14.0 09 Dec 2024
    Release notes
    • BREAKING CHANGE: bleDevice.name now filters out non-printable characters
    • Add bleDevice.rawName
    • Add disableBluetooth API
    • Fix Apple CBCentralManager lazy initialization on startScan
    • Fix Android error scan too frequently and auto retry scan once sufficient time has passed
    • Fix duplicate onValueChanged events on Android 11 or earlier
    • Fix Windows withServices filter
    • Fix Windows Bluetooth availability state in release builds
    • Throw error on Apple if Bluetooth permission is denied on startScan
    • Do not throw Characteristic already notifying error. Subscribing to characteristic notifications multiple times is now handled safely
    • Bump flutter_web_bluetooth to 1.0.0
    Open source →
  23. 0.13.0 03 Oct 2024
    Release notes
    • BREAKING CHANGE: scanFilter filters are now in OR relation
    • BREAKING CHANGE: manufacturerDataHead is removed from BleDevice
    • BREAKING CHANGE: WebConfig is now WebOptions
    • BREAKING CHANGE: ManufacturerDataFilter.data is now ManufacturerDataFilter.payload
    • BREAKING CHANGE: connect() does not return a boolean anymore. It will throw error on connection failure
    • BREAKING CHANGE: pair() does not return a boolean anymore. It will throw error on connection failure
    • BREAKING CHANGE: onConnectionChange returns error as well
    • BREAKING CHANGE: rename in-app pairing capabilities
    • Deprecation: manufacturerData is deprecated in BleDevice and will be removed in the future
    • Improve scanFilter handling
    • Use ManufacturerData object instead of Uint8List for manufacturerData
    • Add manufacturerDataList as List<ManufacturerData> in BleDevice
    • Auto convert all services passed to getSystemDevices()
    • Return false for receivesAdvertisements on Linux/Web
    • Add 1s delay in discoverServices on Linux
    • Add connectionStream API to get connection updates as stream
    Open source →
  24. 0.12.0 14 Aug 2024
    Release notes
    • BREAKING CHANGE: unPair is now unpair
    • BREAKING CHANGE: onPairingStateChange does not return error anymore
    • Add pair(), isPaired and onPairingStateChange support for Apple and web
    • connect() and pair() now return a bool result
    • Add PlatformConfig property in StartScan
    • Add WebConfig property in PlatformConfig
    • Fix notifications for characteristics without cccd on Android
    • Promote Linux to stable
    Open source →
  25. 0.11.1 19 Jul 2024
    Release notes
    • Trim spaces in UUIDs
    • Receive advertisement events on web
    • Improve cleanup after disconnection on web
    Open source →
  26. 0.11.0 15 Jul 2024
    Release notes
    • Unify UUID format across all platforms, 128-bit lowercase
    • Add BleUuidParser utility methods for UUID parsing
    Open source →
  27. 0.10.0 21 Jun 2024
    Release notes
    • BREAKING CHANGE: ScanResult is now BleDevice
    • BREAKING CHANGE: getConnectedDevices is now getSystemDevices
    • BREAKING CHANGE: isPaired is now nullable
    • BREAKING CHANGE: onValueChanged is now onValueChange
    • BREAKING CHANGE: onConnectionChanged is now onConnectionChange
    • Add connectionState property to BleDevice
    • Add isSystemDevice property to BleDevice
    • Add .perDevice queue
    • Support "ProvidePin" pairing on Windows 10/11
    • Get RRSI updates on Apple platforms
    • Improve enum parsing performance
    • Improve code level documentation
    Open source →
  28. 0.9.11 17 May 2024
    Release notes
    • Add device name prefix filtering
    Open source →
  29. 0.9.10 10 May 2024
    Release notes
    • Fix Windows scan filter
    • Remove scan result caching on Windows
    • Improve service discovery on Linux
    • Use asynchronous callbacks for SetNotifiable
    • Remove dependency on convert
    • Remove dependency on collection
    • Update Android example app Gradle
    Open source →
  30. 0.9.9 09 May 2024
    Release notes
    • Improve service discovery on Apple
    • Improve reconnection on Apple
    • Persist long scan result name on Windows
    • Fix Android serviceUuids in scanResults
    • Example app improvements
    Open source →
  31. 0.9.8 01 May 2024
    Release notes
    • Improve manufacturer data discovery on Windows
    • Example app improvements
    Open source →
  32. 0.9.7 10 Apr 2024
    Release notes
    • Fix characteristic keying on linux allowing receiving data from multiple BLE devices at the same time
    Open source →
  33. 0.9.6 28 Mar 2024
    Release notes
    • Fix a Windows issue where characteristics of certain services would not be discovered
    • Improve readme
    Open source →
  34. 0.9.5 19 Mar 2024
    Release notes
    • Windows support has graduated from beta to stable
    • Support filtering by manufacturer data
    • Unify web's optionalServices API with filtering API
    • Implement requestMtu in Linux
    • Fix wrong manufacturer data in Windows release builds
    • Improve logging
    Open source →
  35. 0.9.4 13 Mar 2024
    Release notes
    • Fix Windows crash when no Bluetooth adapter is present
    Open source →
  36. 0.9.3 05 Mar 2024
    Release notes
    • Add scan filter (withServices:) in startScan()
    • Add service UUIDs from advertisements in BleScanResult
    • Fix Windows release build compilation
    Open source →
  37. 0.9.2 16 Feb 2024
    Release notes
    • Add command queue
    • Improve error handling on Android, iOS, macOS, Windows, Linux and web
    Open source →
  38. 0.9.1 12 Feb 2024
    Release notes
    • Improve logging
    Open source →
  39. 0.9.0 12 Feb 2024
    Release notes
    • Improve windows device name discovery
    • Improve linux implementation
    • Improve titles in example app
    Open source →
  40. 0.8.4 26 Jan 2024
    Release notes
    • Add WebRequestOptionsBuilder.defaultServices for convenience when setting optionalServices when scanning on web
    • Add "try online" URL in readme
    • Improve readme
    • Improve example app
    Open source →
  41. 0.8.3 25 Jan 2024
    Release notes
    • Rename onPairStateChange *> onPairingStateChange
    • Improve readme
    Open source →
  42. 0.8.2 24 Jan 2024
    Release notes
    • Improve readme
    Open source →
  43. 0.8.1 24 Jan 2024
    Release notes
    • Update supported platforms
    Open source →
  44. 0.8.0 24 Jan 2024
    Release notes
    • Initial release
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive