License handling
License Key
In order to run the Scanbot SDK within your production app, you must purchase and use a valid Scanbot SDK license.
Each license key is valid only for a given app bundle identifier. You will be unable to use any of the SDK features if the license key is corrupted, expired, or invalid in any other way.
Getting a Trial License
The Scanbot SDK will run without a license for one minute per session! To get a free, "no-strings-attached" 7-day trial license, please submit the Trial License Form on our website.
Please kindly note that a trial license can only be used in a development and staging environment. You are not allowed to publish your app to the App Store, Play Store, or any 3rd party Android App Store with a trial license.
Purchase a Production License
To get pricing information and purchase a production license for the Scanbot SDK, please request a quote.
License checks in production apps
Please note: From version 1.60.0 we have removed the app termination mechanism on license error and have added a special callback that helps handle the Scanbot SDK license status.
val licenseInfo = ScanbotSDKInitializer()
.license(this, "")
.licenceErrorHandler(IScanbotSDKLicenseErrorHandler { status, feature, message ->
LoggerProvider.logger.d("ScanbotSDK", "license status:${status.name}, message: $message")
when (status) {
StatusFailureNotSet,
StatusFailureCorrupted,
StatusFailureWrongOS,
StatusFailureAppIDMismatch,
StatusFailureExpired -> {
// license is completely invalid
}
StatusOkay,
StatusTrial -> {
// license is valid but feature you trying to access is not available for this
// license key, handle this problem and reinit sdk with new license key if needed
when (feature) {
NoSdkFeature -> {}
EdgeDetection -> {}
// check for corresponding feature as needed
}
}
}
})
.initialize(this)
licenseInfo
- a new object that represents the license information. It is also available from ScanbotSDK(context).licenseInfo
licenseInfo.status
- an enum for the current license status:
licenseInfo.licenseStatusMessage
- a string that helps to understand the current license status
StatusOkay
- The license is valid and accepted.StatusTrial
- No license set yet. The SDK is in trial mode.StatusFailureNotSet
- No license set yet. The SDK's trial mode is over.StatusFailureCorrupted
- No license active. The set license was unreadable or has an invalid format.StatusFailureWrongOS
- No license active. The set license does not cover the current operating system.StatusFailureAppIDMismatch
- No license active. The set license does not cover the current app's bundle identifier.StatusFailureExpired
- No license active. The set license is valid but it has expired.
licenseInfo.expirationDate
- returns Date
of license key expiration or null if license is not valid
Updating the license in production apps
Please also note: To renew an expired license or extend a valid license with new Scanbot SDK features, you will have to reinitialize the Scanbot SDK with the new updated license string.
val licenseInfo = ScanbotSDKInitializer()
.license(this, "YOUR_UPDATED_LICENSE_STRING")
...
.initialize(this)
The expiration date and the feature list of a license are contained in an encrypted data part of the license key string. This means a renewal or extension of a license will cause a new license key string to be generated.
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.