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) // promotesNext
- Getting started — install the AAR, wire USB, and capture in minutes.
- Concepts — the ideas the SDK assumes you understand.
- API reference — every public symbol.