All Projects → idpass → smartscanner-core

idpass / smartscanner-core

Licence: Apache-2.0 license
ID scanning Android app and library. Supports MRZ, NFC, Barcodes, and ID PASS Lite cards.

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to smartscanner-core

smartscanner-android-api
Convenience API for ID PASS SmartScanner to simplify the Intent call out process
Stars: ✭ 19 (-56.82%)
Mutual labels:  barcode-scanner, idpass, mrz-scanner
NFCSupport
Support library for NFC NDEF Records
Stars: ✭ 20 (-54.55%)
Mutual labels:  nfc
core
UBIC: The crypto currency providing UBI for the masses using the E-Passport
Stars: ✭ 37 (-15.91%)
Mutual labels:  nfc
ChameleonMini
The ChameleonMini is a versatile contactless smartcard emulator compliant to NFC. The ChameleonMini was first developed by KAOS. This is NOT the official repo for KAOS's ChameleonMini. For further information see the Getting Started Page
Stars: ✭ 350 (+695.45%)
Mutual labels:  nfc
nfc-tags
No description or website provided.
Stars: ✭ 15 (-65.91%)
Mutual labels:  nfc
android-hce-desfire
A HCE software implementation of the NXP Desfire NFC protocol in an Android app (to be used with Cyanogenmod HCE patch)
Stars: ✭ 30 (-31.82%)
Mutual labels:  nfc
Nfc Android
Android Nfc技术解析、使用
Stars: ✭ 249 (+465.91%)
Mutual labels:  nfc
TonUINO
Alternative TonUINO Firmware
Stars: ✭ 112 (+154.55%)
Mutual labels:  nfc
nfsee
Read your Transit/Bank/ID cards on Android/iOS phone with NFSee App
Stars: ✭ 80 (+81.82%)
Mutual labels:  nfc
easypay
NFC smart cards and payment terminals in Nigeria
Stars: ✭ 41 (-6.82%)
Mutual labels:  nfc
MLKit-Android-Apps
All android applications (apps) using MLKit
Stars: ✭ 24 (-45.45%)
Mutual labels:  barcode-scanner
tripreader-data
“读卡识途”项目公开数据
Stars: ✭ 58 (+31.82%)
Mutual labels:  nfc
MlKitBarcodeScan
Sample project to explain the barcode scanning API from Firebase MLKit
Stars: ✭ 31 (-29.55%)
Mutual labels:  barcode-scanner
android-hostcardemulation-sample
Android HostCardEmulation sample that implements NFC Forum Type 4 Tag Operation
Stars: ✭ 47 (+6.82%)
Mutual labels:  nfc
barcode-server
Barcode Server for Barcode Client-Server android application
Stars: ✭ 40 (-9.09%)
Mutual labels:  barcode-scanner
Libfreefare
A convenience API for NFC cards manipulations on top of libnfc.
Stars: ✭ 252 (+472.73%)
Mutual labels:  nfc
barcode-detector
Spec compliant polyfill of the Barcode Detection API 🤳
Stars: ✭ 31 (-29.55%)
Mutual labels:  barcode-scanner
Open-Home-Automation
Open Home Automation with Home Assistant, ESP8266/ESP32 and MQTT
Stars: ✭ 905 (+1956.82%)
Mutual labels:  nfc
NFCReader
Scan and decode NFC tags on iOS
Stars: ✭ 85 (+93.18%)
Mutual labels:  nfc
flutter nfc kit
Flutter plugin to provide NFC functionality on Android and iOS, including reading metadata, read & write NDEF records, and transceive layer 3 & 4 data with NFC tags / cards
Stars: ✭ 119 (+170.45%)
Mutual labels:  nfc

SmartScanner Core

ID scanning Android app and library. Supports MRZ, NFC, Barcodes, and ID PASS Lite cards.

Get it on Google Play

Note: The library's API might keep evolving before we reach v1.0, so be careful when upgrading between these pre-v1.0 versions. Starting at v1.0 we will be careful in introducing breaking API changes.

Features

  • Scan MRZ
  • Scan NFC
  • Scan Barcode
  • Scan ID PASS Lite
  • Supports Intent Call Out (ODK & Non-ODK)

This repository also includes an Android demo app to test what the library can do.

Related projects

Installation

Declare Maven Central repository in the dependency configuration, then add this library in the dependencies. An example using build.gradle:

repositories {
  mavenCentral()
}

dependencies {
  implementation "org.idpass:idpass-smartscanner:0.0.1-SNAPSHOT"
}

If you want to build this library from source, instructions to do so can be found in the Building from source wiki page.

Usage

The following table shows the intent actions available for each operation available in the library, both in ODK and Non-ODK:

Scan Operation ODK Non-ODK
MRZ org.idpass.smartscanner.odk.MRZ_SCAN org.idpass.smartscanner.MRZ_SCAN
NFC org.idpass.smartscanner.odk.NFC_SCAN org.idpass.smartscanner.NFC_SCAN
Barcode org.idpass.smartscanner.odk.BARCODE_SCAN org.idpass.smartscanner.BARCODE_SCAN
QR code org.idpass.smartscanner.odk.QRCODE_SCAN org.idpass.smartscanner.QRCODE_SCAN
ID PASS Lite org.idpass.smartscanner.odk.IDPASS_LITE_SCAN org.idpass.smartscanner.IDPASS_LITE_SCAN

To perform an operation, create an intent for the desired operation. This example shows how to call an intent to scan an MRZ (ODK):

import android.app.Activity
import android.content.ActivityNotFoundException
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

  private const val OP_SCANNER = 1001 // Activity request code

  override fun onStart() {
    super.onStart()

    try {
      val action = "org.idpass.smartscanner.odk.MRZ_SCAN"
      val intent = Intent(action)
      startActivityForResult(intent, OP_SCANNER)
    } catch (ex: ActivityNotFoundException) {
      ex.printStackTrace()
    }
  }

  public override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
    super.onActivityResult(requestCode, resultCode, intent)

    if (requestCode == OP_SCANNER) {
      if (resultCode == Activity.RESULT_OK) {
        val bundle = intent?.getBundleExtra("result")
      }
    }
  }

}

The bundle variable is a Bundle object containing the scan results. For example, the scanned surname can be obtained through:

val surname = bundle.getString("surname")

Refer to the Result fields reference for the different fields available from the scan results.

Refer to the API Reference for complete information about each scan operation and the different options available.

Finally, for convenience we recommend using the smartscanner-android-api library which simplifies the app intent call out process.

Running the demo app

The Android demo app is available in this repository's app directory. Open this directory in Android Studio (version 4.1 and above) and the app can be built and run from there.

License

Apache-2.0 License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].