Android SDK changelog (old)

Table of Contents

Version 2.87.0 – June 9, 2023 #




  • Fixed a crash produced when calibration starts and WiFi Throttling is activated in the developer settings of the device.

Version 2.86.3 – May 25, 2023 #


Version 2.86.2 – May 15, 2023 – [Stable] #


Version 2.86.1 – May 10, 2023 #



  • Fixed bug that caused USER_NOT_IN_BUILDING not to be returned when the GNSS position does not match the position of the building in which it is trying to be positioned.
  • Fixed bug that could provoke to return the initial poses near coordinates 0,0 if that area in the building is passable.

Version 2.86.0 – May 08, 2023 #


  • When useForegroundService is false and the app goes to background more than 30 seconds then when it returns to foreground the positioning will be automatically restarted.
  • Internal improvements and code optimized.

Version 2.85.3 – April 24, 2023 #



  • Improved GNSS based out of building detector.

Version 2.85.2 – April 3, 2023 #


  • Changed ble scanning behaviour that could cause some bluetooth devices to disconnect momentarily.
  • Changed Out of Building estimation to be coherent with the sensors used in the building detector.


  • Fixed bug in positions cache which could make the first positions to be incorrect.

Version 2.85.1 – March 20, 2023 #


  • Improves positioning orientation when the compass does not work correctly.

Version 2.85.0 – March 2, 2023 – [Stable] #



  • Performed internal refactors that improve stability in cases where the SDK and the Wayfinding module coexist.

Version 2.84.0 – February 14, 2023 #



  • Fixed STOPPED status not being notified to LocationListener in building mode.
  • LocationManager#isRunning() now returns true immediately after requesting location updates.

Version 2.83.9 – February 13, 2023 #


  • Fixed bug in which in the absence of sensor information the system temporarily returned an incorrect position before returning Out Of Building.


  • Improved bearing quality estimation.
  • Improved condition to return Out Of Building when positioning only with GNSS.

Version 2.83.8 – January 31, 2023 #


  • Positioning improvements in outdoor fences

Version 2.83.7 – January 27, 2023 #


  • [Only in React native plugin] Crash that happened when you downloaded the Poi Category images

Version 2.83.6 – January 19, 2023 #


Version 2.83.5 – January 10, 2023 #


Version 2.83.4 – December 28, 2022 #


  • Now you can start positioning using only indoor gps sensor, you no longer need to have BLE or WiFi enabled. Note that if you try to use this in a building not prepared to work with uncalibrated gps mode you won’t get any location.

Version 2.83.3 – December 19, 2022 #


  • Added method toMap() for the domain public classes. This methods allows you to transform objects like Buildings or Geofences into an object of type Map<String, Object>. For more information check the Javadoc documentation.

Version 2.83.2 – December 16, 2022 #


  • Fixed Zip Path Traversal vulnerability. The Zip Path Traversal vulnerability is related to handling compressed archives and may prevent your app to be published on Google Play. The method fetchTilesFromBuilding(…) introduced the vulnerability in the SDK version 2.82.1 as it downloads and uncompresses a Zip file containing all the building map tiles. We have followed the documentation and now the vulnerability was completely fixed.

Version 2.83.1 – December 14, 2022 #

Version affected by Zip Path Traversal vulnerability. Fixed in version 2.83.2.


  • Added Turkish translations.

Version 2.83.0 – November 29, 2022 #

Version affected by Zip Path Traversal vulnerability. Fixed in version 2.83.2.


  • Updated play-services-location library to version 21.0.1. If you use an older version of this library it may produce errors.
  • When the user initiates positioning, the system calculates the position and the orientation of the user. Situm has improved the calculation of the orientation, being now more exact, especially when the user starts the positioning and user is stopped (most complicated case to calculate the orientation).
  • When the user is outside building and leaves navigable zone, the system notifies an “out of building” message. If the user came back to the navigable area, the system took time to calculate a correct position. In this version, system reduces considerably the time it takes for calculate correct position.
  • In the same building there can be floors that have been calibrated and exterior floors which is not necessary to calibrate, for example terraces. In this version, sytem has reduces the time it takes to detect change floor made by the user.

Version 2.82.1 – November 28, 2022 #

Version affected by Zip Path Traversal vulnerability. Fixed in version 2.83.2.

This is the recommended version if you’re targeting Android 13 (although previous versions will also work if you add the permission POST_NOTIFICATIONS to your Manifest).


  • New permission POST_NOTIFICATIONS for Android >= 13 devices.
  • Added a new feature to download map tiles for a specific building. Tiles allow you to upload really large floor plans while maintaining a high display quality. We are publishing a specific API at CommunicationManager to manage map tiles, both online and offline:


  • SDK target & compile versions have been upgraded to API 33.
  • Some deprecated methods have been refactored.
  • autoEnableBleDuringPositioning(Boolean) does not work in Android 13. Learn how to auto-enable ble in this version here.

Version 2.82.0 – November 16, 2022 #


  • New method setLanguage(String code) that allows you to force the language in which you want the cartography names and info. In order of this to work you have to have it configured in the dashboard.
  • New permission android.permission.HIGH_SAMPLING_RATE_SENSORS. We need this permission to be able to make fast scans of the gyro.
  • EXPERIMENTAL New methods in PoiCategory getUnselectedIconBase64() and getSelectedIconBase64. This returns the images of the PoiCategory as a string coded in base64. Right now the strings comes empty because it is disabled by default.

