Extract the granted archive's maven directory into vision-scan-kit. RC2 is not published to a public Maven registry; the bundled POM resolves the OpenCV wrapper and transitive dependencies.
Installation detail
The AAR is distributed through a tenant-scoped download grant — it is never on public Maven. Verify before you install:
Compare the archive SHA-256 with the authenticated artifact catalog before extraction.
Reject a revoked release, a version other than 0.1.0-RC4, or a checksum mismatch.
Use the bundled Maven repository so the OpenCV wrapper and POM dependencies resolve alongside the SDK.
The release AAR includes consumer-rules.pro. Keep the kit notices and open-source attributions with the application distribution.
Activation operations
The authenticated sequence for activating your trial and device, in order. Resolve tenant identity from the authenticated session. Never accept it from an editable route or local setting, and never package a bearer token in resources, logs, or the APK.
Activation operation reference
Step
Method
Path
Sign in
POST
/api/v1/auth/login
Resolve the current tenant
GET
/api/v1/tenants/current
Activate the evaluation
POST
/api/v1/evaluations/activate
Request the SDK download grant
POST
/api/v1/SdkCatalog/sdk-artifact/download-grant
Reserve the device seat
POST
/api/v1/Devices/reserve-seat
Activate the device
POST
/api/v1/Devices/activate-device
Refresh its signed license
POST
/api/v1/License/{deviceId}/refresh
2. Keep activation host-owned
Keep activation host-owned
login -> current tenant -> activate trial -> create download grant
reserve device seat -> activate device -> refresh signed license -> applySignedLicenseJws
Artifact access and runtime licensing are separate controls; possessing the AAR does not authorize scanning.
3. Confirm the packaged bridge
Confirm the packaged bridge
check(VisionScanSdk.VERSION == "0.1.0-RC4")
check(VisionScanSdk.isNativeBridgeAvailable()) {
"VisionScan native bridge is missing from this APK"
}
Run this only after Gradle packaging succeeds on a supported ABI.
Errors and recovery
Condition
Resolution
Checksum or signature verification fails
Do not install the artifact. Redeem a fresh grant and contact support with non-sensitive release metadata.
Native bridge is unavailable
Inspect APK ABI contents and packaging exclusions; do not bypass the check.
Production checklist
Compare the downloaded archive SHA-256 with the authenticated catalog
For a separately approved signed kit verify signatures against an independently trusted public key
Check backend compatibility and support window
Retain the SBOM and release notes with the deployed build
Scan modes
The three Android evaluation workflows. Mode is set on VisionSessionConfig.scanMode and paired with a frame profile; use a separate appropriately licensed session for dense rescue or batch receiving.
Every decode flows through the same deterministic path: the real native decoder and the deterministic GS1 parser produce the observations, and the host only reads them.
Return type
VisionSession.getLatestObservations(): List<BarcodeObservation> — the immutable observations produced by the most recently accepted frame. An empty list is a valid no-decode result.
Observation fields
rawPayload, symbology, GTIN, dependent lot/expiry/serial evidence, OCR provenance, and confidence. GTIN is the primary identity; lot, expiration, and serial remain GTIN-scoped dependent evidence.
OCR rescue
isOcrRescue marks OCR-derived evidence. OCR-only GTIN or serial evidence requires review and must never auto-commit.
Malformed input
Malformed native observations fail deterministically instead of producing sample data. Native absence, malformed decoder output, entitlement denial, or an undecoded frame never produces a sample GTIN.
Public contract reference
These are the callable methods and HTTP operations used by this guide. Inputs, results, lifecycle rules, and denial behavior are part of the versioned customer contract.
Android evaluation kit integrity
Artifact access and runtime authorization are independent controls.