Skip to Content
Android SDKOverview

Slade ID Android SDK

[!IMPORTANT] This is the Slade ID native Android SDK — a headless Kotlin library (com.sladeid.biometric.capture) for USB fingerprint scanners attached to an Android device over USB-OTG. Your app calls it natively and drives its own UI.

com.sladeid.biometric.capture is a headless Android library for fingerprint capture from physical USB readers (SecuGen, Suprema BioMini, and EADAK / Aratek TrustFinger). It discovers and permissions the reader, captures a quality-gated image on the device, and submits it to the Slade ID service for enrollment, 1:1 verification, or 1:N search. Your app owns the UI and collects Kotlin flows.

What it does

  • Discovers and permissions USB fingerprint readers (ReaderManager).
  • Captures a quality-gated fingerprint image on the device.
  • Submits to the Slade ID service: enroll, verify (1:1), search (1:N).
  • Exposes everything as Kotlin flows (state, result, errors) so your UI stays in your control.

End-to-end shape

┌──────────────┐ USB-OTG ┌─────────────────────────┐ quality-gated image │ USB reader │ ─────────▶ │ FingerprintReaderSession │ ──┐ │ (SecuGen/…) │ │ capture / enroll / … │ │ └──────────────┘ └────────────┬─────────────┘ │ │ result │ ▼ ▼ ┌──────────────┐ HTTPS + bearer ┌──────────────────────┐ │ SladeID │ ─────────────────▶ │ Slade ID service │ │ │ │ (enroll/match/search)│ └──────────────┘ └──────────────────────┘

Smallest meaningful example

import com.sladeid.biometric.capture.SladeID import com.sladeid.biometric.capture.config.SladeIDConfig import com.sladeid.biometric.capture.auth.ClientCredentialsAuth val sdk = SladeID( context, SladeIDConfig( serviceUrl = "https://id.example.com/api/v1", auth = ClientCredentialsAuth( clientId = "your-client-id", clientSecret = "your-client-secret", ), ), ) // 1. Discover a reader (collect the flow from your ViewModel). val manager = sdk.startReaderDiscovery() val reader = manager.readers.value.firstOrNull() ?: error("plug in a reader") // 2. Open a session and enroll a finger (two captures — see Concepts). val session = sdk.createFingerprintReaderSession(reader.id) val enrolled = session.enroll(enrollee = "CR-123", position = 2) // stores unverified val verified = session.verifyEnrollment(enrollee = "CR-123", position = 2) // promotes

Next