mtrust_imz_kit 1.0.0-dev.2
mtrust_imz_kit: ^1.0.0-dev.2 copied to clipboard
Flutter package for IMZ device connectivity with USB wakeup and BLE communication, building on the shared MTrust reader stack.
example/README.md
IMZ-Kit example #
Minimal integration. A complete, runnable application — including a virtual
reader that simulates every failure mode without hardware — lives in
examples/imz_kit_example.
import 'package:flutter/material.dart';
import 'package:liquid_flutter/liquid_flutter.dart';
import 'package:mtrust_imz_kit/mtrust_imz_kit.dart';
import 'package:mtrust_urp_ble_strategy/mtrust_urp_ble_strategy.dart';
/// Verifies a product with an IMZ reader.
///
/// [ImzModalBuilder] owns the whole flow: discovering a reader, connecting,
/// priming it with your payload, scanning, retries and error messages.
class VerifyButton extends StatefulWidget {
const VerifyButton({super.key});
@override
State<VerifyButton> createState() => _VerifyButtonState();
}
class _VerifyButtonState extends State<VerifyButton> {
final _strategy = UrpBleStrategy();
@override
void dispose() {
_strategy.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return ImzModalBuilder(
strategy: _strategy,
// Bound into the signed measurement — use your order or item id.
payload: 'ORDER-4711',
onVerificationDone: (measurement) {
final m = measurement.measurement;
debugPrint('reader ${m.readerSn} verified payload ${m.payload}');
for (final result in m.result) {
debugPrint('${result.modelId}: score ${result.scoreDistance}');
}
},
onVerificationFailed: (exception) {
debugPrint('failed (${exception.type.name}): ${exception.message}');
},
builder: (context, openModal) => LdButton(
onPressed: () => openModal(),
child: const Text('Verify'),
),
);
}
}