Accuware provides the Accuware Indoors SDK for Android (JAVA) and iOS (Objective-C) that can be used to integrate the indoor tracking or navigation capabilities of the Accuware Indoors engine inside your mobile App for any smartphone, tablet, smartwatch based on Android or iOS.

Your mobile App must be compiled with the Accuware Indoors SDK that will allow the devices on which your App is running on to collect in real-time the radio signals and/or the camera images in order to compute the indoor location. The indoor location is computed differently depending on whether the Accuware Indoors SDK is set to work in TRACKING mode or NAVIGATION mode:

  • TRACKING: the indoor location is computed remotely by the Accuware server pattern-matching the snapshots of the radio signals and/or the camera images (only for Android) collected in real-time (and sent to the Accuware server) against the database of fingerprints created during the fingerprinting of the site. The location computed is sent back to your mobile App but it can be also retrieved using an API call (allowing the remote tracking of the device on which the App is running). The average accuracy can be up to 1 meter!
  • NAVIGATION: the indoor location is computed locally on the device by the Accuware Indoors engine pattern-matching the snapshot of radio signals detected in real-time against the database of fingerprints created during the fingerprinting of the site (and downloaded locally on the device). The average accuracy can be up to 1 meter!

Should I set the SDK to use the TRACKING or NAVIGATION mode? The choice depends on several factors related to the final objectives of your project and the usage of your mobile App. If you are not sure about the best choice please look at this page.

Accuware Indoors SDK vs Accuware Indoors App

The Accuware Indoors App used to perform the fingerprinting process (and to test the indoor location capabilities of the Accuware Indoors engine) is compiled using the same Accuware Indoors SDK provided to our customers. This means that:

  • the level of accuracy achieved using the Accuware Indoors SDK is same that can be observed during the tests done with the Accuware Indoors App.
  • the settings that can be set inside the Accuware Indoors SDK are the same settings that can be chosen inside the Accuware Indoors App. Even better, the Accuware Indoors SDK gives even more freedom with some additional parameters!

It must be kept in mind that using the Accuware SDK it is not possible to implement the fingerprinting process. The fingerprinting process can be done using our Accuware Indoors App for Android and iOS.


Background operation: the Accuware Indoors App for Android can work in background allowing the tracking of the devices on which the App is running. The mechanism that allows the Accuware Indoors App for Android to work in background is something that must be developed by your team and it is not a “feature” of the Accuware Indoors SDK. We are currently not aware about a method that can be used to track an Apple devices while an App, compiled using the Accuware Indoors SDK (in TRACKING mode), is in background.


The Accuware Indoors SDK is provided upon explicit request to our customers. Please submit a support request using this form to get the latest version of our SDK.


The Accuware Indoors  SDK documentation is inside the ZIP file with the Accuware Indoors SDK.

Floor plans

There is no function inside the Accuware Indoors SDK for Android and iOS to fetch and display inside your application the floor plans previously uploaded using the Accuware dashboard. The process to fetch the floor plans and display them inside your mobile App is quite simple and explained inside this support page.

Apple developers

The Accuware Indoors SDK for iOS can be complied on 32 and 64 bit iOS devices. Anyway keep in mind that your custom App compiled with Accuware’s SDK, will not be able to obtain the indoor positions in indoorsIBeaconMode = NLLocationIBeaconIgnore on 64 bit devices (iPhone 6, iPhone 5S, iPad air, iPad mini retina), if it doesn’t contain ARM64 as target architecture. So, please make sure to select Standard architectures (armv7, arm64) in “Build Settings/Architectures” (XCode 6).