Show scanner

This page covers the description of how to open the camera activity

Show scanner

After the initialization is completed and the scenario is set, you can start document scanning process. There are several options on how to open the camera activity.

#1

Use this method to open camera preview activity using the default back camera, which will pass frames for recognition and return results in the completion block when they are ready. Activity will be opened from the context which has been passed to the method:

Java
Kotlin
Java
DocumentReader.Instance().showScanner(MainActivity.this, completion);
Kotlin
DocumentReader.Instance().showScanner(this@MainActivity, completion)

#2

Use this method to open camera preview activity using the specified camera, which will pass frames for recognition and return results in the completion block when they are ready. Activity will be opened from the context which has been passed to the method:

Java
Kotlin
Java
DocumentReader.Instance().showScanner(MainActivity.this, 0, completion);
Kotlin
DocumentReader.Instance().showScanner(this@MainActivity, 0, completion)

Completion callback

The current results are returned in the completion block from each camera shot with different actions (DocReaderAction enum) during the scanning process:

  • COMPLETE - scanning process was finished

  • PROCESS - scanning process is not finished, you can get an intermediate result from the completion block

  • CANCEL - scanning process was canceled by the user

Java
Kotlin
Java
private IDocumentReaderCompletion completion = new IDocumentReaderCompletion() {
@Override
public void onCompleted(int action, DocumentReaderResults results, Throwable error) {
// processing is finished, all results are ready
if (action == DocReaderAction.COMPLETE) {
// scanning process was finished
} else {
// something happened before all results were ready
if (action == DocReaderAction.CANCEL){
Toast.makeText(MainActivity.this, "Scanning was cancelled",Toast.LENGTH_LONG).show();
} else if(action == DocReaderAction.ERROR){
Toast.makeText(MainActivity.this, "Error:" + error, Toast.LENGTH_LONG).show();
}
}
}
};
Kotlin
private val completion = IDocumentReaderCompletion { action, results, error ->
// processing is finished, all results are ready
if (action == DocReaderAction.COMPLETE) {
// scanning process was finished
} else {
// something happened before all results were ready
if (action == DocReaderAction.CANCEL) {
Toast.makeText(this@MainActivity, "Scanning was cancelled", Toast.LENGTH_LONG).show()
} else if (action == DocReaderAction.ERROR) {
Toast.makeText(this@MainActivity, "Error:$error", Toast.LENGTH_LONG).show()
}
}
}

Close scanner

Allows to close scanner, i.e. camera activity:

Java
Kotlin
Java
DocumentReader.Instance().stopScanner(MainActivity.this);
Kotlin
DocumentReader.Instance().stopScanner(this@MainActivity)