Use Case
The U909 RFID BLE Flutter Plugin was built for scenarios where Chainway U909 devices need to communicate not only via RFID, but also over Bluetooth with peripheral devices — such as BLE label printers or additional scanners. The plugin combines two hardware capabilities under a single, consistent Dart interface.
Key Features
- RFID tag reading — the same core functionality as the C72 plugin: single scan, continuous scan, and stream-based tag output
- BLE device scanning — discover nearby Bluetooth devices with filtering by name, service UUID, or minimum RSSI threshold
- BLE connection management — connect, disconnect, and monitor connection status to a selected BLE peripheral
- GATT characteristics — read and write data to GATT characteristics on a connected BLE device
- Dual-channel API —
MethodChannelfor one-time operations andEventChannelfor data streams (RFID tags & BLE notifications)
Differences from the C72 Plugin
| Feature | C72 Plugin | U909 Plugin |
|---|---|---|
| RFID tag reading | ✓ | ✓ |
| BLE device scanning | — | ✓ |
| BLE connection management | — | ✓ |
| GATT read/write | — | ✓ |
| Target device | Chainway C72 | Chainway U909 |
Technical Challenges
Managing two hardware subsystems (RFID reader and BLE stack) simultaneously within a single plugin requires careful thread management on the Android side. Callbacks from the RFID SDK and the BluetoothGattCallback run on different threads — both must be marshalled to the main thread before being forwarded to Flutter via EventChannel.