Version 2.81.0 – November 04, 2022 – [Stable] #


  • New parameters in PoiCategory to obtain the poi image coded in base64.


  • Now if the base64 string is available the images are never downloaded.
  • Gps provider from Android to Google. If the google provider is not available in the device the Android provider will be used


  • Remote configuration now works offline

Version 2.80.1 – October 03, 2022 #


  • Now the cartography objects (Building,POI,Floor) name and info (when the object has it) comes translated to the current phone language if they are configured in the dashboard. To configure this you have to put a custom field in the object you want with “name_en” as key and the name you want as value. You can put the language code that you want after “name_”.

Version 2.80.0 – September 30, 2022 #


  • SDK detects when the user enters or leaves geofences and advises it by GeofenceListener methods

Version 2.79.2 – September 19, 2022 #


  • Added Arabic translations.


Version 2.79.1 – September 6, 2022 [beta] #


  • Any beacon uuid can be now used for calibrating and positioning without any configuration

Version 2.79.0 – August 22, 2022 #


  • Added a new method DirectionsRequest.Builder#excluding(Circle). When requesting directions between two points, this method allows you to specify exclusion areas. The route will never contain a path that collides with the given circle, for example:
DirectionsRequest request = new DirectionsRequest.Builder()
    .excluding(new Circle(c, radius))
SitumSdk.directionsManager().requestDirections(request, …);
// The given route will avoid the point c.

Version 2.78.0 – August 2, 2022 #


  • New functionality External provider locations. You can learn more about it in our documentation.


  • Reduced time in the floor transitions


  • Problem with the accesible routes. They now work as intended

Version 2.77.0 – July 8, 2022 #




  • Bug reported on Huawei devices. Now autoEnableBluetooth mode is disabled on Huawei devices due to behaviour issues.

Version 2.76.2 – June 14, 2022 #



Version 2.76.1 – May 25, 2022 #


  • Improved encryption security

Version 2.76.0 – May 10, 2022 #


  • Downgrade Gradle version to 6.9 from 7.0.2 and Gradle Plugin Version to 4.2.2 from 7.0.2. The newer versions caused a crash in release versions when compiling apps with older Gradle versions.

Version 2.74.2 – April 27, 2022 #


  • Location includes rotation matrix data when positioning outdoor. This rotation is provided by the Android operating system.
  • OutdoorLocationOptions.updateInterval no longer has a 1000ms minimum limit. This parameter now allows faster intervals. The default value is still 1000ms, but for AR applicaitons we recommend 62ms for a better user experience.
  • We have slightly improved the speed at which we can calculate the user’s orientation once inside the building, allowing for a more seamless transition between outdoor and indoor positioning in AR apps.

Version 2.74.1 – March 28, 2022 – [Stable] #


  • Update ARCore dependency version to 1.30.0

Version 2.74.0 – March 16, 2022 #


  • Location includes rotation matrix data when positioning indoor and deadReckoning is active. In the context of Android sensors, the rotation matrix allows you to map a point from the co-ordinate system of the phone (where the phone itself lies in the x-y plane) to the real world North/East/”Gravity-direction” co-ordinate system.

Version 2.73.0 – February 10, 2022 #



  • Improves positioning initialization in buildings with large extensions of outdoor surface using the gps sensor.

Version 2.72.0 – December 20, 2021 #



  • SDK now compiles and targets sdkVersion 31 (Android 12).
  • The minimum supported version has been updated to sdkVersion 21 (Android 5.0). Official support has been withdrawn more than one year ago.
  • A large amount of the SDK’s dependencies have been updated to their latest versions.


  • Open Sky Detector is no longer available on devices running Android 12. It will still work on devices with Android 11 or lower. This feature has been deprecated and will be removed in future versions of the SDK.


Warning: Two new runtime permissions are required to guarantee the SDK functions correctly: android.permission.BLUETOOTH_SCAN and android.permission.BLUETOOTH_CONNECT. These permissions must be requested at runtime just like android.permission.ACCESS_FINE_LOCATION , for most SDK functionality involving bluetooth.

Warning: For this version of the SDK to work properly on Android 12 devices and above, the host app must target android api 31 or above.

Version 2.71.2 – November 25, 2021 #


  • Battery Saver now works when the RealtimeUpdateInterval is Never.


  • Removed app icons added by mistake in the version 2.71.0

Version 2.71.1 – November 16, 2021 #


  • An error is thrown with the correct code when the token expires and the sdk tries to obtain a new one. Previously, it always had the code 0.
  • Removed redundant parameters cartesianPitch and cartesianRoll. Use pitch and roll instead.

Version 2.71.0 – November 15, 2021 #


  • The SDK can now restart bluetooth sensors if it suddenly stops detecting BLE signals. This has been implemented to mitigate the know issue where bluetooth sensors may stop detecting BLE signals without notice.


  • Fixed bug where the floor plan’s rotation was not taken into account for movable buildings. This resulted in the user not positioning correctly on the Y axis in a movable building if the building floor plan was not horizontal.

Version 2.70.4 – October 27, 2021 #


  • Updated CommunicationManager#invalidateCache() to also clear local database tables.
  • Updated the cache strategy used to fetch points of interest custom fields. This keeps positioning information up to date and ensures that the SDK status is consistent even in environments that are still in testing (where positioning information changes frequently).


  • Fixed a bug that led to erroneous building detections in changing environments.

