09/06/2022 Version 1.3.0
Version 1.3.0 does not introduce any major features, but fixes important crashes, and we recommend all apps upgrade to 1.3.0
SDK status methods
New methods introduced that provide the app with current SDK status
CrowdConnected.getInstance().isRunningSuccessfully()
CrowdConnected.getInstance().isNavigationRunning()
Bug fixes and improvements
Fixed crashes (particularly but not exclusively on Android 12) relating to starting a foreground service in the background.
Fixed a rare crash relating to concurrent modification.
Fixed an issue that caused the SDK version to be incorrectly reported to our platform.
Fixed an issue that could cause the app to crash if beacons were misconfigured in our database.
Improved API polling so that is dynamic, improving battery and network efficiency.
Throttle rate at which aliases are sent to the platform to prevent spamming.
09/02/2022 Version 1.2.0
Version 1.2.0 is a major release, and we recommend all apps upgrade to 1.2.0
Android 12
The library now has a targetSdkVersion of 31 (Android 12).
The manifests include legacy permissions needed to scan for beacons (BLUETOOTH and BLUETOOTH_ADMIN) and also the new permissions of BLUETOOTH_SCAN and BLUETOOTH_CONNECT for Android 12.
ACCESS_COARSE_LOCATION has also been added to the manifests, as this is now necessary whenever ACCESS_FINE_LOCATION is required.
For the library to function, apps need to request runtime ACCESS_FINE_LOCATION permission from all users, and additionally for targetSdkVersion >=31 only, runtime BLUETOOTH_SCAN AND BLUETOOTH_CONNECT permissions.
Dependencies have all been updated to the latest stable versions.
Changes to location permission
The library can now be safely started if location or Bluetooth runtime permissions have not yet been granted by the user.
An additional restart() method has been provided, which can be called when permission has been granted.
This relaxes the previous requirement that the library should be started whenever the app starts, but only if location permission has been granted, and also after permission has been granted.
The new library version can be started whenever the app starts without checking for runtime permissions. The restart() method should then be called when either location or Bluetooth permissions have been granted.
Geo and IPS in a single app
From version 1.2.0 the geo module and IPS module can be included in a single app. The library intelligently switches between the positioning technologies.
The location object returned via the callback now has any additional type property which has the values 'IPS' or 'GEO'.
Multiple geo data collection zones.
Previously only one location for background data collection could be specified. From version 1.2.0, multiple locations can be specified, and background data collection will start when the app is opened inside any one of the zones and will stop once the user has exited all zones.
Bug fixes and improvements
- Fixed two issues that could cause the foreground service to fail to stop.
- Improved handling of changes to config after the library has been started.
26/01/2022 Version 1.1.6
Fixes issue that causes crash on Android 12 whenever foreground service is started.
17/12/2021 Version 1.1.5
Locations provide X and Y in display units (pixels)
For floors using built-in floorplans, or ExpoFP imported floorplans, the Location object provided to the LocationCallback now has x and y coordinates in display units as well as meters. These values can be passed straight to the map with no transform necessary. Use the getXPixels() and getYPixels() methods.
Success Callback
The StatusCallback provided to the library on startup now has an onStartUpSuccess method as well as the onStartUpFailure method. The app should wait until the success callback has been received before interacting with the library. In particular, setting the location callback, and setting any aliases must be done after receiving the success callback.
This prevents potential issues that were possible if the location callback was set, or aliases were set before the library had completely initialised.
Eddystone beacon support
For indoor positioning, Eddystone beacons are now supported as well as iBeacons.
Enhancements
Better floor selection algorithm in the indoor positioning engine.
Bug Fixes
Various bug fixes improving stability.