testAllNfcFeatures static method

Future<void> testAllNfcFeatures()

Example: Comprehensive NFC testing

Implementation

static Future<void> testAllNfcFeatures() async {
  print('=== Testing All NFC Features ===');

  // Check card presence
  final isPresent = await PaxSdk.checkCardPresence();
  print('Card present: $isPresent');

  if (isPresent) {
    // Detect card
    final result = await PaxSdk.detectCard();

    if (result['success']) {
      final cardData = result['cardData'];
      final manufacturerData = result['manufacturerData'];

      print('\n=== Card Information ===');
      print('UID: ${cardData['uid']}');
      print('UID Length: ${cardData['uidLength']} bytes');

      if (cardData['cardType'] != null) {
        final cardType = cardData['cardType'];
        print('Card Type: ${cardType['cardType']}');
        print('Manufacturer: ${cardType['manufacturer']}');
        print('First Byte: ${cardType['firstByte']}');
      }

      if (manufacturerData['block0Data'] != null) {
        print('\n=== Manufacturer Block ===');
        print('Block 0 Data: ${manufacturerData['block0Data']}');

        if (manufacturerData['parsedData'] != null) {
          final parsed = manufacturerData['parsedData'];
          print('Embedded UID: ${parsed['embeddedUid']}');
          print('BCC: ${parsed['bcc']}');
          if (parsed['sak'] != null) {
            print('SAK: ${parsed['sak']}');
          }
          if (parsed['atqa'] != null) {
            print('ATQA: ${parsed['atqa']}');
          }
        }
      }

      if (manufacturerData['authResult'] != null) {
        final authResult = manufacturerData['authResult'];
        if (authResult['success']) {
          print('\n=== Authentication Result ===');
          print('Key Index: ${authResult['keyIndex']}');
          print('Data: ${authResult['data']}');
        }
      }
    } else {
      print('Card detection failed: ${result['error']}');
    }
  } else {
    print('No card present for testing');
  }

  // Test all detection modes
  print('\n=== Testing All Detection Modes ===');
  await PaxSdk.tryAllModes();
}