Version 2.70.3 – October 20, 2021 #


  • From REST API v 1.86.1, if your account has beacons with the same major & minor, those will not be returned and therefore the the SDKs will not use them during the building detection process (WIFI_AND_BLE or BLE). However, under some edge circumstances the SDK used other beacon information (including repeated beacons if there were some in the account) and this resulted (sometimes) in a wrong building selection. This problem has been fixed and the building selection should work fine.

Version 2.70.2 – September 30, 2021 #


  • Fix a crash in the positioning mode added in the version 2.70.0

Version 2.70.1 – September 22, 2021 #

This version crashes in the indoor positioning mode. The version 2.70.2 fix this.


  • Always notify WiFi throttling when it is detected. The bug in the detection was added in a recent version

Version 2.70.0 – September 8, 2021 #

This version crashes in the indoor positioning mode. The version 2.70.2 fix this.

We have published a blog entry about this release here


  • Migrated SDK to AndroidX libraries.
  • Updated dependency protobuf-lite to protobuf-javalite.
  • Other minor dependency updates


Known Issues

Migrating to Situm SDK 2.70.0 from older versions can cause problems if your project contains old configurations. If that is your case, we recommend that you review the following checklist in your Android project:

  • Check that you have already replaced all the support libraries by their counterparts in AndroidX.
  • Update the Gradle version in your “” file. There is not a recommended version, just update to a newer version and most of the time this will solve it.
  • Update the Android Gradle plugin. We recommend using version 4.2 or higher. Also check that the Gradle version is supported (version 4.2 of the AGP requires Gradle 6.7 or higher).
  • Check the JDK version used to run Gradle. From the Android Studio settings screen, or through the “” entry in your “” file, check your Java home and also the compatibility with the Gradle version (for example, AGP 7 requires JDK11).
  • Kotlin Gradle Plugin. We have experienced problems with kapt in versions lower than 1.3.72.
    Notice that since Kotlin 1.4 it is not necessary to declare stdlib dependencies.
  • The Kotlin coroutines library. Update the version of the artifacts inline with the language version.
  • Finally update third party dependencies.
    • We have found problems using moshi 1.8. If that is your case, just update to a newer version (latest is 1.12).

Version 2.69.1 – August 17, 2021 #


  • Native support for querying the system about the status of WiFi Throttling on the device. This
    allows Situm SDK to detect the current device state and automatically update the WiFi scan rate. Prior to this addition, WiFi Throttling was detected after exceeding the system scan limits, which produced a scan penalty time of aproximately two minutes in which it is not possible to receive WiFi scans.
    Now WiFi Throttling can be detected beforehand in all versions except Android 10 (due to SO limitations), but you still can use LocationRequest.Builder#ignoreWifiThrottling method to avoid the two minutes of scan penalty time.
    See the documentation for a full explanation.
  • Notifies LocationStatus.WIFI_SCAN_THROTTLED immediately when possible.
    Due to a known issue this state will not be notified in Android 10 devices when the Global Mode is enabled.
  • A new method fetchRemoteConfig in CommunicationManager to asynchronously get the remote configuration values. A new object RemoteConfig is returned in a callback. It encapsulates a LocationRequest right now but is expected to grow in line with subsequent remote settings.


Upcoming changes

  • We will update our dependencies in Situm SDK version 2.70.0. Notice that we will migrate to AndroidX as a replacement of Android Support Library. Therefore, all projects that want to incorporate the improvements added from version 2.70.0 onwards must also be migrated to AndroidX. We recommend that these projects also update their dependencies.

Version 2.69.0 – July 28, 2021 #


  • Enabled destructive migration fallback for SDK database. If a future version of the SDK needs to downgrade to this one and the database has suffered structural changes, the newer database will be wiped and this older version will be rebuilt.
  • New functionality: Remote configuration. Now you can load the configuration from the Dashboard and the SDK will automatically use it if you enable it. You can learn more about this and how to use it here.


  • The following list of deprecated methods have been removed:
    • OutdoorLocationOptions.continuousMode()
    • OutdoorLocationOptions.burstInterval()
    • OutdoorLocationOptions.getMinNumberSatellitesToRunDetector()
    • OutdoorLocationOptions.getMinSnrToUseSatellite()
    • OutdoorLocationOptions.getMinPercentageToDetectOutdoor()

Version 2.68.8 – July 16, 2021 #


  • SDK returning duplicate positions every second. This does not affect Dead Reckoning
  • If the SDK was running in the background and not using a Foreground Service, sometimes it would stop after being deprived from access to computing/sensor resources (probably caused by Doze Mode and Android energy saving policies). After this, the SDK state would be inconsistent and positioning could not be restarted.

Version 2.68.7 – June 30, 2021 #

Fixed a bug that caused CommunicationConfig to be ignored in prefetch. This caused floorplan images and POI icons to load during prefetch, although it was specified not to do so. The same happened with the specified cache strategy.

Version 2.68.6 – June 03, 2021 #

Fixed a bug in RealtimeClient added in a recent version that caused the listener to respond in a worker thread.

Version 2.68.5 – June 01, 2021 #

Fixed a bug that caused WIFI automatically turning on and off endlessly.
Fixed a bug that caused a crash if logout is called with a null callback.

Version 2.68.4 – May 24, 2021 #

Improved performance during prefetch. The SDK no longer blocks the main thread.
Fixed a bug that caused the SDK to stop positioning without updating its state to STOPPED
Modified the motion mode BY_CAR in order to improve performance of cleaning machines and forklifts positioning

Version 2.68.3 – May 19, 2021 #

Stop launching a dialog from the SDK when the wifi scanning is not always enabled
Improved the javadoc.

Version 2.68.2 – April 12, 2021 #

