Skip to main content

Ready to use UI | Android Document Scanner

The Ready-To-Use UI (RTU UI) is a set of easy to integrate and customize high-level UI components (Activities) for the most common tasks in Scanbot SDK:

  • Document Scanner - DocumentScannerActivity
  • Cropping - CroppingActivity
  • MRZ Scanner - MRZScannerActivity
  • Barcode and QR-Code Scanner - BarcodeScannerActivity
  • Multiple Barcode and QR-Code Scanner - BatchBarcodeScannerActivity
  • European Health Insurance Card Scanner - HealthInsuranceCardScannerActivity
  • Multiple Objects Detector - MultipleObjectsDetectorActivity
  • ID Card Scanner - IdCardScannerActivity
  • Generic Text Data Scanner - TextDataScannerActivity
  • License Plate Scanner - LicensePlateScannerActivity
  • Customizable Workflow Scanner - WorkflowScannerActivity
  • NFC Passport Reader - NfcPassportScannerActivity

The design and behavior of these ready-to-use Activities are based on our many years of experience as well as the feedback from our SDK customers.

Customization#

  • UI: All colors and text resources (localization).
  • Behavior: Enable or disable features like Multi Page, Auto Snapping, Flashlight.
  • Use in workflows of your app: e.g. Your Main Activity => Scanbot Document Scanner Activity => Your Custom Review Activity => Scanbot Cropping Activity => Your Custom Document Handling...

Please note: The main idea of the RTU UI is to provide simple-to-integrate and simple-to-customize Activity components. Due to this idea there are some limitations with the possibilities of customization. If you need more customization options you have to implement custom Activities using our "Classical SDK UI Components".

Integration#

Dependencies#

The RTU UI components are distributed as a separate package. Add it as a dependency to your project:

implementation "io.scanbot:sdk-package-ui:$scanbotSdkVersion"

Get the latest $scanbotSdkVersion from the Changelog.

Initialize SDK with RTU UI#

In order to use the RTU UI components you have to initialize the Scanbot SDK using the new ScanbotSDKInitializer class from the new Java package io.scanbot.sdk.

In your Application class:

import io.scanbot.sdk.ScanbotSDKInitializer
override fun onCreate() {    ScanbotSDKInitializer()      // .license(this, "YOUR_SCANBOT_SDK_LICENSE_KEY")      .initialize(this)
    super.onCreate()}

It is still required to enable all the needed components for the screen being used. For example, for using the MRZ scanner it is vital to make a call prepareMRZBlobs(true).

Accessibility customization#

Document Scanner and CroppingActivity provide an ability to customize Text resources for the accessibility feature. User can set a custom configuration DocumentScannerAccessibilityConfiguration in DocumentScannerConfiguration or CroppingAccessibilityConfiguration in CroppingConfiguration. Here is an example:

val cameraConfiguration = DocumentScannerConfiguration()
cameraConfiguration.setAccessibilityConfiguration(    DocumentScannerAccessibilityConfiguration(        "Flash button",        "Change flash state",        "Multi page button",        "Change multi page state",        "Auto snapping button",        "Change auto snapping state",        "Cancel button",        "Go back to the previous screen",        "Page counter %d",        "Press to go to the results screen",        "Shutter button",        "Press to take a snap"    ))
val intent = io.scanbot.sdk.ui.view.camera.DocumentScannerActivity.newIntent(this@DefaultUIPreviewActivity,        cameraConfiguration)startActivityForResult(intent, CAMERA_DEFAULT_UI_REQUEST_CODE)
val editPolygonConfiguration = CroppingConfiguration()
editPolygonConfiguration.setPage(page)
editPolygonConfiguration.setAccessibilityConfiguration(CroppingAccessibilityConfiguration(    "Cancel button",    "Go back to the previous screen",    "Done button",    "Finish the flow",    "Detect the polygon",    "Automatically detect the polygon",    "Reset the polygon",    "Discard the current polygon",    "Rotate",    "Rotate the image clockwise"))
val intent = io.scanbot.sdk.ui.view.edit.CroppingActivity.newIntent(        applicationContext,        editPolygonConfiguration)startActivityForResult(intent, CROP_DEFAULT_UI_REQUEST_CODE)

Examples and Java Docs#

For more details about the RTU UI Components please check our Example App ready-to-use-ui-demo:

and Java API Docs: