# How CaptureSDK Works

A unified SDK for all data capture needs

CaptureSDK provides a single, consistent interface for barcode scanning and NFC/RFID reading across iOS, Android, and Windows platforms. Integrate once and access all Socket Mobile hardware and software scanning solutions.

## What is CaptureSDK?

CaptureSDK is Socket Mobile's software development kit that enables applications to communicate with Socket Mobile data capture devices. It provides a unified, event-driven API that handles device discovery, connection management, and data reception across all supported platforms.

### How it works

When your application initializes CaptureSDK, the SDK establishes a communication channel and begins listening for device events. As Socket Mobile readers are paired and connected, the SDK dispatches events to your application — device arrival, device removal, and decoded data from scans.

All communication uses **App Mode (SPP Mode)**, where data is transferred in optimized chunks rather than character by character as in traditional HID/keyboard mode. This results in faster, more reliable data capture with full device control.

Whether you use a physical barcode scanner, an NFC/RFID reader, or the built-in SocketCam camera scanning, your application interacts through the same consistent API.

### Architecture Overview

1. **Your Application** — Single API interface for all devices
2. **CaptureSDK** — Events, device management, data processing
3. **Devices** — Barcode Scanners, NFC/RFID Readers, SocketCam

## CaptureSDK Components

CaptureSDK is made up of several components that work together to provide a seamless data capture experience.

### Capture Library

The core SDK library that your application integrates. It provides the API for opening connections, listening to device events (arrival, removal, decoded data), and configuring device properties. Available as a native library for iOS, Android, and Windows.

### Capture Helper

A higher-level helper class that wraps the Capture Library to simplify integration. It manages device lists, handles open/close lifecycle, and reduces boilerplate code. This is the recommended starting point for most integrations.

### SocketCam

A software-based scanning feature that uses the device's built-in camera as a barcode scanner. SocketCam appears as a virtual device within CaptureSDK, so your application uses the same API whether scanning with a camera or a physical scanner.

Editions: C820 Free, C860 Premium.

### Companion Service & App

The **Companion Service** is **required** on **Android** & **Windows**: CaptureSDK reaches Socket Mobile **physical devices** through it. The service manages **persistent Bluetooth connections** in the background and brokers communication between the SDK in your app and the readers. The **Companion App** is the optional front-end on top of it, for managing readers and their settings.

Platforms: Android, Windows.

## The Companion Service & App

The Companion **Service** is a background service that CaptureSDK **requires** on **Android** and **Windows** to reach Socket Mobile **physical devices**, managing the **Bluetooth connections** for you. The Companion **App** is the optional front-end on top of it, for managing those readers.

### Why the Companion is required

On **Android** and **Windows**, CaptureSDK never talks to Socket Mobile **physical devices** directly — it goes through the **Companion Service**, the central **Bluetooth connection manager**. The service has to be installed on the device before your app can connect to a reader.

It pairs and maintains the Bluetooth link with each Socket Mobile reader and exposes the data to any app using CaptureSDK, so your app never handles pairing or reconnection logic itself. The reader stays connected even as your app moves between foreground and background, or when multiple apps need access to the same device.

The **Companion App** is the **optional** part: a user interface for pairing readers, checking their status and changing their settings. Your integration depends on the service, not on the app.

On **iOS**, neither is needed. CaptureSDK connects directly to readers via the External Accessory framework (Bluetooth Classic) for barcode scanners and BLE for contactless readers.

### Android & Windows Connection Flow

1. **Your Application**
2. **CaptureSDK**
3. **Companion Service** — Required — persistent Bluetooth connection manager
4. **Socket Mobile Readers**

#### Always Connected

Keeps the Bluetooth connection alive in the background, so readers are instantly available when your app returns to the foreground.

#### Multi-App Support

Multiple applications using CaptureSDK can share the same reader connection through the Companion Service.

#### Easy Installation

Available on the Google Play Store for Android and as a downloadable installer for Windows. Required on these platforms before your app can connect to a Socket Mobile reader.

## App Mode vs HID Mode

CaptureSDK uses App Mode (SPP Mode) for communication with hardware devices, delivering superior performance compared to traditional HID keyboard mode.

| Traditional HID Mode                    | CaptureSDK App Mode                  |
| --------------------------------------- | ------------------------------------ |
| Data transferred character by character | Data transferred in optimized chunks |
| Slower scan processing                  | Fast, efficient scanning             |
| Limited device control                  | Full device control & configuration  |
| Acts as keyboard input                  | Direct application integration       |

## One Integration for All Socket Mobile Data Readers

A one-time integration of CaptureSDK into your app provides access to free camera scanning, enhanced software scanning, and our entire portfolio of dedicated hardware scanners. Getting started is quick and easy, thanks to a straightforward registration and activation process.

### Simple Registration

Takes only a few simple steps. You'll be emailed a link to complete your activation.

### Lifetime Activation

Developer activation is per company and for life. Share access with your team automatically.

### Full Access

Access all Socket Mobile scanners and free camera scanning with a single integration.

## Privacy First

We collect minimal user information through the SDK.

### Minimal Data Collection

CaptureSDK is designed to minimize data collection and protect application and end-user information.

### App Store Compliant

Fully compliant with Apple and Google privacy requirements for app submissions.

### Privacy Manifest

Need references for your app's privacy manifest? See our [SDK privacy statement](https://www.socketmobile.com/terms-conditions/privacy-policy).