Fixed crash causing bug in scan based building selector

Version 2.68.0 – March 12, 2021 #

Now OrganizationTheme extends Resource

Fixed a crash in the building selector

Version 2.67.2 – January 27, 2021 #

Improved out of building detection when positioning with wifi and ble

Version 2.67.1 – January 11, 2021 #

Increase the time before starting the battery saving mode

Version 2.67.0 – December 17, 2020 #

Added CommunicationManager.fetchAllPOIsFromUser

Improved indoor positioning experience with Android 9 devices

Version 2.66.0 – December 09, 2020 #

Included options to control the interval of computing and updating outdoor locations

Version 2.65.0 – November 24, 2020 #

Add Location.customFields

Deprecated LocationRequest.IndoorProvider.SUPPORT

Fixed some bugs in the geofences positioning

Version 2.64.1 – November 11, 2020 #

Upgrade compileSdkVersion to 30

Upgrade targetSdkVersion to 30

Fixed ocasional crash when using OutdoorLocationOptions.useGeofencesInBuildingSelector

Version 2.63.2 – November 02, 2020 #

Removed unnecessary ACCESS_BACKGROUND_LOCATION permission

Version 2.63.1 – October 01, 2020 #

Improved the use of geofences in the building selector

Version 2.63.0 – September 15, 2020 #

Add new option LocationRequest.useLocationsCache to activate the position cache. If activated it will smooth dispersion of initial positions on starts that occur shortly after stopping..

Add new option OutdoorLocationOption.enableOpenSkyDetector to activate open sky detector. By default it is deactivated.

Version 2.62.0 – August 25, 2020 #

Add new option OutdoorLocationOptions.useGeofencesInBuildingSelector to use the geofences in global positioning. This will help the scans based detector (BLE,WIFI and WIFI_AND_BLE) select the building.

Version 2.61.1 – August 05, 2020 #

Fix bug in battery saver mode that caused the sdk to upload locations to realtime when it should not

Version 2.61.0 – July 23, 2020 #

Added new option OutdoorLocationOptions.enableOutdoorPositions(Boolean) that can be used stop the SDK returning outdoor positions while GlobalLocation is on. This new feature is incompatible with BuildingDetector.GPS_PROXIMTY.

Added support for building custom field use_gps. This custom field can be used to deactivate the use of gps data in indoor positioning for specific buildings.

Version 2.60.2 – July 16, 2020 #

Fixed a bug in the positioning notification, in Android 6 sometimes crashed and in other versions was not showed.

Version 2.60.1 – June 23, 2020 #

Fixed a bug in positioning, when starting sometimes the db was accesed in the main thread and caused a crash.

Version 2.60.0 – June 15, 2020 #

Add the geofences list in BuildingInfo.

Fixed a bug in the POI icons download when the SDK was updated from older versions

Version 2.59.2 – June 09, 2020 #

Fixed a bug in the realtime upload.

Version 2.59.1 – June 04, 2020 #

Updated CacheStrategy names. DEFAULT is now called TIMED_CACHE and FORCE_DOWNLOAD is now called IGNORE_CACHE.

Version 2.59.0 – June 01, 2020 #

Implemented new Configuration system for CommunicationManager. Deprecated methods with older configuration system.

Version 2.58.1 – May 18, 2020 #

Fixed a bug in positioning system that caused a crash

Version 2.58.0 – April 21, 2020 #

Added OutdoorLocationOptions.minimumOutdoorLocationAccuracy. With this option you can select the minimum accuracy that an outdoor position must have to be returned by the LocationListener

Version 2.57.1 – April 13, 2020 #

Fixed a bug in CommunicationManager.prefetchPositioningInfo. Sometimes there was some info that was not downloaded

Version 2.56.0 – March 09, 2020 #

Added LocationStatus.STOPPED that indicates when positioning has been stopped

Added LocationManager.ConfigurationError that is thrown when the LocationRequest is not configured properly

Fixed bug in positioning, sometimes the positioning stopped but an error was not notified

Version 2.55.0 – March 03, 2020 #

Added option LocationRequest.preloadInfo. If true, this option will download POI and Floor images on location start.

Fixed offline positioning bug.

Version 2.54.0 – February 26, 2020 #

Added error LocationManager.START_SERVICE_FAILED. This error is thrown if the positioning is started when the app is in background and LocationRequest.useForegroundService is false.

Version 2.53.0 – February 20, 2020 #

Added option OutdoorLocationOptions.centerPositionInBuildingDuringTransition to center position in building when transitioning from outdoor to indoor position while using BLE and/or WIFI based building detection.

Version 2.52.0 – February 17, 2020 #

Improved positioning startup times for global positioning using scans based building detection.

Version 2.51.0 – February 12, 2020 #

Change method CommunicationManager.prefetchInfo name to CommunicationManager.prefetchPositioningInfo and add Floor and POICategory images download. Improved the documentation.

Remove CommunicationManager.PREFETCH_INFO_ERROR

Version 2.50.1 – February 06, 2020 #

Indoor-outdoor positioning will notify of errors, and stop positioning ,while trying to obtain building information. Previously it would retry endlessly.

Version 2.50.0 – February 05, 2020 #

Added new methods to download all the info neccesary to position in the building or buildings you want. The methods are in CommunicationManager.prefetchInfo and you can download the info of all account buildings or some of them

Version 2.49.0 – February 04, 2020 #

Scans based building detection can now be configured to work while positioning. New option scansBasedDetectorAlwaysOn in OutdoorLocationOptions.Builder

