Data Capture Context
Defined in package com.scandit.datacapture.core
- DataCaptureContext
class DataCaptureContextAdded in version 8.6.0
Data capture context is the main class for running data capture related tasks. The context manages one or more capture modes, such as BarcodeCapture that perform the recognition. The context itself acts as a scheduler, but does not provide any interfaces for configuring data capture capabilities. Configuration and result handling is handled by the data capture modes directly.
A data capture context has exactly one frame source (typically a built-in camera). The frame source delivers the frames on which the capture modes should perform recognition on. When a new capture context is created, it’s frame source is null and must be initialized for recognition to work.
Typically a DataCaptureView is used to visualize the ongoing data capture process on screen together with one or more overlays. However it’s also possible to use the data capture context without a view to perform off-screen processing.
- forLicenseKey(licenseKey)
fun DataCaptureContext.forLicenseKey(licenseKey: String): DataCaptureContext
Added in version 8.6.0
Constructs a data capture context with the provided license key.
- forLicenseKeyAndDeviceName(licenseKey, deviceName)
fun DataCaptureContext.forLicenseKeyAndDeviceName(licenseKey: String, deviceName: String?): DataCaptureContext
Added in version 8.6.0
Constructs a data capture context with the provided license key and an optional device name.
The device name allows to optionally identify the device with a user-provided name. This name is then associated with the unique identifier of the device and displayed in the online dashboard.
See forLicenseKey() for details about the context instantiation.
Note
It’s recommended to initialize the singleton context through the static initialize() method, unless several contexts are specifically needed.
- forLicenseKeyAndExternalId(licenseKey, externalId)
fun DataCaptureContext.forLicenseKeyAndExternalId(licenseKey: String, externalId: String?): DataCaptureContext
Added in version 8.6.0
Constructs a data capture context with the provided license key and an optional external id. See forLicenseKey() for details.
The external ID is a customer defined identifier that is verified in the license key. This is an optional feature for resellers of the Scandit Data Capture SDK.
See forLicenseKey() for details about the context instantiation.
Note
It’s recommended to initialize the singleton context through the static initialize() method, unless several contexts are specifically needed.
- forLicenseKeyAndExternalIdAndDeviceName(licenseKey, externalId, deviceName)
fun DataCaptureContext.forLicenseKeyAndExternalIdAndDeviceName( licenseKey: String, externalId: String?, deviceName: String?): DataCaptureContext
Added in version 8.6.0
Constructs a data capture context with the provided license key, an optional external id and an optional device name.
The external ID is a customer defined identifier that is verified in the license key. This is an optional feature for resellers of the Scandit Data Capture SDK.
The device name allows to identify the device with a user-provided name. This name is then associated with the unique identifier of the device and displayed in the online dashboard.
See forLicenseKey() for details about the context instantiation.
Note
It’s recommended to initialize the singleton context through the static initialize() method, unless several contexts are specifically needed.
- forLicenseKeyAndExternalIdAndDeviceNameAndSettings(licenseKey, externalId, deviceName, settings)
fun DataCaptureContext.forLicenseKeyAndExternalIdAndDeviceNameAndSettings(licenseKey: String, externalId: String?, deviceName: String?, settings: DataCaptureContextSettings?): DataCaptureContext
Added in version 8.6.0
Constructs a data capture context with the provided license key, an optional external id, an optional device name and an optional settings.
The external ID is a customer defined identifier that is verified in the license key. This is an optional feature for resellers of the Scandit Data Capture SDK.
The device name allows to identify the device with a user-provided name. This name is then associated with the unique identifier of the device and displayed in the online dashboard.
See forLicenseKey() for details about the context instantiation.
Note
It’s recommended to initialize the singleton context through the static initialize() method, unless several contexts are specifically needed.
- deviceId
val DataCaptureContext.deviceId: String?
Added in version 8.6.0
The unique identifier of the device as used by the Scandit Data Capture SDK. This identifier does not contain any device identifying information that would be usable outside of the context of the Scandit Data Capture SDK itself.
- openSourceSoftwareLicenseInfo
val DataCaptureContext.openSourceSoftwareLicenseInfo: OpenSourceSoftwareLicenseInfo
Added in version 8.6.0
The license text and attributions for all third party software used by the Scandit SDK.
val DataCaptureContext.sharedInstance: DataCaptureContext
Added in version 8.6.0
Holds the singleton instance of DataCaptureContext, which is managed by Scandit Data Capture SDK. This instance is unusable until properly configured.
To configure the instance, call initialize().
- setFrameSource(frameSource)
fun setFrameSource(frameSource: FrameSource?)
Added in version 8.6.0
Sets the FrameSource used by this DataCaptureContext, replacing any previously set frame source. Pass null to remove the current frame source.
- frameSource
val frameSource: FrameSource?
Added in version 8.6.0
- addListener(listener)
fun addListener(listener: DataCaptureContextListener)
Added in version 8.6.0
Adds the listener to this data capture context. Context listeners receive events when new data capture modes are added, or the frame source changes.
In case the same listener is already observing this instance, calling this method will not add the listener again.
- removeListener(listener)
fun removeListener(listener: DataCaptureContextListener)
Added in version 8.6.0
Removes a previously added listener from this data capture context.
In case the listener is not currently observing this instance, calling this method has no effect.
- addFrameListener(listener)
fun addFrameListener(listener: DataCaptureContextFrameListener)
Added in version 8.6.0
Adds the frame listener to this data capture context. Frame listeners receive events when frames are about to be processed or have been processed by the data capture context.
In case the same listener is already observing this instance, calling this method will not add the listener again.
- removeFrameListener(listener)
fun removeFrameListener(listener: DataCaptureContextFrameListener)
Added in version 8.6.0
Removes a previously added frame listener from this data capture context.
In case the listener is not currently observing this instance, calling this method has no effect.
- addMode(mode)
fun addMode(mode: DataCaptureMode)
Added in version 8.6.0
Adds the specified data capture mode to this capture context. Please note that it is not possible to add a mode associated with a context to a different context. If the mode is already associated with this context, this call has no effect.
A data capture context can only be associated with one mode at a time. If multiple modes are associated with the same context, the context will not process any frames and report an error.
- setMode(mode)
fun setMode(mode: DataCaptureMode)
Added in version 8.6.0
Sets the specified data capture mode as the active mode of this capture context. Please note that it is not possible to add a mode associated with a context to a different context. If the mode is already associated with this context, this call has no effect.
A data capture context can only be associated with one mode at a time. If a new mode is associated with the context, the previous mode will be replaced by the new one.
- removeMode(mode)
fun removeMode(mode: DataCaptureMode)
Added in version 8.6.0
Removes the mode from this capture context. If the capture mode is currently not associated to the context, this call has no effect.
- removeCurrentMode()
fun removeCurrentMode()Added in version 8.6.0
Removes the currently active mode from this capture context. If the context has no capture mode associated to it, this call has no effect.
- removeAllModes()
fun removeAllModes()Added in version 8.6.0
Removes all modes from this capture context. If there currently are no captures modes associated to the context, this call has no effect.
- licenseInfo
val licenseInfo: LicenseInfo?
Added in version 8.6.0
Information about the license the context was created for.
Note
This value is available with a small delay. To make sure it is available, set a listener and as soon as DataCaptureContextListener.onObservationStarted() was called, it is available.
- dispose()
fun dispose()Added in version 8.6.0
Disposes/releases this data capture context. This frees most associated resources and can be used to save some memory. Disposed/released contexts cannot be used for recognition anymore, trying will result in a ContextStatus with error code 1025. Data capture modes and listeners remain untouched.
This method may be called multiple times on the same context. Further calls have no effect.
- applySettings(settings)
fun applySettings(settings: DataCaptureContextSettings)
Added in version 8.6.0
Applies the given settings to the data capture context.
- initialize(licenseKey, deviceName, externalId, settings)
fun DataCaptureContext.initialize(licenseKey: String, deviceName: String?, externalId: String?, settings: DataCaptureContextSettings?): DataCaptureContext
Added in version 8.6.0
Initializes the singleton context instance with the provided arguments, and returns the same instance.
- initialize(licenseKey, frameworkName, frameworkVersion, deviceName, externalId, settings)
fun DataCaptureContext.initialize(licenseKey: String, frameworkName: String?, frameworkVersion: String?, deviceName: String?, externalId: String?, settings: DataCaptureContextSettings?): DataCaptureContext
Added in version 8.6.0
Initializes the singleton context instance with the provided arguments, and returns the same instance.