UI Documentos Barcode - ReconoSERID/SDK-ReconoSERID-Android GitHub Wiki
Interfaz gráfica para los servicios de Barcode.
Lee el barcode de las cédulas colombianas, tarjetas de identidad y cédulas de extranjería, para devolver un string.
#!java
static final int BARCODE_DOCUMENT = 3;
Intent intent = new Intent(this, BarCodeActivity.class);
startActivityForResult(intent, BARCODE_DOCUMENT);
#!Kotlin
const val BARCODE_DOCUMENT = 3
val intent = Intent(this, BarCodeActivity::class.java)
startActivityForResult(intent, BARCODE_DOCUMENT)
El resultado se devuelve en el onActivityResult
#!java
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == BARCODE_DOCUMENT){
if (resultCode == RESULT_OK) {
String barcodeType = data.getStringExtra(IntentExtras.TYPE_BARCODE); //Tipo del barcode
String barcode = data.getStringExtra(IntentExtras.DATA_BARCODE); //string del barcode
}
else if (resultCode == IntentExtras.ERROR_INTENT){
data.getStringExtra(IntentExtras.ERROR_MSG); //mensaje de error
data.getExtras().getParcelable(IntentExtras.ERROR_SDK); //errores generados en el SDK
}
}
}
#!Kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == BARCODE_DOCUMENT){
if (resultCode == RESULT_OK){
val barcodeType: String? = data.getStringExtra(IntentExtras.TYPE_BARCODE); //Tipo del barcode
val barcode: String? = data.getStringExtra(IntentExtras.DATA_BARCODE); //string del barcode
} else if (resultCode == IntentExtras.ERROR_INTENT){
data.extras!!.getStringExtra(IntentExtras.ERROR_MSG)!! //mensaje de error
data.extras!!.getParcelable(IntentExtras.ERROR_SDK)!! //errores generados en el SDK
}
}
}
#!java
private ActivityResultLauncher<Intent> barcodeLauncher;
Intent intent = new Intent(this, BarCodeActivity.class);
barcodeLauncher.launch(intent)
#!Kotlin
val intent = Intent(this, BarCodeActivity::class.java)
barcodeLauncher.launch(intent)
El resultado se devuelve en el launcher
#!java
barcodeLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == RESULT_CANCELED) {
//Resultado cancelado
}else if (result.getResultCode() == RESULT_OK) {
String barcodeType = data.getStringExtra(IntentExtras.TYPE_BARCODE); //Tipo del barcode
String barcode = data.getStringExtra(IntentExtras.DATA_BARCODE); //string del barcode
}else if (result.getResultCode() == IntentExtras.ERROR_INTENT) {
data.getStringExtra(IntentExtras.ERROR_MSG); //mensaje de error
data.getExtras().getParcelable(IntentExtras.ERROR_SDK); //errores generados en el SDK
}
}
);
#!Kotlin
private val barcodeLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
val data = result.data
if (result.resultCode == RESULT_CANCELED) {
//Resultado cancelado
}else if (result.resultCode == RESULT_OK && data != null) {
val barcodeType: String? = data.getStringExtra(IntentExtras.TYPE_BARCODE); //Tipo del barcode
val barcode: String? = data.getStringExtra(IntentExtras.DATA_BARCODE); //string del barcode
} else if (result.resultCode == IntentExtras.ERROR_INTENT && data != null) {
data.extras!!.getStringExtra(IntentExtras.ERROR_MSG)!! //mensaje de error
data.extras!!.getParcelable(IntentExtras.ERROR_SDK)!! //errores generados en el SDK
}
}
Dependiendo del barcode léido (barcode que viene en formato PDF_471) que se toma de la variable String "barcodeType" , podemos encontrarnos tres tipos de documentos a leer, que se describen a continuación:
Tipo de documento | Valor | Barcode Parseado |
---|---|---|
Cédula colombiana barcode | "PDF_417/CC" | ColombianCitizenBarcode |
Tarjeta de identidad barcode | "PDF_417/TI" | ColombianCitizenBarcode |
Cédula de extranjería barcode | "PDF_417/CE" | ForeignBarcode |
Cuando se detecta que tipo de barcode fue leído, dependiendo del valor encontrado, a continuación se debe leer la información de la clase asociada de acuerdo a los valores detectados por el SDK como lo muestra la anterior tabla.
Para saber más sobre los documentos y barcode que puede leer el SDK, verificar el siguiente enlace:
Para saber más sobre los errores de lectura que puede entregar el SDK en caso de error, verificar el siguiente enlace: