Android — AXL FLAT SDK

Integration Guide

Everything you need to integrate the AXL SDK into your Android POS app — from adding the AAR to handling the full RFID reading lifecycle.

SDK v26.2.15 Min API 21 (Android 5.0) Target API 34 (Android 14) Language Java 11 · Kotlin Transport USB OTG · Bluetooth LE
Getting Started

Overview

What the SDK does, how it fits into your app, and how the device communicates.

Content coming soon — overview & architecture diagram

Requirements

Build environment, Android API levels, and dependencies.

Content coming soon — requirements table

Quick Start

The minimal integration — five steps, ten lines of code.

Content coming soon — 10-line integration snippet
Android — AXL FLAT

Installation

Add the AAR, configure Gradle, and update your AndroidManifest.

Content coming soon — Gradle (Kotlin DSL / Groovy), manifest, device_filter.xml

Initialization

Initialize the SDK singleton and set your listener before calling connect.

Content coming soon — Sdk.getInstance(), SdkConfig.Builder options table

USB Connection

Connect to the AXL FLAT device over USB OTG and handle the connection lifecycle.

Content coming soon — sdk.connect(), auto-reconnect, onConnected / onDeviceIdentified / onDeviceConfigLoaded

Bluetooth (BLE)

Connect wirelessly for configuration updates. BLE supports config only when a USB host is active.

Content coming soon — scan, connectBle(), USB lock state callbacks, config-only mode table
Reading Data

RFID Scanning

Start, pause, and stop the RFID reader. Handle the tag stream and deduplication.

Content coming soon — startReading(), pauseReading(), stopReading(), onTagDetected, dedup pattern

UPC Mode

When the device is configured with upc_mode = true, tags are aggregated and returned as UPC codes with counts instead of raw EPCs.

Content coming soon — onUpcListDetected(), UpcEntry model, enabling via RfidDeviceConfig

Checkout

Confirm a transaction. The SDK automatically batches large EPC lists and sequences the commands.

Content coming soon — checkoutCompleted(), batching behaviour, onCheckoutConfirmed

Disconnecting

Graceful disconnect, app-close handling, and port release.

Content coming soon — disconnect(), disconnectBlocking(), releasePort(), SdkCleanupService
API Reference

SdkListener Callbacks

All callbacks delivered on the main thread. Required methods must be implemented; optional ones have default no-op implementations.

Content coming soon — full callback reference table with signatures, parameters, and notes

SDK Modes

The SDK tracks its own state. Read it at any time with sdk.getCurrentMode().

Content coming soon — mode cards (IDLE, CONNECTED, SCANNING, PAUSED, CHECKOUT_PENDING, DISCONNECTED) + transition diagram

Error Codes

All errors arrive via onError(String). The string always starts with [Exxx].

Content coming soon — error code reference table (E001–E007)

Device Configuration

Push hardware settings — region, antennas, network — to the device at runtime over USB or BLE.

Content coming soon — RfidDeviceConfig.Builder, sendDeviceConfig(), region codes, network options
Production

Diagnostics & Logging

The SDK has a built-in ring buffer, a real-time log listener, and a device-side log callback for field support.

Content coming soon — Logger patterns (dump on error, forward WARN/ERROR, verbose mode, device log)
Release Notes

Changelog

All notable changes. Follows Keep a Changelog.

Content coming soon — version history (26.2.15, 26.2.9, 26.2.8, 26.2.7, …)