Android

Known issues
  • Android 7 and above throttle BLE scanning restarts to few times per 30s. If IndoorAtlas SDK is destroyed and reinitialized many times within short interval, this limit may cause BLE scanning to stop working until next time positioning is restarted again outside the throttling period.

  • BLE scanning on Xiaomi phones is unreliable

Version 3.6.11 - August 2024
  • Fixed issue with low power beacon fusion after positioning restart
  • Bug fixes and performance improvements
Version 3.6.10 - June 2024
  • Bug fixes and performance improvements
Version 3.6.9 - May 2024
  • AR wayfinding improvements
  • Bug fixes and performance improvements
Version 3.6.8 - January 2024
  • Fixed possible crash when network conditions change
Version 3.6.7 - December 2023
  • Fixed possible crash when no active network
Version 3.6.6 - December 2023
  • Bug fixes and performance improvements
Version 3.6.5 - November 2023
  • Bug fixes and performance improvements
Version 3.6.4 - September 2023
  • Errors exposed for beacon and wifi scans
  • Bug fixes and performance improvements
Version 3.6.3 - June 2023
  • API for using 3rd party wayfinding routes
  • API for beacon and wifi scan callbacks
  • Bug fixes and performance improvements
Version 3.6.2 - April 2023
  • Bug fixes and performance improvements
Version 3.6.0 - January 2023
  • Add support for NEARBY_WIFI_DEVICES permission needed for Wifi RTT with Android 13 (targetSdkVersion 33)
  • Improved cart positioning
  • Shorter distance to accurate location fix
  • Bug fixes and performance improvements

With targetSdkVersion 33, to support Wifi RTT you need to declare the following permission in the app AndroidManifest.xml: <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" />. The NEARBY_WIFI_DEvICES permission also needs to be requested at runtime along with ACCESS_FINE_LOCATION. Do NOT declare or request the NEARBY_WIFI_DEVICES permission if still using targetSdkVersion 32 or lower. For more info see https://developer.android.com/guide/topics/connectivity/wifi-permissions

Version 3.5.5 - August 2022
  • Bug fixes and performance improvements
Version 3.5.4 - August 2022
  • RTT fusion support
  • Low power beacon fusion support
  • Discovery mode
  • Bug fixes and performance improvements
Version 3.4.12 - February 2022
  • Add support for targetSdkVersion 31 (Android 12)
  • Bug fixes and performance improvements

In order to use IndoorAtlas SDK with Android targetSdkVersion 31, you need to declare the following permission in the app AndroidManifest.xml: <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />. The BLUETOOTH_SCAN permission also needs to be requested at runtime along with ACCESS_FINE_LOCATION. Do NOT declare or request the BLUETOOTH_SCAN permission if still using targetSdkVersion 30 or lower. For more info see https://developer.android.com/guide/topics/connectivity/bluetooth/permissions

Version 3.4.11 - January 2022
  • Fixed issue with positioning if location permissions were not available at SDK init/create time. Note that location permissions must still be available before requesting location updates.
  • Bug fixes and performance improvements
Version 3.4.10 - November 2021
  • Bug fixes and performance improvements
Version 3.4.9 - September 2021
  • Fixed crash with emulator
  • AB wayfinding no longer needs current location to be inside a venue
  • Fixed indoor/outdoor support in enterprise SDK
  • Bug fixes and performance improvements
Version 3.4.8 - August 2021
  • Bug fixes and performance improvements
Version 3.4.7 - June 2021
  • Bug fixes and performance improvements
Version 3.4.6 - June 2021
  • Bug fixes and performance improvements
Version 3.4.4 - May 2021
  • Performance improvements
Version 3.4.3 - March 2021
  • Bug fixes and performance improvements
Version 3.4.2 - February 2021
  • Fix dynamic geofence removal not working
  • Bug fixes and performance improvements
Version 3.4.0 - January 2021
  • AR support
  • Enables requesting Wayfinding routes from point A to point B (previously only from current location to B)
Version 3.3.6 - November 2020
  • Indoor-outdoor detection improvements
  • Background performance improvements
  • General performance and stability improvements
Version 3.3.5 - September 2020
  • Stability improvements
Version 3.3.3 - August 2020
  • Data upload improvements
  • General performance and stability improvements
  • Restored TEMPORARILY_UNAVAILABLE and LIMITED status messages
Version 3.3.2 - August 2020
  • Fixed crash on certain geofence events (SDK 3.3+ only)
  • Fixed dynamic geofences without a floor number (missing floor number means “any floor”, SDK 3.3+ only)
  • Fixed WiFi scanning issue on Android versions 8 and earlier (SDK 3.3+ only)
  • Fixed repeated outputs on certain Android phone models when distance filters have been disabled
