Skip to main content

Ghid rapid

Integrează EidKit într-o aplicație mobilă în câteva minute.

Cerințe

  • Android API 26+ (Android 8.0)
  • Un dispozitiv cu NFC
  • O carte de identitate electronică românească (CEI) pentru testare

1. Instalare

// app/build.gradle.kts
dependencies {
implementation("ro.eidkit:sdk-android:0.1.7")
}

2. Configurare NFC

Adaugă în AndroidManifest.xml permisiunea NFC, filtrul de intent și filtrul de tehnologie:

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.NFC" />

<application ...>
<activity
android:name=".MainActivity"
android:launchMode="singleTop"> <!-- obligatoriu pentru onNewIntent -->

<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
</application>

Creează fișierul res/xml/nfc_tech_filter.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
</tech-list>
</resources>

Atașează NfcManager la Activity-ul tău pentru a primi evenimentele de tap:

class MainActivity : ComponentActivity() {
private val nfcManager = EidKit.nfcManager()

override fun onResume() {
super.onResume()
nfcManager.enableForegroundDispatch(this)
}

override fun onPause() {
super.onPause()
nfcManager.disableForegroundDispatch(this)
}
}

3. Configurare SDK

Creează o clasă Application și înregistreaz-o în manifest:

class MyApp : Application() {
override fun onCreate() {
super.onCreate()
EidKit.configure(this, EidKitConfig {})
}
}
<!-- AndroidManifest.xml -->
<application android:name=".MyApp" ...>
Mod demo

SDK-ul rulează implicit în mod demo — datele citite de pe card sunt anonimizate automat. Ideal pentru dezvoltare și testare fără a expune date reale. Un licenseToken este rezervat pentru viitoarea aplicare a licenței — poate fi configurat din timp fără alte modificări.

4. Citește un card

onNewIntent este apelat când un card NFC este detectat. Necesită android:launchMode="singleTop" pe Activity (configurat la pasul 2).

override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
val isoDep = nfcManager.handleIntent(intent) ?: return

lifecycleScope.launch {
val result = EidKit.reader(can = canIntrodusDeutilizator)
.withPersonalData(pin = pinIntrodusDeutilizator)
.withActiveAuth()
.read(isoDep)

// result.passiveAuth — întotdeauna prezent
// result.identity — nume, CNP, dată de naștere
// result.personalData — adresă, date document
// result.claim — material criptografic pentru verificare backend
}
}
CAN

CAN-ul este numărul de 6 cifre tipărit pe fața cardului. Utilizatorul trebuie să îl introducă în interfața aplicației — nu îl stoca niciodată sau nu îl hardcoda în aplicație.

Localizarea codului CAN pe Cartea Electronică de Identitate

Încercări PIN

CEI românesc permite doar 3 încercări incorecte de PIN înainte de blocare. Un PIN blocat necesită o vizită la un serviciu MAI pentru deblocare. Permite întotdeauna utilizatorului să introducă singur PIN-ul.

Pași următori