Database
This page covers the description of databases

Contents

Introduction

The database stores the document data. If you need to recognize the document type and extract the visual zone data, the application must contain the db.dat file. If MRZ, barcode recognition or image cropping is performed, there is no need to include the database (db.dat file) in the application.
If you have the database in the app and want to add a new version, please do not forget to increase the app's version.

Adding the database to the application

Manually

This is the only option for applications that need to work offline.
Follow the link licensing.regulaforensics.com. Select the "Databases" page and download the database available there. After this, create the folders assets and Regula in your project and add the db.dat file to the app/src/main/assets/Regula folder.
Once you build and run the project, the database will be included in the application and processed by the SDK.

Using the prepareDatabase method

This option requires an Internet connection as the database will be downloaded from our server over the Internet.
Java
Kotlin
1
DocumentReader.Instance().prepareDatabase(MainActivity.this, "Full", new IDocumentReaderPrepareCompletion() {
2
@Override
3
public void onPrepareProgressChanged(int progress) {
4
// getting progress
5
}
6
7
@Override
8
public void onPrepareCompleted(boolean status, Throwable error) {
9
// database was prepared
10
}
11
});
Copied!
1
DocumentReader.Instance().prepareDatabase(this@MainActivity, "Full", object : IDocumentReaderPrepareCompletion {
2
override fun onPrepareProgressChanged(progress: Int) {
3
// getting progress
4
}
5
6
override fun onPrepareCompleted(status: Boolean, error: Throwable?) {
7
// database was prepared
8
}
9
})
Copied!
Note: "Full" - the ID of the database that has to be downloaded.
When the operation is completed successfully, the database will be added to the resources of the application.
If the database is not compatible with the SDK, or it is not included in the app at all, it will be downloaded when you use this option. When the downloaded database becomes incompatible with the SDK version that you are using or when you remove it from the app, it will be downloaded again as soon as this function is invoked.

Using the runAutoUpdate method

This option requires an Internet connection as the database will be downloaded from our server over the Internet.
Java
Kotlin
1
DocumentReader.Instance().runAutoUpdate(MainActivity.this, "Full", new IDocumentReaderPrepareCompletion() {
2
@Override
3
public void onPrepareProgressChanged(int progress) {
4
// getting progress
5
}
6
7
@Override
8
public void onPrepareCompleted(boolean status, Throwable error) {
9
// database was prepared
10
}
11
});
Copied!
1
DocumentReader.Instance().runAutoUpdate(this@MainActivity, "Full", object : IDocumentReaderPrepareCompletion {
2
override fun onPrepareProgressChanged(progress: Int) {
3
// getting progress
4
}
5
6
override fun onPrepareCompleted(status: Boolean, error: Throwable?) {
7
// database was prepared
8
}
9
})
Copied!
Note: "Full" - the ID of the database that has to be downloaded.
When the operation is completed successfully, the database will be added to the resources of the application.
If the database is not compatible with the SDK, or it is not included in the app at all, it will be downloaded when you use this option. This method downloads each update of the database if a newer version is available on our server, otherwise, nothing will be downloaded/updated.

Removing the database from the application

It is possible to remove the added database:
Java
Kotlin
1
DocumentReader.Instance().removeDatabase(MainActivity.this);
Copied!
1
DocumentReader.Instance().removeDatabase(this@MainActivity)
Copied!

Canceling the database update

It is possible to cancel the database update:
Java
Kotlin
1
DocumentReader.Instance().cancelDBUpdate();
Copied!
1
DocumentReader.Instance().cancelDBUpdate()
Copied!

FAQ

I don't want to use a database that includes all documents of the world. Is it possible to create a custom database with certain documents?

Yes, sure. Please reach out to us at [email protected] if you need a custom database, and tell us which document(s) of which country(ies) it should contain.

What is the difference between the prepareDatabase and runAutoUpdate methods?

The difference between prepareDatabase and runAutoUpdate is that the first one will not download a new version of the database until the current version is incompatible with the SDK, whereas the runAutoUpdate method will download a new version every time it is available on our server.

Which option should I use if my application needs to work offline?

Choose the manual option. This is the only option if the app needs to work offline.

When should I invoke a method that adds the database to the app?

Before the initialization process is started.

Which option(s) should I use so that the app package size is not increased?

You need to choose either the prepareDatabase or runAutoUpdate method.
Last modified 2mo ago