Skip to content

Laser Scanner

SAP BTP SDK for Android supports scanning with the following devices:

  • Device built-in scanner
  • IPCMobile scanner connected to a device via the QWedge app
  • ProGlove scanner connected to a device via the Insight Mobile app
  • Knox Capture app scanning on Samsung XCover devices

A set of APIs is provided for client code to trigger scans and retrieve scan results from the device's built-in scanner or third-party scanners, such as IPCMobile, ProGlove, and the Knox Capture app scanner.

Supported Laser Scanners: Built-in Scanner, IPCMobile Scanner, ProGlove Scanner Support and Knox Capture App

SAP BTP SDK for Android offers APIs to integrate the device built-in laser scanner into your app. It currently supports only Zebra and Honeywell devices, using the DataWedge intent-based API.

The same intent-based API is supported for the IPCMobile scanner connected via the QWedge app, the ProGlove scanner connected to the device via the Insight Mobile app installed on the device, and the Knox Capture app scanning on SamSung XCover device.

These APIs include the functions to detect if the built-in laser scanner is enabled, trigger a scan, and retrieve scan results. Additionally, for the IPCMobile scanner and ProGlove scanner, there's an extra API to check if the QWedge app and the Insight Mobile app are installed on the device.

Note

Detecting App info on the device may raise privacy concerns. To support IPCMobile scanner and ProGlove scanner, client code must explicitly depend on the module that includes the app detection API. It's also necessary to declare potential App info detection in privacy notice if needed.

Register Listeners

The ScannerUtil.registerListeners(context: Context, listener: ScannerReceiver.OnResultReceivedListener) API allows client code to register a broadcast receiver for receiving data and provide its own logic when data is received. The logic is provided by implementing the ScannerReceiver.OnResultReceivedListener callback listener.

Once the scan is complete, client code should call the ScannerUtil.unRegisterListener(context: Context, listener: ScannerReceiver.OnResultReceivedListener) API to unregister the listener. When all the listeners are unregistered, the broadcast receiver will be unregistered automatically.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
```kotlin
val listener = object : ScannerReceiver.OnResultReceivedListener {
        //notify received barcode
        override fun onBarcodeDetected(barcode: String?) {
            textView.setText(barcode)
        }

        //notify if laser scanner is enabled
        override fun onScannerDetected(enabled: Boolean) {
            laserEnabled = enabled
        }
    }
val scannerUtil = ScannerUtil("com.fioriscan.ACTION")
scannerUtil.registerReceivers(this, listener)
```

Trigger a Scan

If a built-in laser scanner is enabled on the device, the client code can check whether soft scan is enabled on the device by calling the ScannerUtil.isSoftScanSupport(context: Context) API and triggering a scan using the ScannerUtil.startSoftScan(context: Context) API.

Detect Support for Companion Scanners

The Companion scanner connects to a device through a third-party application provided by the scanner vendor, which must be installed on the device. The SDK now supports IPCMobile and ProGlove scanners. To support IPCMobile and ProGlove scanners, the device must install the QWedge app to connect to IPCMobile scanner and the Insight Mobile app to connect to ProGlove scanner. To avoid potential privacy issues, the SDK has placed the API for detecting app installations in a separate module. If the client needs scanner support, they must explicitly depend on the module com.sap.cloud.android:companion-scanner-detect and invoke the CompanionScannerDetectUtil.requestScannerStatus(context: Context) API before using the scan API.

Set Screen for ProGlove Scanners

For ProGlove scanners with a display screen, the client code can set the display screen by calling the ScannerUtil.sendScreenToProGlove(context: Context, id: String, content: String, rightHeaders: String?, separator: String, durationMs: Int = 0, refreshType: String? = null) API.

Multiple Barcodes Scanning Support for Knox Capture App

The Knox Capture app supports scanning multiple barcodes. The receiver callback listener returns all scanned barcodes in a string, separated by commas.

Tested Devices

The SDK supports all IPCMobile scanners connected via the QWedge app, all ProGlove scanners connected via the Insight Mobile app, all Samsung XCover devices with the Knox Capture apps installed, and all Zebra and Honeywell devices that support intent-based APIs.

The SDK APIs have been tested on the following devices:

  • IPCMobile Nexus Connect Scanner
  • ProGlove MARK 3
  • ProGlove MARK Display
  • Galaxy XCover7
  • Galaxy Tab Active5
  • Zebra TC520K
  • Honeywell EDA51K

Last update: April 15, 2025