BcmScanController

The Scan Controller (BcmScanController) is the Biocapture SDK's central Controller and the main player in the scanning process. It internally manages a camera object and a scan session.

The Scan Controller is configured using an instance of the BcmGlobalConfig and the BcmScanConfig.

Progress is reported to an object implementing the PBcmFlowDelegate interface. Please refer to the usage examples for a high-level overview of the Scan Fragment.

Caveats

Changes made to the SDK global configuration through BcmGlobalConfig are applied only when a scan session is started. Configure the SDK while no Scan Controller (BcmScanController) is active to ensure that your configuration is applied to all scan sessions.

Interface

Swift:

open class BcmScanController: ScanController {

    // MARK: - Scan view controller creation
    override public init(
        /**
         * An object enables basic configuration of SDK behavior.
         */
        globalConfig: BcmGlobalConfig,

        /**
         * An instance of BcmScanConfig,
         * which may be changed/replaced at will prior to presenting the scan controller
         */
        scanConfig: BcmScanConfig = BcmScanConfig(),

        /**
         * A delegate object for scan flow events
         */
        flowDelegate: PBcmFlowDelegate? = nil
    ) {
        super.init(globalConfig: globalConfig,
                   scanConfig: scanConfig,
                   flowDelegate: flowDelegate)
    }

}

Usage

Configuring the Scan Controller

The Scan Controller maintains the Biocapture SDK's global configuration using the BcmGlobalConfig interface. The BcmGlobalConfig object can be set in the Constructor of the Controller, using the globalConfig field.

Additionally, you may change the Scan behavior by providing your own instance of scanConfig or changing values of the configuration object. For a list of configurable options, please refer to the class documentation of BcmScanConfig.

Assign a flowDelegate object to receive information about scan progress and the final result (PBcmFlowDelegate).

Swift:

let bcmGlobalConfig = BcmGlobalConfig(
    licensing: .ONLINE(key: "<license-key>")
)

let bcmScanConfig = BcmScanConfig(
    scanTerminationOption: BcmScanConfig.ScanTerminationOptions.SCORE_WITH_TIMEOUT
)

let bcmScanController = BcmScanController(globalConfig: bcmGlobalConfig,
                                          scanConfig: bcmScanConfig,
                                          flowDelegate: self)

The settings are applied for all future scan sessions during your app's Scan Controller lifetime.

Scan Session Management

The Scan Controller by default automatically manages scan sessions, meaning it will start a scan session when presented, stop it when hidden or dismissed, and restart a new scan session after a scan completes.

See Also

results matching ""

    No results matching ""