2. Dependencies and compatible devices
enioka Scan is split over multiple AAR dependencies, all available through the Maven Central repository, allowing you to only include the compatibility layers you need.
The compatibility matrix at the end of this page explains more clearly what devices are supported by each scanner provider, and how each device is detected by the library.
While most providers are standalone and include their own open-source SDK (artifact marked ‘os’, open source), some providers (artifact marked ‘cs’, closed source) still require proprietary code in order to work with their device. Depending on devices, this code can take the form of a JAR or AAR file made available to you by the vendor, or a companion app, service or SDK installed separately on the device. In the case of a library file, you will need to manually add the archive to your application’s classpath. If a required SDK is missing, the provider will simply not show up as compatible during use.
2.1. enioka Scan artefacts
Each artefact can be imported to your project as com.enioka.scanner:<artefact>:<version>:aar
.
2.1.1. enioka-scan-core
Core components of the library, required for it to work. It includes the scanner APIs, default scanning activity and service that manages the search and lifecycle of the scanners.
2.1.2. provider-os-camera
Includes the CAMERA_SCANNER
provider. It includes camera-as-a-scanner functionality, and
default camera layout for the scanner activity.
2.1.3. provider-os-athesi-e5l
Includes the AthesiE5LProvider
provider, adding support for Athesi E5L integrated devices.
This provider works only when the device name is strictly RD50TE
.
2.1.4. provider-os-athesi-spa43
Includes the AthesiHHTProvider
provider, adding support for Athesi SPA43 integrated devices.
This provider works only when the device name is strictly SPA43LTE
.
2.1.5. provider-os-bluebird
Includes the BluebirdProvider
provider, adding support for Bluebird integrated devices.
This provider requires the Bluebird service to be installed and enabled on your device, listening for the kr.co.bluebird.android.bbapi.action.BARCODE_OPEN
intent.
2.1.6. provider-os-generalscan-bt
Includes the BT_GeneralScanProvider
provider, adding support for GeneralScan bluetooth ring.
This provider requires the bluetooth device to respond to the “Get device ID” command.
2.1.7. provider-os-honeywell-bt
Includes the BT_HoneywellOssSppProvider
provider, adding support for Honeywell bluetooth scanners.
This provider requires the bluetooth device to respond to the “Get firmware” command.
2.1.8. provider-os-honeywell-integrated
Includes the HoneywellOssIntegratedProvider
provider, adding support for Honeywell integrated
devices.
This provider requires the Honeywell service com.honeywell.decode.DecodeService
to be installed
and enabled on your device.
2.1.9. provider-cs-postech
provider-cs-postech
Includes the BT_PostechProvider
provider, adding support for Postech ring scanners.
This provider could not be properly tested and may not work as expected.
2.1.10. provider-os-zebra-bt
Includes the BT_ZebraOssSPPProvider
and BT_ZebraOssATTProvider
providers, adding support for
Zebra bluetooth scanners using the SSI protocol (respectively classic and low energy).
BT_ZebraOssSPPProvider
requires the bluetooth device to respond to the “CAPABILITIES_REQUEST”
command and be a Bluetooth Classic (non-BLE) device.
BT_ZebraOssATTProvider
requires the bluetooth device to respond to the “CAPABILITIES_REQUEST”
command and be a Bluetooth Low Energy (BLE) device.
2.1.11. provider-cs-proglove
Includes the ProgloveProvider
provider, adding support for Proglove devices interfacing with their
application.
This provider requires the Proglove application package, de.proglove.connect
, to be installed and
enabled on your device.
2.1.12. provider-cs-honeywell
Includes the HONEYWELL_AIDC
provider, adding support for Honeywell AIDC (Intermec) integrated
devices.
This provider requires the “Android data collection” (AIDC), or Intermec, SDK, which needs to be
installed either in your application’s classpath or device to resolve com.honeywell.aidc.
packages.
This provider also requires the com.honeywell.decode.DecodeService
Android service to be installed
and enabled on your device.
2.1.13. provider-cs-koamtac
Includes the Koamtac
provider, adding support for Koamtac KDC-family bluetooth
scanners.
This provider requires an external SDK provided by Koamtac, which needs to be included in your
application’s classpath to resolve koamtac.kdc.sdk.*
packages.
2.1.14. provider-cs-m3
Includes the M3RingScannerProvider
provider, adding support for M3 ring devices.
This provider requires an external SDK, provided by M3Mobile, which needs to be included in your
application’s classpath to resolve com.m3.ringscannersdk.*
packages.
This provider also requires the Ring Scanner
companion app, which should be installed and enabled
on your device to resolve com.m3.ringscanner.*
packages.
2.1.15. provider-cs-zebra
Includes the following providers:
BtZebraProvider
: Support for most Zebra bluetooth devices.This provider requires an external SDK, provided by Zebra, which needs to be included in your application’s classpath to resolve
com.zebra.scannercontrol.*
packages.Zebra EMDK
: Support for Zebra EMDK integrated devices.This provider requires an external SDK, which should be installed on your device by default, to resolve
com.symbol.emdk.*
packages.
2.1.16. provider-os-zebra-dw
Includes the ZebraDwProvider
provider, adding support for most integrated devices supporting
the Zebra Datawedge service (TC26, TC27, TC55…).
Warning: there are multiple different providers that can manage those devices! Take care only to have the one you want enabled, using the include or exclude provider search parameters.
This provider requires the Datawedge service, in the form of the com.symbol.datawedge
application
package, to be installed and enabled on your device.
2.2. Compatibility matrix
This table aggregates all currently-available scanner providers and lists which devices they support, their external requirements if applicable, and how each provider detects compatible devices.
Artefact |
Provider name |
Supported devices |
Tested devices |
Device type |
External requirements |
Device compatible if |
---|---|---|---|---|---|---|
|
no provider |
Does not support any device alone, it is a required dependency. |
||||
|
no provider |
Any device with a camera |
Smartphones, integrated devices… |
Camera |
Device has a camera |
|
|
|
Athesi E5L |
Athesi E5L |
Integrated |
Device name is strictly |
|
|
|
Athesi SPA43 |
Athesi SPA43 |
Integrated |
Device name is strictly |
|
|
|
Bluebird integrated scanners |
Bluebird EF500 |
Integrated |
Bluebird service (should be preinstalled on device) |
Intent |
|
|
GeneralScan bluetooth ring scanners |
GeneralScan GS R5000BT |
BT Classic |
Bluetooth device responds to “Get device ID” command |
|
|
|
Honeywell bluetooth scanners |
Honeywell Voyager 1602g |
BT Classic |
Bluetooth device responds to “Get firmware” command |
|
|
|
Zebra bluetooth scanners using the SSI protocol |
Zebra RS5100 |
BT Classic |
Bluetooth device is not BLE and responds to “CAPABILITIES_REQUEST” command |
|
|
|
Zebra bluetooth scanners using the SSI protocol |
Zebra RS5100 |
BT Low Energy |
Bluetooth device is BLE and responds to “CAPABILITIES_REQUEST” command |
|
|
|
Any device compatible with Zebra Datawedge |
Zebra TC25, Zebra TC27 |
Integrated |
Zebra Datawedge service (should be preinstalled on device) |
Application package |
|
|
Honeywell integrated scanners |
Honeywell EDA52 |
Integrated |
Honeywell service (should be preinstalled on device) |
Intent |
|
|
Proglove devices interfacing with their application |
Proglove Glove Mark II |
BT Low Energy |
Proglove application |
Application package |
|
|
Honeywell AIDC / Intermec integrated devices |
Honeywell EDA50 |
Integrated |
AIDC SDK, Honeywell service (should be preinstalled on device) |
Intent |
|
|
Koamtac bluetooth KDC devices |
Koamtac KDC180 |
BT Low Energy |
Koamtac SDK |
Class |
|
|
M3Mobile bluetooth ring scanners |
M3 Ring Scanner |
BT Classic |
Ring Scanner SDK, Ring Scanner application |
Class |
|
|
Zebra bluetooth scanners |
Zebra RS6000, RS5100 |
BT Classic |
Zebra SDK |
Class |
|
|
Zebra EMDK integrated scanners |
Zebra TC25 |
Integrated |
Zebra EMDK SDK (should be preinstalled on device) |
Class |
2.3. Known issues
2.3.1. Zebra TC-25
The Zebra TC-25 device may experience issues with the camera preview, which may not display
correctly on screen orientation changes. One solution is to call orientationChanged()
, when
switching between portrait and landscape modes, on the CameraBarcodeScanView
instance. Sometimes,
the camera may be corrupted, and the preview will not display correctly.
2.3.2. Honeywell EDA52
The Honeywell EDA52 device may experience issues with the camera scanner, which may not be able to detect barcodes at all. This is probably due to some internal services not allowing the camera to be used correctly by the library. On the other hand, the integrated scanner works correctly.
2.3.3. Athesia SPA43LTE
The Athesia SPA43LTE device may experience a crash with the camera, when trying to access it using
the button on the demo app. The camera API used is the legacy Camera of android.hardware
.
When the camera is instantiated automatically (when it is the only provider available),
this crash does not occur.