Version 3.3.0 GA - June 2020
  • New indoor-outdoor detection algorithm support (contact sales to enable)
  • Encrypted beacon support (contact sales)
  • Mainland China support: allow specifying the correct endpoint
  • TEMPORARILY_UNAVAILABLE and LIMITED status messages disabled in this release
Version 3.2.1 GA - March 2020
  • SDK 3.2 GA release
Version 3.2.1-beta-1289 - March 2020
  • Improved background performance
  • Fixed potential crash in SDK shutdown
  • Fixed potential crash due to SSL verification failing
  • Fixed dynamic geofence enter/exit status after restarting positioning
Version 3.1.5 - March 2019
  • Fixed potential crash in SDK shutdown
Version 3.2.1-beta-1275 - February 2020
  • Improved venue detection speed
  • Security patch
Version 3.1.4 - February 2019
  • Security patch
Version 3.0.4 - February 2019
  • Security patch
Version 3.2.0-beta-1239 - January 2020
  • Indoor-lock enabled by default. Previous behavior can be restored by calling mIALocationManager.lockIndoors(false) before requesting location updates
  • Added cart mode (IALocationRequest.PRIORITY_CART_MODE)
  • Added POI support (IAVenue.getPOIs)
  • List of cloud geofences available as IAVenue.getGeofences
  • Improved low-power mode performance
  • Previously @Deprecated APIs now removed
Version 3.1.3 - December 2019
  • Fix NPE when mixing cloud and runtime geofences
Version 3.1.2 - November 2019
  • Fix “soft” explicit location inputs
  • Fix floor lock with explicit location inputs
  • Fixed potential race conditions with IALocationManager create() and destroy()
  • Bug fixes and general performance improvements
Version 3.1.1 - October 2019
  • Fixed potential crash in IALocationManager shutdown
  • Fixed BLE scanning in background (Android 8.1+)
  • Improved floor accuracy
  • Bug fixes and general performance improvements
Version 3.1.0 - October 2019
  • Minor bug fixes
  • Performance improvements in background use cases
Version 3.1.0-beta-1142 - September 2019
  • Bug fixes and general performance improvements
Version 3.1.0-beta-1115 - July 2019
  • New cloud geofence API
  • Improved offline data caching: the SDK needs to connect to the internet only on first use and approximately once a month, but not on each time positioning is started.
  • Full offline mode: run the SDK without ever connecting to the internet. Contact IndoorAtlas sales for more information on how to activate this.
  • Performance improvements regarding first fix, indoor-outdoor transitions, and background usage
  • Cache folder change: the SDK now uses the com.indooratlas.sdk folder under the application cache directory to cache fetched map data, and as temporary storage for (optional) session logs (which were previously stored in com.indooratlas.log.cache)
Version 3.0.3 - June 2019
  • Fixed a bug that caused incorrect first fixes in floor 0 in certain cases
  • Session data upload reliability fix
Version 3.0.2 - June 2019
  • Fixed erratic behaviour when phone is held upright (e.g. for taking a portrait photo)
Version 3.0.1 - May 2019
  • Improved first fix time in certain cases
  • Bug fixes and general performance improvements
Version 3.0.0 - May 2019
  • No changes from last beta
Version 3.0.0-beta-1037 - April 2019
  • Improved session data upload reliability
  • Bug fixes and general performance improvements
Version 3.0.0-beta-1021 - March 2019
  • Deprecated calibration statuses
  • Service statuses changed to work offline, documentation elaborated
  • Bug fixes and performance improvements
Version 3.0.0-alpha - March 2019
  • First public version with full offline positioning capabilities
  • Fix crash on devices without GPS
Version 2.9.3 - March 2019
  • Improve first fix time in certain cases
  • Fix a rare issue causing possible missing region events
Version 2.9.2 - February 2019
  • Fix a bug that caused occasional long first fix times.
  • Fix a bug causing incorrect region events.
  • Fix a bug related to floor & indoor locks
  • Remove false warning logs related to floor locks.
Version 2.9.1 - January 11, 2019
  • Bug fix to issue where region entered event was sometimes missing after start-stop-start positioning sequence
Version 2.9.0 - December 2018
  • General Availability release of SDK version 2.9.0
  • Includes bug fixes for 2.9.0-beta release.
Version 2.9.0-beta-940 November 2018
  • Workaround for Android BLE crashes on older Samsung devices
Version 2.9.0-beta-936 October 2018
  • Support for wrapper (e.g., Cordova / Unity) specification
  • Internal logging bug fix
Version 2.9.0-beta-933 October 2018
  • Bug fix in the case of multiple floor plans per floor
Version 2.9.0-beta-931 October 2018
  • Floor plan changes can now happen offline
  • API is forward compatible with, 3.0, the first full-offline SDK
  • Full venue meta data is available through the SDK
  • Floor plan meta data does not need to be fetched asynchronously, but is already available in the relevant region events
  • New and better APIs for controlling indoor-outdoor detection and floor levels
  • General performance improvements while offline
