59 Commits

Author SHA1 Message Date
Tony 1d7108c9d0 Update Universal BLE Plugin for Peripheral Support and Code Generation
- Updated autogenerated files to reflect changes from Pigeon v26.3.4.
- Added new classes for UniversalBlePeripheralConfig, UniversalBlePeripheralService, UniversalBlePeripheralCharacteristic, UniversalBlePeripheralDescriptor, and UniversalBlePeripheralWriteEvent to handle peripheral configurations and events.
- Modified UniversalBlePlugin to implement methods for peripheral support, including StartPeripheral, StopPeripheral, UpdatePeripheralCharacteristicValue, and NotifyPeripheralCharacteristic, returning appropriate error messages for unsupported features on Windows.
- Updated HasPermissions method to include an additional parameter for Bluetooth advertising permissions.
- Adjusted method signatures and implementations across the plugin to accommodate new peripheral functionality.

Signed-off-by: Tony <tonylu@tony-cloud.com>
2026-05-08 03:36:12 +08:00
Foti Dim dde6c084b7 Add SPM support (#223)
Pull Request / test (push) Has been cancelled
Pull Request / pana (push) Has been cancelled
* Add SPM support

* Cleanup cocoapods bits from example app

* Update package references for universal-ble in Xcode project

* Refactor notification handling and error logging in UniversalBleWeb class

* Change min sdk version

* Update CHANGELOG.md to include SPM support on Apple and requestConnectionPriority feature for version 1.3.0
2026-04-02 14:16:37 +02:00
Raphael Smith f4b197f8ae Add requestConnectionPriority support (#221)
* feat: add requestConnectionPriority

- Add BleConnectionPriority enum (balanced, highPerformance, lowPower)
- Add BleCapabilities.supportsConnectionPriorityApi flag
- Implement on Android via BluetoothGatt.requestConnectionPriority()
- Throw notSupported on iOS, macOS, Windows, Linux, and Web
- Update pigeon definition and regenerate platform channel files
- Bump version 1.2.0 -> 1.3.0

* fix: improve requestConnectionPriority implementation

- Remove redundant BleCapabilities guard in Dart layer (native handles it)
- Add BleConnectionPriority Kotlin enum mirroring Dart enum
- Map to explicit Android SDK constants via when expression
- Add firstOrNull with ILLEGAL_ARGUMENT for unknown priority values
- Add catch (e: Exception) block for broader error handling
- Fix enum doc comment (throws belongs on method, not enum)
- Remove stale capability check guidance from docs and README

---------

Co-authored-by: aqeel-bmec-co <aqeel@bmec.co>
Co-authored-by: aqeel-bmec-co <85945830+aqeel-bmec-co@users.noreply.github.com>
2026-04-01 21:15:39 +02:00
Foti Dim 8557a46d05 Add auto-connect support (#206)
* Add autoConnect support

* Enhance autoConnect functionality for Bluetooth devices

- Added support for managing a set of auto-connect devices in both Android and iOS implementations.
- Updated connection and disconnection logic to handle auto-reconnect scenarios appropriately.
- Improved cleanup processes to prevent unwanted reconnections when devices are manually disconnected.

* Refactor connection button and add auto-reconnect toggle

- Updated the connection button layout for better UI consistency.
- Introduced an auto-reconnect toggle to manage automatic reconnections when devices become available.
- Enhanced connection and disconnection logic to respect the auto-connect setting.

* Update version to 1.2.0 and add CHANGELOG for new features

- Bumped version to 1.2.0.
- Added CHANGELOG.md detailing new features including support for `autoConnect` and UI updates for automatic reconnection.

* Improve readme

* Refactor variable naming for clarity in Bluetooth connection logic

- Changed variable name from `isAutoConnect` to `shouldAutoConnect` for better readability and understanding of its purpose in the connection state handling.

* Refactor connection handling in UniversalBlePlugin

- Simplified connection logic by always cleaning up internal state before sending connection change callbacks.
- Ensured GATT resources are only closed when autoConnect is disabled, allowing for better management of Bluetooth connections.

* Refactor disconnection handling in UniversalBlePlugin

- Introduced a new method `handlePeripheralDisconnection` to encapsulate disconnection logic, improving code readability and maintainability.
- Updated the `centralManager` methods to utilize the new disconnection handler, ensuring consistent behavior across connection state changes.

* Update darwin/Classes/UniversalBlePlugin.swift

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Foti Dim <fotios.dimanidis@a2zebra.de>
Co-authored-by: Navideck Labs <130186950+navidecklabs@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-16 11:36:24 +05:30
EricKwok 1adfa9b485 Implement readRSSI on Android and Darwin (#203) 2026-01-05 17:49:55 +01:00
Foti Dim a5b6af6168 Enforce cxx_std_20 (#205)
* Enforce cxx_std_20

* Bump version

* Switch to private
2026-01-05 16:12:31 +01:00
Foti Dim 7a6e555275 Change button wording 2025-12-29 11:23:50 +01:00
Foti Dim 01b4511704 Update readme 2025-12-14 12:22:45 +01:00
Rohit Sangwan fa319416ef Implement timestamp in scanResult (#198)
* Implement timestamp in scanResult

* Update pigeon

* implement windows

* Update changelog

* Fix Swift formatting

* Remove android unused import

* Format pigeon generated file
2025-12-11 19:24:13 +05:30
Rohit Sangwan 34b39597fd Implement isScanning api (#188)
* Implement isScanning api

* Improve IOS scanning api

* Update Readme and Changelog
2025-11-12 14:57:44 +01:00
Rohit Sangwan acfa3200ca Implement unified and type safe error messages (#186)
* Implement unified and type safe error messages

* Fix Apple error handling

* improve linux exception handling

* improve web exception handling

* fix window imports

* update pigeon generated files

* Fix compilaton issue

* Fix windows error parsing

* Fix windows compilation

* Improve error handling on dart side

* rename _wrapFuture to _executeWithErrorHandling

* Add pigeon generation script and format generated dart file

* Update changelog

* Update readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-11-11 19:34:29 +01:00
Foti Dim f3d5de250c Update changelog 2025-08-20 09:08:19 +02:00
Rohit Sangwan 0f4bae71e1 Add timeout argument to all APIs (#172)
* Add timeout argument to all apis

* Update Version and changelog

* Bump version

* Update readme

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-07-16 11:47:48 +02:00
Rohit Sangwan 2170588045 Fix characteristic value listener and add tests (#168)
* Improve characteristic value listener

* Implement characteristic tests

* Bump version and update changelog
2025-07-08 08:13:45 +02:00
Rohit Sangwan d56851cbfb Wait for writeWithoutResponse completion (#166)
* Wait for writeWithoutResponse request completion on Android

* Wait for writeWithoutResponse request completion on Darwin

* Add WriteWithoutResponse button in example app

* Update changelog and bump version

* Apply suggestions from code review

Co-authored-by: Foti Dim <foti@navideck.com>

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-06-26 08:05:59 +02:00
Rohit Sangwan 72090571a3 Add WebBluetoothGloballyDisabled exception and fix availability state (#165)
* Add WebBluetoothGloballyDisabled exception and fix availability state

* Update changelog and version

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2025-06-13 00:30:13 +02:00
Foti Dim fa98d2989b Switch to flutter_lints: ^6.0.0 2025-05-29 21:35:04 +02:00
Foti Dim 78d0aaea66 Reduce amount of topics 2025-05-29 09:09:20 +02:00
Foti Dim 744094ebc5 Update pubspec.yaml 2025-05-26 13:59:27 +02:00
Foti Dim 334bc1c680 Improve docs for isPaired 2025-03-19 22:17:06 +01:00
Rohit Sangwan 6cc43ccc86 Fix crash on Windows when calling pair APIs with an unknown deviceId (#141)
* Fix crash on Windows when call few apis with an unknown deviceId

* Update Changelog

* Bump Version
2025-02-20 12:28:33 +01:00
Foti Dim 12a5d9d061 Bump version to 0.16 2025-02-17 08:22:15 +01:00
Marcel Graber 8e9ddc839d Update bluez.dart to 0.8.3 (#134) 2025-02-11 22:04:44 +01:00
Rohit Sangwan f3411280e9 Enhance getSystemDevice API on macOS with Broader Default Services Fi… (#121)
* Enhance getSystemDevice API on macOS with Broader Default Services Filter

* Update docs

* Update darwin/Classes/UniversalBlePlugin.swift

Co-authored-by: Foti Dim <foti@navideck.com>

* Reorder fields

* Use ScanFilter ui for getting system devices

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
Co-authored-by: Foti Dim <foti@navideck.com>
2025-01-02 15:58:51 +05:30
Foti Dim d39f4cd5d3 Bump flutter_web_bluetooth to 1.0.0 (#102) 2024-12-02 10:58:58 +01:00
Foti Dim 4e225b756c Add rawName property
Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-10-08 17:58:38 +02:00
Rohit Sangwan b77d0aaeb4 Add error in connection updates (#89)
* Add error in connection updates

* implement windows

* Update changelog and Docs

* minor fix in connect()

* Add default timeout in connect

* Document new pair and connect API

* Fix Connect and Pair apis to throw proper errors and Improve logging

* remove import

* Rename PairingException and update Exception doc

* Update changelog

* Update comments

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-09-26 23:08:25 +02:00
Rohit Sangwan 7dc22c58a5 Improve scan filter api (#78)
* Improve scan filter api

* Implement Windows filters

* Add manufacturerDataList and deprecate manufacturerData

* Fix Windows

* Update Readme and changelog

* Remove import

* Fix Linux

* Update readme and changelog

* Cleanup Todo

* Improve ManufacturerData

* Rename webConfig and Manufacturer.data

* Return false for receivesAdvertisements on Linux/Web

* Add delay in discoverServices on Linux

* Remove import

* Update changelog

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-09-16 23:43:51 +02:00
Foti Dim c37036135d Auto convert all services passed to getSystemDevices 2024-08-16 14:45:47 +02:00
Foti Dim 40819d5796 Return pair result 2024-08-12 21:15:56 +02:00
Foti Dim 7606e8fd29 Implement pairing on Apple (#59) 2024-08-09 22:42:40 +02:00
Foti Dim c0c678c735 Trim spaces in UUIDs 2024-07-15 11:53:00 +02:00
Foti Dim 86f3836d5d Update readme and changelog 2024-07-12 09:24:27 +02:00
Foti Dim 9cd2faee66 Improve error handling and disconnection events (#60)
* Improve Android error handling

* Improve cleanup after disconnection on Apple

* Update changelog
2024-07-05 11:02:33 +02:00
Foti Dim 2bb3d1dcf4 Bump version to 0.10 2024-06-17 11:32:47 +02:00
Rohit Sangwan 2fe21962d2 Add queue per device (#48)
* Add queue per device

* Improve API and documentation

* Update lib/src/universal_ble.dart

* Update lib/src/ble_command_queue.dart

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
Co-authored-by: Foti Dim <foti@navideck.com>
2024-06-07 20:55:46 +05:30
Rohit Sangwan 5847bbffc5 Add name prefix filtering (#45)
* Add name filter

* Change name filter to "prefix"

* Implement namePrefix filtering

* Update lib/src/universal_ble_platform_interface.dart

* Update lib/src/universal_ble_platform_interface.dart

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-05-17 15:49:30 +02:00
Foti Dim 77b8658f72 Remove dependency on collection (#43)
* Remove dependency on collection

* Update changelog
2024-05-10 14:25:59 +02:00
Foti Dim a682ea933d Remove dependency on convert 2024-05-10 13:57:08 +02:00
Rohit Sangwan 05697b7d30 Improve setNotifiation completion (#42)
* Improve setNotifiation completion

* Implement Windows

* Minor android fixes

* Few more fixes

* Update changelog

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-05-10 12:59:10 +02:00
Rohit Sangwan b07a8888e0 Fix windows scan filter (#41)
* Fix windows scan filter

* Bump version and add changelog

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-05-10 09:57:04 +02:00
Foti Dim fef4e8526b Improve Apple, Android and Windows (#40)
* Cleanup connection

* Reverse search list

* Bump version

* Fix Android serviceUuids in scanResults

* Fix typo

* Improve cleanup on apple

* Improve Apple reconnection and service discovery

* Persist long scan result name on Windows

Co-authored-by: navidecklabs <navidecklabs@users.noreply.github.com>

* Update changelog

---------

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
Co-authored-by: navidecklabs <navidecklabs@users.noreply.github.com>
2024-05-09 11:48:32 +02:00
Foti Dim 3be945c3d5 Improve manufacturer data discovery on Windows (#38)
* Improve manufacturer data discovery on Windows

* Switch pairing protection level to encrypted in Windows

* Minor UI improvement in example app

* Update windows/src/universal_ble_plugin.h

* Remove minimum DevicePairingProtectionLevel

* Improve logging

* Bump version

---------

Co-authored-by: Rohit Sangwan <rohitsangwan647@gmail.com>
2024-05-02 00:09:44 +02:00
Foti Dim 57cf39f581 Make variables final and fix formatting in Linux 2024-04-10 22:56:56 +02:00
Rohit Sangwan 9e51e9e951 Fix discover services on Windows (#32)
* Fix discover services on Windows

* Bump version

---------

Co-authored-by: fotidim <foti@navideck.com>
2024-03-28 13:08:55 +05:30
Rohit Sangwan 870defea86 Update readme and improve logs (#28)
* Update readme and improve logs

* Apply suggestions from code review

Co-authored-by: Foti Dim <foti@navideck.com>

* Add changelog

* Update Readme

* Update lib/src/universal_ble_web/universal_ble_web.dart

* Improve readme

* Update README.md

* Keep web section

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-03-19 09:22:54 +01:00
Rohit Sangwan fe0a654f36 Implement requestMtu in Linux (#22)
* Implement requestMtu in Linux

* Minor fixes

* Improve requestMtu
2024-03-17 11:48:33 +01:00
Foti Dim d5b111288c Release 0.9.4 2024-03-13 21:05:06 +01:00
Rohit Sangwan 1f7ba287ef Implement ScanFilter (#17)
* Implement ScanFilter

* Add windows implementation

* Fix Linux and cleanups

* Update Readme, Changelog and Version

* Minor fixes from AI comments

* Fix windows crash and update pigeon

* Fix UUID parsing

* Apply suggestions from code review

Co-authored-by: Foti Dim <foti@navideck.com>

---------

Co-authored-by: Foti Dim <foti@navideck.com>
2024-03-05 22:37:14 +05:30
Rohit Sangwan 35d4737f3a Implement queue (#11)
* Implement queue

* Enable queue by default, remove queue from web and update readme

* Rename useQueue to queuesRequests

* Rename queuesRequests and improve readme

* Rename _executeMethod and improve readme

* Rename to _isQueueEnabled

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
2024-02-15 07:57:11 +01:00