Skip to content

# Nix Universal SDK

A library to allow integration of Nix devices into third-party Android applications.

The latest version of this documentation is available online and the latest version of the library is hosted on Maven Central.

## Overview

This library was written to allow integration of Nix devices into third-party Android applications. It provides tools to discover nearby Nix devices, open a connection, perform measurements, and obtain data. Tools are also provided for basic colour conversions and colour difference calculations.

For changes introduced in this version, please review the release notes.

Note

If you are upgrading to version 4.2.x or newer from an earlier version, you will need to update your application to activate your SDK license. See Activating the SDK License for more details.

Warning

The `universalsdk` library replaces the previous `nixlibrary` library. These two libraries should not be used together; remove `nixlibrary` from your project before adding `universalsdk`.

## Minimum Requirements

- Android Studio (tested with 2024.2.2)
- Android Studio project with `minSdkVersion` 21 or higher
- Android device with BLE hardware connectivity
- Active internet connection for device activation (demo / evaluation versions only)
- Supported Nix devices:
  - Nix Mini
  - Nix Mini 2
  - Nix Mini 3
  - Nix Pro
  - Nix Pro 2
  - Nix QC
  - Nix Spectro 2
  - Nix Spectro L

## Getting Started

1. An activation code is required to use the Nix Universal SDK. Free evaluation codes are available for non-commercial use. To obtain an activation code, visit to the SDK license page.
2. The `universalsdk` library is available via Maven Central and can be added as a dependency to your Android Studio project. See Adding to Your Android Studio Project for instructions.
3. Once added to your Android Studio project, the `LicenseManager` can be used to enable the SDK functions included in your license. See Activating the SDK License for more details.
4. Once the license is active, the `DeviceScanner` can be used to discover nearby and attached devices as `IDeviceCompat` instances. These objects can be used to open a connection to the the device. See Discovering and Connecting to Nix Devices for more details.
5. Once connected, measurements and other device operations can be performed using the `IDeviceCompat` instance. Device parameters can also be queried. See Device Operations for more details.
6. Once a measurement has been completed, results are provided as `IMeasurementData` instances. These objects provide colorimetry data, density, and spectral measurements (if supported by the device). See Handling Measurement Data for more details
7. Several additional utility functions are provided by the `ColorUtils` class. These include functions for manual colour conversions, delta E calculations, and more. Further details are provided in the API reference (Kotlin and Java)
8. To demonstrate integration of the Nix Universal SDK, an example app is provided with the SDK download.

## Additional Support

This document is not intended as an exhaustive reference. Please refer to the Kotlin and Java API references for further details on the classes and methods provided by the Nix Universal SDK.

If you encounter any issues with SDK implementation, please contact us via e-mail at sdk@nixsensor.com.

## Privacy Disclaimer

Limited anonymous usage data is tracked by the Nix Universal SDK using Google Analytics. No personal user data, color data, or any data which uniquely identifies an individual Nix device is collected. Collected data is subject to the Nix Apps privacy policy. Events and usage data tracked by the Nix SDK are solely limited to the following information:

- Device connection events:
  - Device type (e.g. - Nix Pro, Nix Mini, etc)
  - Device manufacturing batch identifier
  - Nix SDK version
- Device color scan events:
  - Device type
  - Nix SDK version
- Reference tile usage events:
  - Device type
  - Device diagnostics information
  - Nix SDK version