barcode_hid_listener
A headless, zero-dependency Flutter package for intercepting, buffering, and validating physical HID barcode scanner keystrokes (USB/Bluetooth).
What this package is like to depend on
Last release 10 days ago
13 Aug 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 3 of 3 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
3 releases · first in 2026
3 releases in the last 12 months
see the full history below
Release timeline
3 releases · Jul 2026 to Aug 2026Releases
latest 3-
1.1.013 Aug 2026Release notes
Open source →Core Engine Upgrade: Lifecycle & Safety
- Added
listenForAppLifecycleChangesproperty (defaulting totrue) toBarcodeKeyboardListenerto automatically pause background hardware scanning when the app enters the background (e.g.AppLifecycleState.paused), and resume it when returning to the foreground. - Changed
enableDebugLogsdefault inBarcodeScannerConfigfromtruetofalsefor better production readiness out of the box. - Fixed a potential crash in
_onGlobalFocusChangedwherecontextwas accessed after the widget was disposed. - Fixed a stale static reference issue in
BarcodeKeyboardServicewhere callingdispose()on a paused service left the singleton pointer intact. - Hardened internal stream tearing down to eliminate stale subscription references on widget updates.
- Added documentation regarding
BarcodeFormat.upcEdetection behavior and limitations with raw HID payloads.
- Added
-
1.0.114 Jul 2026Release notes
Open source →Core Engine Upgrade: Exclusive Handler Guard
- Added static ownership tracking (
_activeInstance) toBarcodeKeyboardService. - Guarantees that only one hardware keyboard handler is active globally at any time, preventing duplicate scan broadcasts across persistent navigation views.
Declarative UI Upgrade:
autoPauseOnFocus- Added
autoPauseOnFocusproperty (defaulting totrue) toBarcodeKeyboardListener. - Automatically pauses background hardware scanning whenever an input text field (
EditableText) gains focus. - Integrated automatic route visibility checks (
ModalRoute.isCurrent), ensuring hidden routes never steal scanner ownership.
- Added static ownership tracking (
-
1.0.014 Jul 2026Release notes
Open source →Initial stable release of
barcode_hid_listener!Core Engine
- Two-Stage Symbology Gatekeeper: Built-in validation for global retail and logistics formats (
EAN-13,UPC-A,EAN-8,UPC-E,EAN-14,Code 39). - Temporal Deduplication: Built-in shielding to ignore accidental double-scans within configurable time windows.
- GS1 AI Normalizer: Automatically intercepts and strips the
01Application Identifier prefix from 16-digit hardware EAN-14 shipping codes to guarantee 14-digit downstream consistency.
Architecture & Usage
- Declarative Widget Wrapper (
BarcodeKeyboardListener): Drop-in UI widget with automatic lifecycle management, dynamic pausing (enabled), andFocusNodegatekeeping. - Imperative Service (
BarcodeKeyboardService): Headless Dart streams for advanced state management (Riverpod/Bloc). - Proactive Global Focus Shield: Hardware streams safely pause when active text fields gain focus, preventing OS-level HID wedge duplication.
- Zero Dependencies: Pure Dart. Runs flawlessly on iOS, Android, Windows, macOS, Linux, and Web.
- Two-Stage Symbology Gatekeeper: Built-in validation for global retail and logistics formats (