rfid_kit library
Zebra RFID readers, Link-OS label printers and DataWedge barcode scanners for Flutter, behind vendor-neutral interfaces.
Start with ReaderSession.instance for the reader, DeviceManager for a printer, and HardwareScanner.instance for the scan trigger. See the README for the Android setup (the Zebra SDK files are not bundled).
Classes
- ConnectionConfig
- How to reach a specific device — transport + address.
- DeviceCapabilities
- What a connected device can actually do.
- DeviceDescriptor
- Identifies a concrete device + what it can do, brand/model agnostic.
- DeviceManager
- The single place that decides which concrete device implementation an app runs against:
- HardwareScanner
- Barcodes from the device's physical scan trigger, through Zebra DataWedge.
- LabelPrinter
- Brand/model-agnostic contract for any label printer.
- MockLabelPrinter
- A fake printer for tests, web and dev machines: "prints" by completing after a short delay. Everything it was asked to print is kept in printed and raw, so tests can assert on it.
- MockRfidReader
- A fake reader so an app runs on Flutter Web, in tests and on dev machines with no hardware attached. Emits random tags during inventory and a wandering proximity value during locate.
- NativeCrash
- A crash the native side recorded on the way down, read back on the next launch.
- ReaderSession
- Owns the ONE RFID reader an app should have open, and the hardware trigger's state.
- RfidDiagnostics
- Native crash reporting for a device you can't attach a cable to.
- RfidKitChannels
- Names of the platform channels that bridge Dart <-> native (Kotlin).
- RfidLabel
- A single RFID label to encode + print with the built-in layout: the barcode as text and as Code 128, with lines of free text underneath.
- RfidReader
- The brand/model-agnostic contract for any RFID reader.
- ScreenWake
- Keeps the display awake for as long as a scan is running.
- TagRead
- A single RFID tag observation, normalized so the rest of the app never has to care which reader brand or model produced it.
- ZebraLinkOsPrinter
- Label printer backed by the native Zebra Link-OS SDK (ZT411 and other Zebra printers) through the generic bridge.
- ZebraRfidReader
- RFID reader backed by a native Zebra SDK (RFD40/RFD90/MC33xx, …) through the generic platform-channel bridge.
Enums
- DeviceMode
- How DeviceManager obtains its devices.
- DeviceTransport
- How the app reaches a device.
Typedefs
- LabelPrinterFactory = LabelPrinter Function(DeviceDescriptor descriptor, ConnectionConfig? connection)
- Builds a LabelPrinter for a device + connection.
- RfidReaderFactory = RfidReader Function(DeviceDescriptor descriptor, ConnectionConfig? connection)
- Builds an RfidReader for a probed device.
Exceptions / Errors
- DeviceConnectionException
- Failed to open/maintain the connection to a device.
- DeviceException
- Base error for anything in the device layer, so callers catch one type regardless of which vendor SDK actually failed underneath.
- NoDeviceBackendException
- No backend is registered/available for the detected hardware.
- UnsupportedCapabilityException
- The device is connected but cannot do the requested action (e.g. asking a print-only device to locate a tag).