Version 2.48.1 – January 30, 2020 #

Fix crash in the SDK init added in the version 2.46.7

Version 2.48.0 – January 23, 2020 #

Added CommunicationOptions.PRELOAD_IMAGES. Set this option to false when calling the methods of CommunicationManager to prevent the Floor and POI images from being downloaded when calling methods that do not download them specifically like fetchBuildingInfo or fetchFloorsFromBuilding

Improve load time to start positioning in big buildings

Version 2.47.0 – January 21, 2020 #

Added RealtimeUpdateInterval.NEVER option to never upload the locations to the realtime dashboard

Version 2.46.7 – January 16, 2020 #

Improve floor changes when the barometer is used

Minor fixes

Version 2.46.6 – December 20, 2019 #

Fix a bug that caused a memory leak

Version 2.46.5 – December 13, 2019 #

Fix a bug that blocks the main thread when positioning service is starting

Version 2.46.4 – November 25, 2019 #

Fix a bug in the method Configuration.allowInvalidSSLCertificate

Version 2.46.3 – November 20, 2019 #

Minor fixes and improvements

Version 2.46.2 – November 14, 2019 #

Update targetSdkVersion to 28

Version 2.46.1 – November 08, 2019 #

Fixed an issue with positions file upload in different locales.

Version 2.46.0 – November 06, 2019 #

Added new functionality to follow devices (beacons) of your interest.

Version 2.45.0 – October 29, 2019 #

Added new functionalities to directions API

Added support to background positioning in Android 10

Update compileSdkVersion to 29

Version 2.43.0 – October 08, 2019 #

Added WIFI_SCAN_THROTTLED to LocationStatus to notify when the WiFi scan throttling is detected in Android 10

Added ignoreWifiThrottling to LocationRequest to set if you want to ignore the WiFi scan throttling during the positioning in Android 10. If set to true the SDK will perform a background check on the WiFi scans and if the throttling is detected the scan interval will change to one scan every 30 seconds and a LocationStatus will be sent. The default value is false.

Version 2.42.0 – October 03, 2019 #

Included option to use route to better adjut locations. Check LocationManager (updateLocationParameters) for more details.

Version 2.41.1 – October 01, 2019 #

Fixed the dead reckoning in the indoor-outdoor mode

Version 2.41.0 – September 20, 2019 #

Deprecated description property from geofence. Use htmlInfo instead so api is consistent with same properties of different objects

Deprecated level from Floor object. Using floor instead.

Version 2.40.0 – July 11, 2019 #

Added Geofence class and CommunicationManager.fetchGeofencesFromBuilding(Building) method to download the geofences of a building

Added method OutdoorLocationOptions.Builder.buildingDetector(BuildingDetector) to selected the building detector used in indoor-outdoor mode to find the building where the user is located

Version 2.39.0 – June 26, 2019 #

Added new info to Floor model: name and custom fields

Fixed an issue with indoor-outdoor initialization

Version 2.38.0 – June 06, 2019 #

Improved robustness of battery saver mode: it allows you to save battery when the smartphone is not moving

Improved indoor-outdoor using only outdoor locations with good accuracy

Version 2.37.11 – June 03, 2019 #

Fixed Google Play Security Alert “Your app contains an unsafe unzipping pattern that may lead to a Path Traversal vulnerability”

Improved download images time

Version 2.37.6 – May 22, 2019 #

Improved indoor-outdoor transitions

Other minor improvements and fixes

Version 2.37.3 – May 13, 2019 #

Fixes to navigation and positioning

Version 2.37.0 – April 16, 2019 #

Added new constructor for Point Point#Point(Building, String, Coordinate) to create and indoor Point

Version 2.36.0 – April 09, 2019 #

Added useBarometer to location request to use barometer for positioning.

Version 2.35.1 – March 27, 2019 #

Added data persistence to prevent realtime information loss

Version 2.35.0 – March 25, 2019 #

Added method NavigationProgress.getPoints() that return the route points left to reach the destination

Added methods Route.getSegments() and NavigationProgress.getSegments() that return the route segments of the route split by floor. This method is intended to make it easy to draw polylines.

Deprecated Filter class and Filterable interface

Version 2.34.1 – March 14, 2019 #

Added LocationStatus.LOCATION_DISABLED status that would be sent when the location is disabled. You should prompt the user to enable it, otherwise the Wi-Fi and BLE scanning will not work.

Improved the transition from indoor to outdoor

Version 2.33.0 – March 12, 2019 #

Added method NavigationRequest#Builder#ignoreLowQualityLocations(boolean) to set if low quality locations should be ignored during navigation. This will make navigation updates more reliable. For more information see the Javadoc

Version 2.32.3 – March 07, 2019 #

Fix crash starting the positioning using BLE

Version 2.32.2 – March 06, 2019 #

Improved the performance of the gps in the indoor positioning mode.

Version 2.32.1 – February 27, 2019 #

Added reading of new custom fields: use_wifi_floor_classifier and use_ble_floor_classifier from dashboard.

Version 2.32.0 – February 21, 2019 #

Updated ArCore library from version 1.5.0 to 1.7.0

Added LocationManager.VISUAL_ODOMETRY_ERROR code that is returned in the positioning with the camera activated when ArCore thrown an error during the start

Version 2.31.5 – February 20, 2019 #

Fix crash when starting the positioning foreground service from the background

Version 2.31.3 – February 11, 2019 #

Added reading of new custom fields: return_gps_pose_outdoors and gps_default_floor_id from dashboard.

