API Reference
MrtCardReader
Section titled “MrtCardReader”static Future<bool> isAvailable()
Section titled “static Future<bool> isAvailable()”Checks whether NFC is available and enabled on the current device.
static Future<void> startSession(...)
Section titled “static Future<void> startSession(...)”Starts an NFC session and streams card reading output through callbacks.
await MrtCardReader.startSession( onStatus: (status) {}, onBalance: (balance) {}, onTransactions: (transactions) {}, onError: (exception) {}, timeout: const Duration(seconds: 30),);Key callback inputs
onStatus: scan progress and status updates.onBalance: current card balance (paisa).onTransactions: parsed transaction list.onError: typed exception callback (recommended).timeout: optional session timeout.
Instance API (advanced control)
Section titled “Instance API (advanced control)”Use MrtCardReaderInstance if you need explicit session lifecycle management.
final reader = MrtCardReaderInstance( logger: ConsoleLogger(), timeout: const Duration(seconds: 60),);
await reader.startSession( onStatus: (status) => print(status), onBalance: (balance) => print(balance), onTransactions: (transactions) => print(transactions), onError: (exception) => print(exception),);
if (reader.isSessionActive) { print('Reading in progress...');}
await reader.cancelSession();MrtTransaction model
Section titled “MrtTransaction model”Common fields exposed in each transaction item:
fixedHeadertimestamptransactionTypefromStationtoStationbalancecosttrailingisTopup
Utility methods include copyWith, toMap, fromMap, and toString.
Typed exceptions
Section titled “Typed exceptions”The package includes explicit exceptions for predictable error handling:
MrtExceptionNfcNotAvailableExceptionInvalidCardExceptionDataCorruptionExceptionNfcTimeoutExceptionSessionAlreadyActiveException