Version 2.8.3 October 2018
  • Performance improvements in online-offline fusion
Version 2.8.2 July 2018
  • Fixed various bugs relating to handling of the not connected state
  • Fixed bearing when standing still
Version 2.8.1-beta June 2018
  • Fixed bug of setLocation not working correctly
Version 2.8.0-beta May 2018
  • Added new offline capabilities
Version 2.7.0 March 2018
  • Added support for IndoorAtlas Android Wayfinding plugin
Version 2.6.2 January 2017
  • Internal bug fixes related to reconnections in bad network
Version 2.6.1 November 2017
  • Bug fixes related to Wifi & BLE scanning
Version 2.5.4 November 2017
  • Bug fixes related to BLE & Wifi scanning
Version 2.6.0 November 2017
  • Battery-friendly indoor-outdoor detection
  • Don’t crash if WiFi hardware is missing just log (supports emulator & some IoT devices)
  • Read platform locations for indoor-outdoor detection
Version 2.5.3 September 2017
  • Bug fixes and stability improvements
Version 2.5.2 August 2017
  • Fixed proguard bug
Version 2.5.1 August 2017
  • Allow multiple IAGeofenceRequests to be used with same IAGeofenceListener or pendingIntent
  • Bug fixes
Version 2.5.0-beta June 2017
  • Added low power mode for positioning
  • Added geofences
Version 2.4.2 - May 2017
  • Include name of the region (floorplan or venue) in IARegion with public access
Version 2.4.1 - April 2017
  • Includes all features of 2.4.0-alpha
  • Improved movement detection
  • Bug fixes and stability improvements
Version 2.3.2 - March 2017
  • Bug fixes
Version 2.4.0-alpha - March 2017
  • Location updates can be delivered using a PendingIntent
  • Use IALocationManager#requestOrientationListener to request heading and 3D orientation updates
  • Bug fixes and stability improvements
Version 2.3.1 - February 2017
  • Includes all features of 2.3.0-alpha
  • Added IALocationManager#getExtraInfo
  • Bug fixes and stability improvements
Version 2.3.0-alpha - December 2016
  • Supports next generation positioning algorithm
  • Supports BLE beacons in positioning for faster first fix and increased accuracy
  • New IALocation#getFloorCertainty -method exposes vertical certainty in multi-level buildings
  • Event for entering/exiting a venue is triggered as IARegion#TYPE_VENUE
  • Event for entering/exiting a floor plan is now triggered much more precisely
  • Bug fixes and stability improvements
  • Known issues: The accuracy of enter/exit venue event is currently being improved on the server side
Version 2.2.4 - October 2016
  • SDK bug fixes
Version 2.2.3 - October 2016
  • Support for x86_64 architecture
  • Reduced SDK library size
  • Less sensitive for false-positive movement when standing still
  • SDK robustness improvements and bug fixes
Version 2.2.2 - September 2016
  • Support for armeabi architecture available in GA release
  • Internal fixes and improvements
Version 2.2.1 - August 2016
  • Support for armeabi architecture
Version 2.2.0 - August 2016
  • SDK delivers location estimates even when network is disconnected
  • Frequency of location updates can be configured via IALocationRequest#setFastestInterval and IALocationRequest#setSmallestDisplacement
  • Obtaining first fix is now using more data sources for speed and accuracy improvements
  • IALocationManager#registerRegionListener and IALocationManager#unregisterRegionListener throw IllegalArgumentException if listener is null
  • Fixed issue where only first client set location took effect
  • Internal fixes and improvements
Version 2.1.2 - April 2016
  • Fixed bug where calibration callbacks failed to be delivered to listener
Version 2.1.1 - April 2016
  • Fixed an issue where setting the same location (e.g. floor plan id) again was not sent to server
  • Removed requirement for android.permission.BLUETOOTH -permission
Version 2.1.0 - April 2016

Known issues:

  • When setting location with either location or floor plan id, other attributes such as WGS coordinates are ignored.
Version 2.1.0-alpha - March 2016
  • Improved client side algorithms
  • API supports setting venue (building with multiple floors) id. Server side support still experimental.
  • Battery consumption reduced significantly while device is fully stationary
  • Calibration quality is now reported via IALocationListener#onStatusChanged
  • Service availability status is now reported via IALocationListener#onStatusChanged
  • Fixed issue where setting location caused NullPointerException
  • Fixed positioning on devices without uncalibrated magnetic field sensor
  • Internal fixes and improvements
Version 2.0.2-beta - December 2015
  • Improves connectivity handling and speed. Especially Samsung S4-S6 devices took long time to reconnect after network connection was restored
  • API credentials can be passed via code to IAResourceManager
  • Internal improvements
Version v.2.0.1-beta - December 2015
  • Internal bug fixes
  • API credentials can be passed in via code: IALocationManager#create(Context, Bundle)
Version 2.0.0-beta - November 2015
  • Initial public release