Version 2.31.2 – January 28, 2019 #

Modified the next NavigationRequest default values so that they adapt better to large buildings. This will change the default behaviour of previous versions.

  • Increased NavigationRequest.distanceToGoalThreshold from 5 to 15 meters
  • Increased NavigationRequest.distanceToFloorChangeThreshold from 10 to 15 meters
  • Increased NavigationRequest.distanceToChangeIndicationThreshold from 5 to 8 meters

Fix Indoor-outdoor transition issues

Version 2.31.0 – January 11, 2019 #

Added autoEnableBleDuringPositioning to LocationRequest to set if you want to disable that the SDK enable automatically the BLE sensor if the user disables it. The default value is true.

Added `LocationStatus.BLE_SENSOR_DISABLED_BY_USER` that would be sent when the user disables the BLE sensor. If autoEnableBleDuringPositioning is disabled you should prompt the use the enable it. BLE scanning is not possible if the sensor is disabled.

Improved compatibility with Android 9.

Version 2.30.4 – December 20, 2018 #

Indoor GPS improvements

Version 2.30.3 – December 18, 2018 #

Added metadata

Version 2.30.1 – December 04, 2018 #

Improved WiFi scanning. Now it works in Android 9 with its restrictions (one scan every 30s).

Version 2.30.0 – November 27, 2018 #

Added accessibilityMode to DirectionsRequest. Now you can force routes to use not accessible floor changes (stairs). Deprecated DirectionsRequest.Builder.accessible(boolean)

Version 2.29.1 – November 22, 2018 #

Improved floor transitions

Version 2.29.0 – November 20, 2018 #

Added useGyro(boolean) to LocationRequest to add the option to disable the gyro for positioning

Added useCompass(boolean) to LocationRequest to add the option to disable the compass for positioning

Version 2.28.1 – November 15, 2018 #

Improved auth token renovation

Fix disappearing outdoor locations in realtime in some circunstances

Version 2.28.0 – November 08, 2018 #

Updated Play Services Location library from version 11.2.0 to 16.0.0

Updated Support libraries from version 26.1.0 to 28.0.0

Version 2.27.0 – October 31, 2018 #

Added new MotionMode.VEHICLE_VISUAL_ODOMETRY to be used with the camera in a vehicle

Removed LocationRequest.useCamera(boolean) and replaced with MotionMode.BY_FOOT_VISUAL_ODOMETRY

Version 2.26.2 – October 23, 2018 #

Added load of beacons_uuids building custom field automatically. Now you don’t have to configure them in your code, you only set them once in the Dashboard. See Terminology page.

Version 2.26.0 – October 18, 2018 #

Added useCamera(boolean) to LocationRequest to use the camera for positioning. This is an experimental feature.

Fix returning LocationManager.isRunning() returning true after stoping the positioning

Version 2.25.6 – October 15, 2018 #

Fixed a bug when BLE setting was disabled.

Update to API 26.

Version 2.25.5 – October 02, 2018 #

Fixed wifi scanning when wifi status was changing constantly.

Fixed a bug that did not show how to enable wifi scanning in some Samsung devices.

Version 2.25.4 – September 18, 2018 #

Internal improvements.

Version 2.25.3 – September 12, 2018 #

Removed v1 classes.

Version 2.25.2 – September 06, 2018 #

Fixed BLE scanning in background with the screen off on Android 8+. The smartphone stopped scanning after some minutes.

Version 2.25.1 – September 04, 2018 #

Fixed realtime upload when using the RealtimeUpdateInterval.BATTERY_SAVER value

Version 2.25.0 – August 27, 2018 #

Refactored SitumEvent class. Deprecated some attributes and added trigger and conversion attributes and getters.

Version 2.24.3 – August 20, 2018 #

Added LocationStatus#GLOBAL_LOCATION_NOT_FOUND that is returned in indoor-outdoor mode when the Google Location Services don’t return any Location during the first 30s in the initilization phase.

Fixed a bug when the Google Location Services don’t return any location during the first 30s in initialization phase

Version 2.24.2 – August 06, 2018 #

Removed deprecated v1 classes from Javadoc

Version 2.24.0 – July 24, 2018 #

Added new errors when calculating routes: DirectionsManager.Code#GRAPH_NOT_FOUND and DirectionsManager.Code#GRAPH_BETWEEN_TWO_POINTS_NOT_FOUND returned when the building or the origin/destination floor has no paths

Reduced data usage sending locations to Realtime

Version 2.23.0 – June 28, 2018 #

Added option useGps(boolean) to LocationRequest.Builder to use GPS in indoor mode to improve the positioning

Version 2.22.0 – June 19, 2018 #

Added new algorithm to calculate routes that minimizes the number of floor change transitions (e.g. using one lift instead of two lifts) even if the route is longer. The default algorithm calculates the shortest route independent of floor changes. You can use the new algorithm setting passing true to the new option minimizeFloorChanges(bool) in DirectionRequest.Builder

On navigation during a floor change transition, fixed calling onUserOutsideRoute() when the user is positioning between the origin and destination floor

Fixed some invalid instructions in rare situations

Other internal performance improvements

Version 2.21.1 – June 05, 2018 #

During navigation, fix calling onDestinationReached() when the location is in a different floor than the destination and there is only a floor change left

Version 2.21.0 – May 24, 2018 #

Added method CommunicationManager#fetchOrganizationTheme() to fetch the organization theme

Version 2.20.1 – May 23, 2018 #

Increased HTTP request timeout to 40s

