Class MRZScannerActivity
MRZScannerActivity is an activity class that implements MRZ scanning features.
Definition
Assembly: MRZScannerBundle.aar
Namespace: com.dynamsoft.mrzscannerbundle.ui
class MRZScannerActivity extends AppCompatActivity
ResultContract
A contract specifying that the activity MRZScannerActivity can be called with an input of type MRZScannerConfig and produce an output of type MRZScanResult.
public static final class ResultContract extends ActivityResultContract<MRZScannerConfig, MRZScanResult>
How to Use
- Java
- Kotlin
public class MainActivity extends AppCompatActivity { private ActivityResultLauncher<MRZScannerConfig> launcher; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Configure the MRZ scanner. MRZScannerConfig config = new MRZScannerConfig(); config.setLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9"); // Set the document type to scan (default: DT_ALL). config.setDocumentType(EnumDocumentType.DT_ALL); // Configure which images to include in the result. config.setReturnDocumentImage(true); // Cropped document image (default: true). config.setReturnPortraitImage(true); // Portrait image (default: true). config.setReturnOriginalImage(false); // Original full-frame image (default: false). // Configure UI element visibility. config.setCloseButtonVisible(true); config.setTorchButtonVisible(true); config.setCameraToggleButtonVisible(true); config.setBeepButtonVisible(true); config.setVibrateButtonVisible(true); config.setFormatSelectorVisible(true); // Configure feedback on successful scan. config.setBeepEnabled(true); config.setVibrateEnabled(false); // Register the activity result callback. launcher = registerForActivityResult(new MRZScannerActivity.ResultContract(), result -> { if (result.getResultStatus() == MRZScanResult.EnumResultStatus.RS_FINISHED) { // Scan completed successfully. MRZData data = result.getData(); String mrzText = data.getMrzText(); String firstName = data.getFirstName(); String lastName = data.getLastName(); // ... access other MRZData fields as needed. // Access the cropped document images. // These may be null — see MRZScanResult.getDocumentImage for details. ImageData mrzSideImage = result.getDocumentImage(EnumDocumentSide.DS_MRZ); ImageData oppositeSideImage = result.getDocumentImage(EnumDocumentSide.DS_OPPOSITE); // Access the portrait image. Null if not detected or if setReturnPortraitImage(false). ImageData portraitImage = result.getPortraitImage(); // The result can be passed to another activity via Intent as-is; // the images are reference counted and need no extra handling. } else if (result.getResultStatus() == MRZScanResult.EnumResultStatus.RS_CANCELED) { // The user closed the scanner before completing a scan. } else if (result.getResultStatus() == MRZScanResult.EnumResultStatus.RS_EXCEPTION) { // An error occurred during initialization or scanning. int errorCode = result.getErrorCode(); String errorMessage = result.getErrorString(); } }); // Launch the MRZScannerActivity when the button is clicked. findViewById(R.id.btn_start).setOnClickListener(v -> launcher.launch(config)); } }class MainActivity : AppCompatActivity() { private lateinit var launcher: ActivityResultLauncher<MRZScannerConfig> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Configure the MRZ scanner. val config = MRZScannerConfig().apply { license = "DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" // Set the document type to scan (default: DT_ALL). documentType = EnumDocumentType.DT_ALL // Configure which images to include in the result. isReturnDocumentImage = true // Cropped document image (default: true). isReturnPortraitImage = true // Portrait image (default: true). isReturnOriginalImage = false // Original full-frame image (default: false). // Configure UI element visibility. isCloseButtonVisible = true isTorchButtonVisible = true isCameraToggleButtonVisible = true isBeepButtonVisible = true isVibrateButtonVisible = true isFormatSelectorVisible = true // Configure feedback on successful scan. isBeepEnabled = true isVibrateEnabled = false } // Register the activity result callback. launcher = registerForActivityResult(MRZScannerActivity.ResultContract()) { result -> when (result.resultStatus) { MRZScanResult.EnumResultStatus.RS_FINISHED -> { // Scan completed successfully. val data = result.data val mrzText = data.mrzText val firstName = data.firstName val lastName = data.lastName // ... access other MRZData fields as needed. // Access the cropped document images. // These may be null — see MRZScanResult.getDocumentImage for details. val mrzSideImage = result.getDocumentImage(EnumDocumentSide.DS_MRZ) val oppositeSideImage = result.getDocumentImage(EnumDocumentSide.DS_OPPOSITE) // Access the portrait image. Null if not detected or if isReturnPortraitImage = false. val portraitImage = result.portraitImage // The result can be passed to another activity via Intent as-is; // the images are reference counted and need no extra handling. } MRZScanResult.EnumResultStatus.RS_CANCELED -> { // The user closed the scanner before completing a scan. } else -> { // RS_EXCEPTION: an error occurred during initialization or scanning. val errorCode = result.errorCode val errorMessage = result.errorString } } } // Launch the MRZScannerActivity when the button is clicked. findViewById<View>(R.id.btn_start).setOnClickListener { launcher.launch(config) } } }