
Scandit's Frequently Asked Questions page is a central hub where its customers can always go to with their most common questions. These are the 114 most popular questions Scandit receives.
If the license verification fails, an alert is shownin the UI and the scanner stops scanning. If you recently created or got a new key assigned, please make sure you updated it in your app. You can find below a description of the different errors:
Error 6: The Scandit SDK failed to get network access which is mandatory for the test edition. Connect your device to the network and restart the app.Explanation:You are using a Test license and you don't have internet connection. You need to connect your device to the networkNote: In Android:check you have added the Internetpermission (<uses-permissionandroid:name="android.permission.INTERNET"/>)
Error 11: The Scandit SDK validation failed. Make sure your app key is valid and check your account for available device activations.Explanation:The license key is not valid (wrong key) or you have reached your device limitations.
Error 12: No Scandit SDK license key was set. Please set a valid license key in your application.Explanation: The license key is not set. Please be sure the license key is set before the picker is created.
Error 13: The Scandit SDK validation failed. Your license key has expired. Please login to scandit.com and acquire a new one.Explanation: Thelicense key has expired. Please contact the Scandit support to acquire a new one.
Error 14: The Scandit SDK license validation failed. Your license key does not include this platform. Please contact the Scandit support to request a different license key.Explanation:- Youare using the wrong license key, this license key is for another another platform.Please check it in your account.- The terms and conditions of your licensedo not include support forthat platform.Please contact the Scandit support to request a different license.
Error 15: The Scandit SDK validation failed. Your app ID does not match the license key's app ID. Please change the app identifier of your app or acquire a new license key that matches your application identifier.Explanation:Youare using the wrong license key, that bundle IDis not included. Please change the app identifier of your app or acquire a new license key that matches your application identifier. See more details here.
Error 17: The Scandit SDK validation failed. Your license key does not include support for this SDK version. Please contact the Scandit support to request a different license key.Explanation: The terms and conditions of your license do not include support forthat version. Please contact the Scandit Support to request a different license.
Error 18: The provided Scandit SDK license key is invalid. Please set a valid license key in your application.Explanation: The licensekey is not valid (wrong license key).
Available since 4.16.
______________________________________________________________________________
Errors before 4.16 (since 4.12):
Error 6: Connect your device to the network and restart the application. Network is mandatory for the Testlicense.
- You are using a Test license and you don't have internet connection.
Note: In Android:check you have added the Internetpermission (<uses-permissionandroid:name="android.permission.INTERNET"/>)
Error 11: The Scandit app key validation failed. Make sure your app key is valid, has not expired and you have available device activations.
- Theapp key is not valid (wrong key).
- Thekey has expired.
- You have reached your device limitations.
You can check it in your account.
Error 12: The Scandit app key validation failed. The provided key is not a valid Scandit license key.
- The license is not set. Please be sure the key is set before the picker is created.
- The key format is not correct.
View ArticleThe Enterprise Browser for Android is typically distributed via MDM systems.The screenshots in this guide are fromMobileIron Cloud, these instructions apply to MDM/EMM solutions from most vendors.
1. Add Application to app catalog and configure distribution
You can distribute our app directly from the Google Play Store. Search for "Enterprise Browser" in the admin console for your EMM/MDM solution and add it to your app catalogue.
3rd-Party Instructions:
MobileIron Cloud: App Catalog, App Configuration
VMWare Airwatch: Add Public Applications from an App Store
IBM MaaS360 Mobile Device Management (SaaS): Adding a Google Play App to the App Catalog
SOTI MobiControl: Adding an Google Play Store Application to an Application Catalog Rule
2. Set Enterprise Browser deployment code
To automatically synchronize your Enterprise Browser configuration with Scandit, you need to set the deployment code in the management console of your MDM/EMM solution. Once set, your users won't have to manually activate the Enterprise Browser via QR code and configuration chances are automatically distributed to all devices.
Login on ssl.scandit.com
Select "Projects" on the left-hand menu and press "DETAILS" for your Android deployment.
At the top of the page, just below the QR code for your deployment, click "Show Deployment Code" and copy-paste the displayed code. This is the code you need to set in your MDM/EMM system.
In your MDM system, copy-paste this value in the "Managed Configurations" section. Please note that this screen might look different in your EMM/MDM system.
View ArticlePlease check the following document for the technical specifications of our SDK:
Platform
iOS
Android
Windows
Linux
Minimum OS version
SDK 5.x: iOS 8
SDK 6.x
SDK 5.x: Android 4.1 (API level 16)
SDK 6.x
Windows 10
glibc 2.23 (recommended distribution: Ubuntu 18.04)
Architectures
ARMv7, ARM64, x86, x86_64
ARMv7, ARM64, x86, x86_64
x86, x86_64
ARMv6, ARMv7, ARM64, x86, x86_64
If you havent done so, we encourage you to download our demo app ( Android / iOS / Amazon Kindle / Windows ) and if youre ready to integrate our SDK in your own app, to get our 30 day trial SDK.
If you are interested in more information please contact our support team.
View ArticleRunning the library on Chrome or Safari, you may have noticed the following error:
wasm streaming compile failed: TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'., falling back to ArrayBuffer instantiation.
Please feel free to ignore this. It refers to streaming compilation that is currently only supported on Firefox. On other browsers, we fall back to a different method.
This should not impact your ability to load the library and scan.
However, if you cannot scan with your implementation, you can check out this article.
View ArticleAt this point, MatrixScan is not available in the Web SDK as the processing power and camera access level in the browser is insufficient for performant Matrix Scan tracking.
However, you can still scan multiple barcodes at once using setMaxNumberOfCodesPerFrame.
If you want to display information on a barcode in the view, you can simply display it at the bottom of the view when a barcode is scanned.
View ArticleThe StartStopException could be caused by the fact that the VideoInputRT.FrameAcess class is not marked as "activateable". This needs to be done in the app manifest using the extension element.
Check the extensions section looks like this:
<Extensions> <Extension Category="windows.activatableClass.inProcessServer"> <InProcessServer> <Path>VideoInputRT.dll</Path> <ActivatableClass ActivatableClassId="VideoInputRT.FrameAccess" ThreadingModel="both"/> </InProcessServer> </Extension></Extensions>
View ArticleUnfortunately, the video feed cannot be accessed in Chrome, Firefox and WebViews of apps such as Facebook or LinkedIn due to iOS restrictions (the video feed is accessed through getUserMedia which is currently not available in these WebViews on iOS).
However, if the WebView has access to the native camera (parent app permission dependent), then you can decode from a single image captured via the camera.
View ArticleThis warning indicates that the Direct Rendering Infrastructure (DRI) is not available or accessible on your platform. While this infrastructure reduces the overhead to send commands to the graphics hardware, it is not required to run Scandit SDK. Missing DRI support can either be caused by incorrect or not properly installed graphics drivers or drivers that are lacking DRI support.
View ArticlePlease note that you need a valid Scandit Keyboard Wedge subscription to follow the steps below. Learn how to Sign Up for a free 14-day trial.
1. To testthe Scandit Keyboard Wedge, you first need to download it from the Google Play Store.
Scandit Keyboard Wedge on Google Play
relevant project
2. Open the app and grant the Keyboard Wedge camera accessso it can scan barcodes.
3. Once it has access, scanthe setup codeshown onyour Keyboard Wedge Dashboard to pair the app with your subscription ( login here ). You will find the QR code in the details of the.
4. Once you scanned the QR code, follow the instructions of the app to enable the keyboard. If you do not get the instructions, you will find the Scandit Wedge Keyboard in Settings > Language and Input > On-screen keyboard > Manage Keyboards.
5. Switch the keyboard to use the Scandit Wedge.
Once you have finished all steps, the Keyboard Wedge will now be present whenever the keyboard is open. You will have a button at the top to start scanning.
View ArticleAndroid:Android 5.0 or newer
Windows:Windows 10 64bit
iOS:The wedge requires iOS 10 or newer.
View ArticleOnly test licenses require an internet connection during scanning. Our production licenses do not required a continuous internet connection. Feel free to reach out to us for further details.
View ArticleThe chromium engine used for web views is probably outdated. Please update Google Chrome, close all apps and reboot your device to solve it.
View ArticleIt seems that your CSP is set-up incorrectly.Our worker is a BLOB, using the worker-src policy is correct but only works in some browsers. For Safari, you will need to add our BLOB to the child-src of the policy.
You can use the below links for more information: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src
View ArticleGo to https://ssl.scandit.com/licenses/create?web_license=true (login required) and set a name and a domain name to your license key.How to get my domain name?The domain name is the part of the URL that lies after the https://and before the path. For example, if the URL your scanner lies in ishttps://www.example.com/scanner, you will want to create a license key for the domain namewww.example.com.Careful: domain names are case-sensitive and can sometimes have a different prefix thatwww.
View ArticleiOS has a somewhat heavy-handed implementation of user permissions for camera access in the Safari browser. The permissions are not persistent, and re-requested with every page load.
If you have a single-page app, you should expect to grant camera access once per application load.
However, if you're loading the page each time you need to scan, you will see the camera permission dialog. Whenever possible, we recommend implementing your workflow without reloading the page.
However, this issue has been resolved by iOS 13 as written here (Per-site settings): https://www.apple.com/au/ios/ios-13-preview/features/. Please find here how to grant camera access to your website: https://stackoverflow.com/questions/48847388/how-to-permanently-allow-usage-of-camera-on-trusted-websites-with-ios-safari/57368061#57368061.
Permissions are persistent on OSX and Chrome on Android, and are asked with every camera load on Firefox.
View ArticleAt this moment, OCR / text recognition is not available in the Web SDK.
As a workaround, you can get access to the last seen frame via ImageData to be used with a separate OCR implementation.
We are looking for feedback to prioritize adding text recognition in the browser, so please email us at [email protected].
View ArticleiOS 13 ships with an update to Safari that causes the browser to crash on selected iOS devices when using the Scandit SDK for the Web. We introduced a workaround in version 4.4.0 of the Scandit SDK for the Web to avoid these crashes.
For more details, please read the release notes. We encourage you to update as soon as possible by deploying the updated latest SDK for the Web release. If you are updating from a version older than 4.0.0, please have a look at our migration guide.
View ArticleYou can find the release notes within our documentation. See links to the documentation of each platform here.
View ArticleReactNative 0.60 introduced autolinking to link native modules through CocoaPods based on apodspecfile. Currently, the Scandit ReactNative package is not distributed through CocoaPods, neither does it include apodspecfile, so the autolinking process fails.
The SDK version 5.12 of the Scandit ReactNative package is providing a solution to this issue, so ReactNative is able to autolink the Scandit libraries that are necessary for the ReactNative package to work.
The next major 6.x Scandit SDK version of ReactNative (on the roadmap for Q4 2019) will provide full CocoaPods support for both the native libraries and the ReactNative package, so itll be considerably easier to add our package to a ReactNative project.
View ArticleIf you cannot scan a specific barcode, the following articles should help you resolve the issue:
- Scan a specific code
- Symbologies' properties
When you have verified all of the above and you still cannot scan the code, contact us at Submit a Support Request with details on the device you are using and a sharp image of the barcode.
View ArticleIf you are getting the following error:
Native linking failed, undefined Objective-C class: SBSBarcodePicker.The symbol '_OBJC_CLASS_$_SBSBarcodePicker' could not be found in any of the libraries or frameworks linked with your application.
Please check you have incremental builds disabled (Options-->iOS Build).
View ArticleOur Angular library supports Angular 7.x and above.
View ArticleWe currently don't support any APIs to implement custom keyboards. We recommend implementing any custom keyboards in JS (e.g. based on existing projects such as https://github.com/hodgef/simple-keyboard ).
View ArticleThe above sizes are for the files minified and gzipped. Keep in mind that you will not need to wait for these files to download to display your webpage/web application, they can be downloaded and prepared in the background without affecting the rest of the application (the Scandit Engine library is also always automatically downloaded and prepared asynchronously in a separate thread). On browsers supporting caching of WebAssembly compiled data, given resources served with correct standard HTTP caching headers and statuses, the Scandit Engine library WASM file can be pre-compiled and cached to be reused for subsequent loads.
View ArticleYou must access your website/web application served from a secure origin (HTTPS or local IP) in order to access video camera video streaming due to browser restrictions. For development purposes, you can set up a self-signed certificate, proxy, or just quickly set up a service like ngrok to instantly get a secure URL to your localhost server.In the event you cannot use one of the above solution with your development servers, you may remove the https restriction on your test devices: On Chrome: Configure the flag: chrome://flags/#unsafely-treat-insecure-origin-as-secure On Safari: Enable in the menu: Develop > WebRTC > Allow Media Capture on Insecure Sites
View ArticleThe stripping of leading FNC1 characters in GS1 Code128 and DataMatrix codes can be configured through a symbology extension (strip_leading_fnc1). See this article to learn how to set it.
By default, the value is set to true, the SDK strips of the leading FNC1 characters in GS1Code128 and DataMatrix. You can set it to false if you want to add the missing symbols.
Available since 5.3
View ArticleIf you want to integrate Scandit SDK to your own application, you need to get the bundle ID/ application ID of your application so you can set it when generating the license key.
How to get it?
For iOS
Every iOS app requires an "App ID" to work. This is a string that is set up during development, usually in the form of com.your-company.app-name. Note that "App ID" and "Bundle ID" is generally used interchangeably.
Open you project with XCode, select the top project item in the project navigator at the left. Then select TARGETS -> General. Bundle Identifier is found under Identity. https://linux.die.net/man/3/program_invocation_short_name
For Android
Every Android app requires an "applicationId". This is a string that is set up during development, usually in the form of com.example.yourapp in your Gradle build.config. Please note that "applicationId" and "Bundle ID" is generally used interchangeably.
For Phonegap
Open the config.xml file and look for<widget id="com.example.app">
For Xamarin
Android
Go to Project Options --> Build --> Android Application --> Package name.
iOS
Open the Info.plist file and look for "CFBundleIdentifier" :
For React Native
Same as iOS and Android Native.
For Windows
For Windows UWP applications, open the Package.appxmanifest file. There is a tab called "Packaging" and inside there is a text box named "Package name".
For Windows C# console application, use the program name. Please find more information about how to get the executable name here:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx
For Linux
You need to enter the program invocation name of your linux executable. ()
View ArticleIf you can't access the camera in your implementation, there are a couple of things to check:
Are you using a supported browser ?
Are you either testing on localhost (you need to be on the device that serves this host) or with https (this is a browser security requirement)?
Are you able to access the camera with our demo at websdk.scandit.com ?
If our demo runs, but your code doesn't, send a code snippet to [email protected] and we can help you troubleshoot.
If you cannot access the camera with our demo either, can you load https://test.webrtc.org/ ?
If you're able to access the camera on the WebRTC test site, but not in our demo, please let us know at [email protected] reaching out, please include the device, OS version, and browser you are using.
If you're unable to access the camera using the WebRTC test site, you can try the following 3 things:
Reboot your device.
Try a different supported browser (e.g., Firefox instead of Chrome).
Check if your browser has settings that globally deny all camera access.
If all fails, it means that the device you're using cannot access the camera in the browser (due to an old operating system or limitations from the manufacturer).
View ArticleWhen opening the Web SDK in multiple browser tabs in Safari, the subsequent tabs will not be able to access the camera if the camera has not been paused.
You can detect when a browser window is out of focus, and pause scanning by using pauseScanning and setting the pauseCamera argument to "true".
View ArticleThere are two possible solutions to this issue:
Update to the latest version of our library to make sure you are compatible with Safari's latest release. Our migration guides can help you to update.
Theres currently a problem in Safaris own debugger, which causes it to use an increasing amount of memory while recording metrics. The issue is specifically caused by recording data through the debuggers Javascript & Events event category, under Timelines. When using the debugger, please disable Javascript & Events recording, or pause the scanning process while recording information.
View ArticleYou probably have generated a key that does not fit the current domain name you are using. Please make sure that you included the "www." if relevant.For example, if the full URL you are testing on is:
https://www.example.com/path-to-scanner
you will need to generate a web license key for:
www.example.com
You can generate a key on ssl.scandit.com/licenses.
View ArticleTo pinpoint the issue, you can have a look at the messages logged by the console:
https://developers.google.com/web/tools/chrome-devtools/console/log
https://www.wickedlysmart.com/hfjsconsole/
With this additional information, you should be able to find the answer in our FAQ or our documentation.
The Scandit SDK for the Web is tested and heavily used every day, you should find most of the answers you need in our FAQ (or on Google for issues not linked to our SDK). If you still think you found a bug or you are missing a feature, please contact us at [email protected].
View ArticleIf you cannot scan a specific barcode, the following should help you resolve the issue:
Install our Scandit demo app from the Apple Store or Google Play Store
Open the Any Code mode
Scan the barcode
This will give you information about the symbology (e.g., EAN 13, QR code, ) and the symbol counts (if relevant). Then, check that:
The symbology is enabled in your code. To enable a symbology, use the enableSymbologies() method.
Symbol counts: some symbologies have only certain code lengths that are enabled by default (see defaults here: symbologies ). To change it, use the setActiveSymbolCount() method. Assuming you have already defined `scanSettings` and want to change the symbol counts for code 39 to scan from 14 to 22, you would use:
code39Settings = scanSettings.getSymbologySettings(ScanditSDK.Barcode.Symbology.CODE39);code39Settings.setActiveSymbolCounts([14, 15, 16, 17, 18, 19, 20, 21, 22]);
When you have verified all of the above and you still cannot scan the code, contact us at http://www.scandit.com/contact-us/ with details on the device you are using and a sharp image of the barcode.
View ArticleThat is normal behavior and won't affect final users in any way:
- If the intervention is about blocked vibrate calls: some browsers won't allow vibration requests to be called by our library if the user hasn't first touched/clicked the page, and will block these calls (outside from normal JavaScript code execution).
- If the intervention is about non-passive event listeners: we need to actively listen for scroll events inside theBarcodePickercomponent in order to provide our camera zoom functionality on supported browsers/devices. Rest assured that due to their limited scope and functionality these listeners won't actually affect the performance of your webpage in any way.
View ArticleThat is normal behavior and won't affect final users in any way: some browsers won't allow audio to be played by our library (on scan) if the user hasn't first touched/clicked the page, and will block the first audio initialization calls (outside from normal JavaScript code execution). Audio will, however, play as expected after the first user interaction.
View ArticleYou must access your website / web application served from a secure origin (HTTPS or local IP) in order to access video camera video streaming due to browser restrictions. For development purposes you can set up a self-signed certificate, proxy, or just quickly set up a service like ngrok to instantly get a secure URL to your localhost server.
View ArticleApple released iOS version 11.2.2 on January 8, 2018, as an emergency update meant to mitigate the effects of the widespread Spectre vulnerability.
This update also included changes related to WebKitand the Safaribrowser, as documented here. Unfortunately this update also introduced a critical WebAssembly bug, which causes this and many other libraries relying on this technology to randomly crash and fail to access memory with `Out of bounds memory access` errors.
Visitors to our demo at https://websdk.scandit.com or to your library implementation may get stuck on application loading or may be unable to scan.
As a workaround, we recommend that you do not show the barcode scanning functionality to users accessing your website using a 11.2.2 or 11.2.5 device.
This issue has been resolved by Apple in 11.3.
View ArticleUnlike other browsers, Firefox on mobile does not have an "always allow" option for accessing the cameraand permissions should be asked each time the camera is shown (even in the same browser session).
If you would like to add your voice to this debate, we would much appreciate it:
https://bugzilla.mozilla.org/show_bug.cgi?id=1250872
View ArticleOlderSafariversions provide limited support to access audio and video media devices via standard web technologies (WebRTC): the available maximum resolution was capped at 1280x720. This is unfortunately out of our control, but a fix for it has already been released by Apple in iOS version 12.3.
View ArticleThere's currently a problem in *Safari*'s own debugger, which causes it to display inaccurate JavaScript memory usage in the "Timelines" tab under "Memory" when data is transferred to WebWorkers. This incorrect measurement which seems to increase forever to impossible numbers can be safely ignored. instead, you can look at the actual "JavaScript Allocations" information in the same tab, showing stable low memory usage of a few megabytes. The Safari app's actual global memory usage can also be verified to be under control.
View ArticleIf the scanner is not beeping, vibrating, or you are not seeing the buttons to switch the torch state or to change the camera, the app likely does not find the resources for it. Make sure that after you have copied the framework into your project you also copy the framework's bundle into the project. For this right click on the ScanditBarcodeScanner framework inside your project and select "Show in Finder". Go to ScanditBarcodeScanner.framework/Resources and drag and drop ScanditBarcodeScanner.bundle into your Xcode project. It should look the following way:
View Article
If for some reason nothing is happening after scanning check that
you have set the SBSBarcodePicker::scanDelegate correctly.
the barcodePicker:didScan: method is really executed (by for example adding a breakpoint inside it).
you are executing the code in the correct thread. The SBSScanDelegate method is invoked on a picker-internal queue. To perform any UI work, you must dispatch to the main UI thread. The same goes for other thread specific operations like performing CoreData changes where you have to make sure that you are inside the thread the managed context lifes in.
View ArticleIf you are getting the following when compiling the BarcodeScannerWin8:
The type or namespace name 'WinRTContainer' could not be found (are you missing a using directive or an assembly reference?)
Uninstall and install the Caliburn.Micro NuGet package from the solution. This will resolve the missing assembly reference error. Right-click on the solution, select "Manage NuGet Packages..." and open the Installed tab to remove Caliburn.Micro from the list of installed packages. Then reinstall the package by downloading it again from the NuGet package repository.
View ArticleWindows has a maximum file path length which means that it is not possible to create new folders after a certain depth in the file system has been reached. Since adding a plugin copies files in an already quite deep folder structure an install can fail because the maximum file path length has been reached and the system fails to copy all the files necessary. To avoid this move your project as high up in the file system as possible (to something like C:\yourProject).
View ArticleThe successCallback is called in the engine thread. You have to switch to the main thread for any UI specific operations like removing the scanner from the view hierarchy etc. The easiest way of doing this is by using setTimeout:
picker.setSuccessCallback(function(e) { picker.stopScanning(); setTimeout(function() { // Code that manipulates the UI. }, 1); });
View ArticleMinimum supported versionfor Cordova:
SDK
iOS
Android
Windows
4.7 - 4.16
v.3.9.2 (Cordova CLI version 6.0.x)
v.4.0 (Cordova CLI version 5.0.x)
v.5.0.0 (Cordova CLI version 7.0.0)
>5.0
v. 4.0.0 (Cordova CLI version 6.0.x)
v.4.0 (Cordova CLI version 5.0.x)
v.5.0.0(Cordova CLI version 7.0.0)
View ArticleThe Scandit SDK for Android supports Apache Ant and Gradle.
View ArticleThe Scandit SDK for PhoneGap Android no longer supports Apache Ant. Gradle isthe recommended build system.
View ArticleIf you are running a Xamarin Android app and the screen is black or fails with the message "The device failed to give access to the camera":
- Check that the startScanning function is called.
- Check that your app has permission to use the camera. For this go to your project settings under "Android Application" and look through the "Required permissions", make sure that the Camera has a checkmark. Additionally,checkthe value for "Target Android version". If the target version is below Android 6.0/ (API level 23) there are no additional changes needed. Otherwise, you will have to make further adjustments as the Android permission system has changed with version 6.0:
Check that you are asking for specific permissions during runtime (simply listing them in the manifest does not guarantee permissions anymore). You can find Xamarin specific information on this at https://blog.xamarin.com/requesting-runtime-permissions-in-android-marshmallow/
Decrease the target Android SDK version to a value lower than 23, which will disable the new permission system. Alternatively you can also directly change the target SDK version by editing the AndroidManifest.xml and adjust targetSdkVersion there:
<uses-sdkandroid:minSdkVersion="10"android:targetSdkVersion="22"/>
- Check your app's permissions in the app manager of your Android device. It is possible that for some reason you declined to give it camera permission at an earlier point in time.
-Check that hardware acceleration is set to ON (if Android API level < 14)
View ArticleYUV or gray scale formats with a HD resolution (1280x720) is preferred. For very small codes (< 7mil) the FullHD resolution can be considered (1920x1080).
View Article