Version 2.20.0 – May 21, 2018 #

Added support for x86 and x86_64 architectures

Version 2.19.0 – May 16, 2018 #

Added method NavigationProgress#getClosestLocationInRoute() that returns the projected Location in the route. This will replace the method getClosestPointInRoute() (now deprecated) that returns a Point

Added method NavigationRequest#Builder#timeToIgnoreUnexpectedFloorChanges(long) to set the maximum time (in millis) to ignore locations in unexpected floors during a floor change indication during navigation. This will improve navigation experience during floor transitions

Version 2.18.2 – May 02, 2018 #

More improvements to indications during navigation

Version 2.18.0 – April 17, 2018 #

Improved indications during navigation. Added new options in NavigationRequest:

  • Added NavigationRequest#Builder#indicationsInterval(long) to set the interval to return indications during navigation
  • Added NavigationRequest#Builder#timeToFirstIndication(long) to set the time to return the first indication when starting navigation. While starting it will return a CALCULATING indication
  • Added NavigationRequest#Builder#roundIndicationsStep(int) to group the distances of the indications

Added method RouteStep#hasFloorChange() that return true if there is a floor change in that route step

Fixed a crash in NavigationManager#requestDirections()

Version 2.17.0 – March 22, 2018 #

Now you can configure the distance to receive the next indication during navigation with the method NavigationRequest.Builder#distanceToChangeIndicationThreshold(double distanceToChangeIndicationThreshold)

Fix BLE not scanning in Android 8.1 when the screen is off

Other minor improvements and fixes

Version 2.16.0 – February 28, 2018 #

Fixed notification channel needed in Android 8 for the Foreground notification

Show CHANGE_FLOOR indication when the user gets within a given threshold around a floor change. Added NavigationRequest.Builder#distanceToChangeFloorThreshold(double distanceToChangeFloorThreshold) and RouteStep.Builder.distanceToFloorChange(Double distanceToFloorChange)

Edit CHANGE_FLOOR indication to show destination level insted the number of levels to go up/down. Added Indication#getNextLevel()

Version 2.15.0 – February 20, 2018 #

Increased minSdkVersion from API 15 to API 16

Added notification channel needed in Android 8 for the Foreground notification

Other minor fixes

Version 2.14.3 – January 30, 2018 #

Added new LocationStatus.TIME_SETTINGS_MANUAL status message that will be sent when the device date & time is not set to automatic

Other minor fixes

Version 2.14.2 – January 22, 2018 #

Indoor-outdoor positioning fixes

Version 2.14.0 – January 09, 2018 #

Add internal support information

Minor positioning improvements

Version 2.13.0 – December 20, 2017 #

Now LocationRequest.useForegroundService(boolean) option is enabled by default. See Using Situm SDK in the background page for more information.

Improve memory management when downloading images

Other minor improvements

Version 2.12.1 – December 13, 2017 #

Fix orientation issue when uploading indoor locations to Realtime

Version 2.12.0 – November 29, 2017 #


Deprecated the next LocationRequest.IndoorProvider enum values: HYBRID and CLOUD. They are replaced with INPHONE mode. Added new SUPPORT mode to use only in communication with Situm support team

Improved positioning system and network data usage

Version 2.11.0 – November 14, 2017 #

Minor improvements to positioning system

Version 2.10.1 – November 07, 2017 #

Added new realtime upload interval, REALTIME, in LocationRequest that will upload locations every second. This interval is now the default value

Change the default indoor provider in LocationRequest from HYBRID to INPHONE

Version 2.10.0 – October 31, 2017 #

Improved some edge cases in positioning

Updated Play Services from version 10.0.1 to version 11.2.0. You will need to update your Gradle build scripts, see Play Services version 11.2.0 Release Notes

Updated support libraries from 23.4.0 to 25.2.0

Fixed that RealtimeManager returned outdoor locations with isIndoor() to true and with floorIdentifier empty

Improved indications returned by NavigationProgress

Version 2.9.0 – September 18, 2017 #

Added a battery saver mode that will save battery when the phone is not moving. You can enable it with the method LocationRequest.Builder#useBatterySaver(boolean)

Added option NavigationRequest#distanceToIgnoreFirstIndication(double) to ignore the first indication if the distance to the next is less than the value passed to the method

Added method Location.Builder#timestamp(long)

Improved indoor-outdoor transition

Other minor fixes to route calculation and indications

Version 2.8.1 – September 11, 2017 #

Fix an issue when positioning or calibrating in a building with a lot of WiFi APs

Version 2.8.0 – September 04, 2017 #

Added method Coordinate#distanceTo()

Added new constructor for Point Point#Point(Building, String, CartesianCoordinate) to create and indoor Point

Added method LocationRequest.Builder#smallestDisplacement(float) to set the minimum displacement between location updates

Added method LocationRequest.Builder#realtimeUpdateInterval(RealtimeUpdateInterval to change the realtime upload interval. This will improve the battery duration if the indoor provider is set to Inphone

Now the method LocationRequest.Builder#interval(float) is used to set the minimum interval between location updates

Internal improvements the location service and network data usage

Other minor fixes

Version 2.7.0 – August 02, 2017 #

Improved BLE and WiFi scanning. This will increase the positioning accuracy

Fixed scanning issues in some devices

Fixed starting the positioning in the main thread that caused the ui to block

Fixed SitumSdk#getVersion() method

Internal improvements to calibrations

Other minor fixes

Version 2.6.0 – June 30, 2017 #

