The process of using MultiProcessor in asynchronous mode is as follows.

setHmsScanTypes() is an optional parameter. Set it as needed.
Java
// QRCODE_SCAN_TYPE and DATAMATRIX_SCAN_TYPE are set for the barcode format, indicating that Scan Kit will support only the QR code and DataMatrix code.
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE,HmsScan.DATAMATRIX_SCAN_TYPE).create(); Kotlin
// QRCODE_SCAN_TYPE and DATAMATRIX_SCAN_TYPE are set for the barcode format, indicating that Scan Kit will support only the QR code and DataMatrix code.
val options = HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE,HmsScan.DATAMATRIX_SCAN_TYPE).create() Java
HmsScanAnalyzer barcodeDetector = new HmsScanAnalyzer(options); Kotlin
val barcodeDetector = HmsScanAnalyzer(options) Java
MLFrame image = MLFrame.fromBitmap(bitmap); Kotlin
val image = MLFrame.fromBitmap(bitmap) Java
barcodeDetector.analyzInAsyn(image).addOnSuccessListener(new OnSuccessListener<List<HmsScan>>() {
@Override
public void onSuccess(List<HmsScan> hmsScans) {
if (hmsScans != null && hmsScans.size() > 0) {
// Display the scanning result.
...
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
String TAG = "AsyncError";
Log.w(TAG, e);
}
}); Kotlin
barcodeDetector.analyzInAsyn(image).addOnSuccessListener(OnSuccessListener {
if (hmsScans != null && it.size > 0) {
// Display the scanning result.
...
}
}).addOnFailureListener(OnFailureListener {
val TAG = "asyncError"
Log.w(TAG, it)
})