performScan static method

Future<void> performScan(
  1. String sdkLicenseKey,
  2. BlinkidFlutter blinkIdPlugin, {
  3. required MicroblinkErrorCallback onError,
  4. required MicroblinkSuccessCallback onSuccess,
})

Implementation

static Future<void> performScan(
  String sdkLicenseKey,
  BlinkidFlutter blinkIdPlugin, {
  required MicroblinkErrorCallback onError,
  required MicroblinkSuccessCallback onSuccess,
}) async {
  try {
    /// Set the BlinkID SDK settings
    final sdkSettings = BlinkIdSdkSettings(sdkLicenseKey);
    sdkSettings.downloadResources = true;

    /// Create and modify the Session Settings
    final sessionSettings = BlinkIdSessionSettings();
    sessionSettings.scanningMode = ScanningMode.automatic;

    /// Create and modify the scanning settings
    final scanningSettings = BlinkIdScanningSettings();
    scanningSettings.anonymizationMode = AnonymizationMode.fullResult;
    scanningSettings.glareDetectionLevel = DetectionLevel.mid;
    scanningSettings.blurDetectionLevel = DetectionLevel.mid;

    /// Create and modify the Image settings
    final imageSettings = CroppedImageSettings();
    imageSettings.returnDocumentImage = true;
    imageSettings.returnSignatureImage = true;
    imageSettings.returnFaceImage = true;

    /// Place the image settings in the scanning settings
    scanningSettings.croppedImageSettings = imageSettings;

    /// Place the Scanning settings in the Session settings
    sessionSettings.scanningSettings = scanningSettings;

    /// Place the optional ClassFilter class
    /// The filter is currently modified to only accept Canada documents, and USA California documents
    //final classFilter =
    ClassFilter.withIncludedDocumentClasses([
      DocumentFilter(Country.canada),
      DocumentFilter(Country.usa, Region.california),
    ]);

    /// Call the 'performScan' method and handle the results
    /// Check how the results are handled in the blinkid_result_builder.dart file
    await blinkIdPlugin
        .performScan(sdkSettings, sessionSettings) //, classFilter)
        .then((result) {
          onSuccess(result);
          /*resetImages();
          setState(() {
            if (result != null) {
              resultString = BlinkIdResultBuilder.getIdResultString(result);
              setImages(result);
            }
          });*/
        })
        .catchError((scanningError) {
          onError(scanningError.message);
          /*setState(() {
            if (scanningError is PlatformException) {
              final errorMessage = scanningError.message;
              resultString = "BlinkID scanning error: $errorMessage";
              resetImages();
            }
          });*/
        });
  } catch (blinkidScanningError) {
    if (blinkidScanningError is PlatformException) {
      final errorMessage = blinkidScanningError.message;
      onError(errorMessage ?? "");
      /*setState(() {
        resultString = "BlinkID scanning error: $errorMessage";
        resetImages();
      });*/
    }
  }
}