Added RealtimeManager class. Now you can get the positioning users in realtime. Start using it with SitumSdk#realtimeManager()

Now you can use your custom beacon UUIDs for positioning. You can add them to the LocationRequest with the methods addBeaconFilter(BeaconFilter) and addBeaconFilters(List)

Other internal improvements

Version 2.5.0 – June 07, 2017 #

Added Dead Reckoning option in LocationRequest class to update the location bearing in ‘real-time’. Use the method LocationRequest#useDeadReckoning(boolean) to enable it

Other minor fixes and internal improvements

Version 2.4.0 – May 12, 2017 #

Added upload of locations to the realtime when using the Inphone indoor location provider

Other minor fixes and internal improvements

Version 2.3.0 – April 26, 2017 #

Improved positioning accuracy

Added the posibility to simulate locations with your own implementation of LocationManager that you can set in SitumSdk#setSimulatedLocationManager(LocationManager). To check if the SDK is using simulated locations the method SitumSdk#isUsingSimulatedLocationManager() is added

Fix POI categories not assigned correctly when calling CommunicationManager#fetchBuildingInfo() method

Fix CommunicationManager#fetchPoiCategoryIconNormal() returning the selected icon and CommunicationManager#fetchPoiCategoryIconSelected() returning the normal icon

Other minor fixes and improvements

Version 2.2.0 – April 20, 2017 #

Added method Location#getBearingQuality() to get the bearing quality. In indoors this will return the value calculated by the positioning system, in outdoors it will always return Quality#HIGH

Now Location#getCartesianBearing() and Location#getBearing() will return always the value calculated by the positioning system (like in SDK v1) but it can be unreliable, you must check Location#getBearingQuality(). For compatibility, Location#hasCartesianBearing() and Location#hasBearing() return True only if the Location has orientation and quality is Quality#HIGH

Improved Angle#toString() output

Version 2.1.0 – April 10, 2017 #

Added custom fields to SitumEvent, you can access to them with SitumEvent#getCustomFields()

Added getVersion() to SitumSdk class

With LocationRequest.Buider.interval(int) now you can configure with the interval to send data to the server to compute locations

Minor fixes

Version 2.0.1 – March 31, 2017 #

Fixed a bug when starting indoor-outdoor location with an user without builings

Fixed a bug with indications calculation

Fix issue with location bearing computation

Version 2.0.0 – March 28, 2017 #

Added indoor-outdoor mode

Added new interfaces to make it easy to use the SDK. See the migration guide

Reduced the configuration you need to start working with the SDK. Take a look to the new quickstart guide

Deprecated the old interfaces

Version 1.66g – February 15, 2017 #

Added an option in SitumPositioningOptions to select the indoor location provider: hybrid, cloud or inphone

Other minor fixes

Version 1.66e – November 23, 2016 #

Minor fixes to positioning

Version 1.66d – September 27, 2016 #

Added method SitumIpsManager#isRunning() to check if the positioning is running.

Minor changes to BLE scanning

Version 1.66c – September 20, 2016 #

Fix SitumDataManager callbacks not returning on main thread

Minor improvements to positioning

Version 1.66b – September 01, 2016 #

Added new methods with parameter options, fetchIndoorPOIsForBuilding and fetchOutdoorPOIsForBuilding, to filter the received pois by the custom fields.

Minor improvements.

Version 1.66 – August 30, 2016 #

Removed READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. Now are optionals.

Now Point2f and SitumFloorPoint classes implement the Parcelable interface.

Added two new methods in SitumBaseLogin:

  • setDashboardUrl(): allows to change the Dashboard URL.
  • setDefaultDashboardUrl(): changes the Dashboard URL to the SDK’s default value.

Added method getDashboardUrl() in SitumBaseDataManager to obtain the Dashboard URL.


Added the possibility to adjust the position a route during navigation.

Added the following methods in SitumIPSManager class:

  • adjustLocationToRoute(list<SitumFloorPoint>): starts setting the next localizations received to a route.
  • stopAdjustingLocation(), for setting the localizations to the route.
  • isAdjustingLocation(): it returns true if the setting localizations to a route is activated

Version 1.65c – July 28, 2016 #

If proguard is used to obfuscate the apk’s, it is required include the following line into the proguard-rules:

keep class es.situm.sdk.v1.** { *;}

The method of the SitumIndoorPOI.getLevelid() class is renamed to SitumIndoorPOI.getLevelId().

The method of the SitumPOI.getHtmldescription() class is renamed to SitumPOI.getDescription().

Version 1.65b – July 22, 2016 #

A method is added in SitumBaseDataManager to invalidate the cache: invalidateCache().

Subscribe to our newsletter


Data controller: SITUM TECHNOLOGIES, S.L.
Contact: Data controller:
Responsible for protection:
Purpose and legal basis: To manage the sending of SITUM newsletters only with consent.
Legitimation: Express consent of the interested party.
Recipients: The data will not be passed on to third parties with the exception of legal obligations.
Retention period: As long as the interested party remains subscribed to the newsletter (a link to unsubscribe will be available in each newsletter sent by Situm).
Rights: The interested party may at any time revoke their consent, as well as exercise their rights of opposition, access, conservation, rectification, limitation, deletion of data and not be subject to a decision based only on automated data processing, by writing to SITUM at the addresses indicated.
Additional Information: You can consult additional and detailed information on Data Protection in our privacy policy.

Please, download your copy here

Thank you for downloading our whitepaper. Please do not hesitate to contact us if you would like to know more about how our solutions can help your business. Download whitepaper

Close window