NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1393 most downloaded on pub.dev
A library to use the web bluetooth api in your web project. Will play nice if used in IO projects.
Last release 1 years ago
04 Jun 2025
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 19 of 19 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
19 releases · first in 2021
Breaking-ish Requesting devices or scans now no longer checks if a bluetooth device is available. The browser will return a DeviceNotFoundError if the
DeviceNotFoundError if the bluetooth adapter was unavailable while a scan was requested.
checkingAvailability to true for requestDevice,requestAdvertisementDevice, and/ or requestLEScan.getAvailability to get a (new) Future that will check if there is currently a bluetooth adapterweb/BluetoothScanFilterHelper is now deprecated. Use web/BluetoothManufacturerDataFilter.create() , web/BluetoothServiceDataFilter.create() , and web/…
dart:html to dart:js_interop to support wasm builds.src/AdvertisementReceivedEvent no longer extends web/AdvertisementReceivedEventInterfacesrc/AdvertisementReceivedEvent now has a withMemory constructorweb/AdvertisementReceivedEventInterface no longer existsweb/WebAdvertisementReceivedEvent has been renamed to web/BluetoothAdvertisementReceivedEventweb/WebAdvertisementReceivedEvent.fromJSObject constructor no longer existsweb/WebAdvertisementReceivedEvent.withMemory constructor no longer existsweb/BluetoothScanFilterHelper is now deprecated. Use web/BluetoothManufacturerDataFilter.create(),web/BluetoothServiceDataFilter.create(), and web/BluetoothScanFilter.create() instead.web/BluetoothServiceDataFilter now requires a service UUID. Following specweb/BluetoothManufacturerDataFilter now requires a company identifier. Following specsrc/ServiceDataFilterBuilder now requires a service UUID. Following specsrc/ManufacturerDataFilterBuilder now requires a company identifier. Following specweb/js/AbortController has been removed in favor of the implementation form the web packageweb/js/JSUtils has been removed (this was an internal library so it shouldn't have any impact on mostweb/NativeBluetooth now returns JSPromises and other native objects instead of objectweb/testingSetNavigator() now requires that you set a web navigator object.web/* all addEventListener and removeEventListener functions now extend from web/EventTargetweb/* all objects now implement JSObject and have been marked with @JS. This also removes allfromJSObject constructors.web/WebBluetoothConvertersweb/WatchAdvertisementsOptions the signal property is now nullable. Following the spec.web/* created event streams using BluetoothEventStreamProviders.web/WebBluetoothValueEvent for the availabilitychanged event.dart:js_interop instead of dart:html.BluetoothDefaultManufacturerIdentifiers cases. That were deprecated pre thisBluetoothDefaultServiceUUIDS cases. That were deprecated pre this release.One column per quarter.
Updated BluetoothDefaultManufacturerIdentifiers , some identifiers have been renamed, the old names have been marked as deprecated.
BluetoothDefaultManufacturerIdentifiers, some identifiers have been renamed, the old names have been markedBluetoothDefaultManufacturerIdentifiers.manufacturerIdentifiers to get a list of all the non-deprecatedBluetoothDefaultServiceUUIDS with the latest service UUIDS. Some services now use the official name from theBluetoothDefaultServiceUUIDS.services to get a list of all the non-deprecated service UUIDS.id field to the enum, this contains the official Bluetooth SIG id of the UUID.BluetoothDefaultCharacteristicUUIDS with the latest characteristic UUIDS. Some characteristic now use theBluetoothDefaultCharacteristicUUIDS.characteristics to get a list of all the non-deprecated characteristicid field to the enum, this contains the official Bluetooth SIG id of the UUID.service, characteristic, and manufacturer data blocklists
Added optionalManufacturerData to RequestOptions . This is needed to get the manufacture data when watching advertisements.
optionalManufacturerData to RequestOptions. This is needed to get the manufacture data when watchingBluetoothDefaultManufacturerIdentifiers enum with all the registered manufacturer identifiersAdded exclusionFilters to RequestOptionsBuilder .
exclusionFilters to RequestOptionsBuilder.Updated dependencies.
Breaking Removed SNAKE_CASE uuids.
defaultUuid.ordinal then you should now use defaultUuid.index.2.17forget to a BluetoothDevice, to forget a device.Breaking BluetoothDevice.gatt is no longer marked as deprecated, it is still marked as visibleForTesting .
Added requestLEScan to Bluetooth and FlutterWebBluetooth. You can now scan for devices advertisements without needing to pair with each device. However, a normal pair does need to happen before characteristics can be used.
Bluetooth.requestDevice() the RequestOptions are no longer nullable.BluetoothDevice.gatt is no longer marked as deprecated, it is still marked as visibleForTesting.has methods for all the fields in characteristic properties.false as default value when a property doesn't exist.hasProperties method to check if there are any properties at all. Use this to test if the properties areNote: The next version of the library will probably upgrade the minimum SDK from 2.12 to 2.17 to keep up with other packages. If there are any good reasons to not do this then please create an issue on Github.
Updated dependencies to work with Flutter 3.3.0
Updated dependencies to work with Flutter 3.3.0
Added manufacturer scan filters and service scan filters
Added manufacturer scan filters and service scan filters
Added getCharacteristics to the bluetooth service to get all the characteristics.
getCharacteristics to the bluetooth service to get all the characteristics.Deprecated SNAKE_CASE for default uuids. Use the camelCase version instead
logger instead of print statements. This allows other developers to decide what to do with the
log messagesFixed the library trying to add the availabilitychanged event on unsupported platforms.
availabilitychanged event on unsupported platforms.Fixed the behavior subject stream not returning the stored value causing some implementations to wait forever.
Fixed typo in characteristicvaluechanged for the BluetoothCharacteristic.startNotifications(). ( Thanks AshTerry.)
characteristicvaluechanged for the BluetoothCharacteristic.startNotifications(). (
Thanks AshTerry.)Fixed call to navigator.bluetooth.getDevices in browsers that don't support it.
navigator.bluetooth.getDevices in browsers that don't support it.* Forgot some Flutter dependency
Removed Flutter as a dependency
Basic support for web bluetooth api
Your coding agent can read these notes before it upgrades. Set up the MCP server →