Android SDK Release Notes

The Android SDK release notes describe recent improvements, fixes, and new features for the Meridian Android SDK which can be used to create new Android Meridian-powered apps or incorporate Meridian functionality in existing Android apps.

SDK (Android)

Go here to download the latest version of the Android SDK.

May 30, 2019 - 5.4.0

  • Improved: Fixed several minor accessibility issues.
  • Various minor improvements and fixes.

April 29, 2019 - 5.3.0

  • Improved: For Location Sharing, Last Heard has been added for users who've shared their location with you. This matches iOS functionality.
  • Improved: It's now possible to customize the blue dot's color and shape.
  • Improved: Map exclusion areas and unnamed outdoor areas are no longer shown on the map.
  • Various minor improvements and fixes.

April 1, 2019 - 5.2.0

  • Various minor improvements and fixes.

February 28, 2019 - 5.1.0

  • New: Swedish language support.
  • Various minor improvements and fixes.

January 31, 2019 - 5.0.0

  • New: For locations with a large number of buildings, the level picker only shows building names until a specific building is selected.
  • New: When searching, the SDK checks the is_map_published field to filter out unpublished maps from the results.
  • Improved: Deprecated Android KitKat support.
  • Improved: The following placemark fields are now available, matching the iOS SDK: imageURL, url, email, and phone.
  • Improved: The SDK is now using the AndroidX support libraries.
  • Fixed: On loading a map, all placemarks were being shown. Only the placemarks at the default zoom level are shown now.
  • Various minor improvements and fixes.

December 13, 2018 - 4.10.0

  • Improved: More useful HIDE_OVERVIEW_BUTTON documentation.
  • Improved: The Samples app now includes a mapView example.
  • Improved: The SDK exposes latitude and longitude values of Beacons and placemarks.
  • Improved: The SDK won't listen for campaigns if there aren't any active campaigns.
  • Improved: With Android M and later, the SDK will only scan for iBeacons in order to improve battery usage.
  • Fixed: Better handling of label text line breaks.
  • Fixed: Routing to a nearby placemark drew a straight line across the map.
  • Fixed: Single segment routes were missing a directional arrow.
  • Fixed: The GPS range grey box has been replaced with a green circle.
  • Various minor improvements and fixes.

October 31, 2018 - 4.9.1

  • Fixed: A dependency issue.

October 25, 2018 - 4.9.0

  • New: We've added the new marker type OverlayMarker to match the iOS SDK's MRPathOverlay functionality. Overlays can be used to draw shapes on a Meridian map, either on map load or in response to a user action. An example has been added to the Android Meridian Sample app.
  • Fixed: Incorrect distances were shown when close to the end of a routing segment.
  • Various minor improvements and fixes.

September 27, 2018 - 4.8.0

  • Improved: It's easier to dismiss the floor level picker.
  • Improved: On the map screen, a single pixel artifact was removed.
  • Improved: The placemark getArea function now returns a publioc polygon.
  • Improved: The placemark description is now accessible through the SDK.
  • Improved: The Aruba watermark can be hidden like on iOS.
  • Fixed: An issue related to Active Campaign accuracy.

August 30, 2018 - 4.7.0

  • Improved: To match iOS, direction requests timeout after 30 seconds.
  • Fixed: A map label text issue on Android Pie.
  • Fixed: Shortest and Accessible routes are now selected when tapped.
  • Fixed: The floor picker is wider now so that it doesn't cut off double-digit floor numbers.
  • Various minor improvements and fixes.

July 26, 2018 - 4.6.0

  • Improved: The Meridian logging level can be adjusted.
  • Improved: The Samples app's use of SearchFragment for directions is more consistent with an actual implementation.
  • Improved: The SDK can support more than 100 maps.
  • Fixed: Campaigns were taking a bit too long to trigger. The improved latency brings Android more in line with iOS.
  • Various minor improvements and fixes.

June 29, 2018 - 4.5.0

  • Various minor improvements and fixes.

May 30, 2018 - 4.4.0

  • New: "Device Charging" and "Desk" placemark types.
  • New: Friend can be used with DirectionsDestination.
  • Fixed: A missing Spanish translation when the app couldn't load directions.
  • Fixed: When using location sharing, in the map selection the same friend was showing up on every map level.
  • Various minor improvements and bug fixes.

Android SDK 4.4.0 AS-516 [TAC] Few routes are broken in Android app (Rio Galeão) AS-578 In the map selection friends appear on all floors/ levels of the block/ building they are in.
AS-580 Get rid of Goals AS-581 Missing translation: could not load directions AS-582 Add ‘Device Charging’ and ‘Desk’ Placemark types AS-585 Level/ map picker search is broken/ displaying text incorrectly AS-579 Add Friend as DirectionsDestination

April 27, 2018 - 4.3.0

  • Improved: A message displays when a map can't be loaded because of a lack of internet connection. This matches iOS.
  • Improved: Taking advantage of the new System Location Provider for GPS on Android 8.0+.
  • Fixed: An issue related to mapless campaign notifications.
  • Fixed: Minor UI issues.
  • Various minor improvements and bug fixes.

April 3, 2018 - 4.2.0

  • Improved: If things are down to one meter, the text goes from plural to singular. Delightful!
  • Improved: If you don't like that compass reorientation message, you can turn it off.
  • Improved: Location Sharing uses a more graceful technique for friend location updates.
  • Improved: Removed the deprecated APIs.
  • Improved: There's an API to get the current Meridian SDK version.
  • Improved: You can configure the compass orientation alert threshold.
  • Fixed: Calling initGoalsForLocation would cause a 403 error.
  • Fixed: If you were using an Android Oreo device, sometimes notifications weren't getting to you.
  • Fixed: In some cases, MapFragment was causing crashes because of a lack of a public constructor. It's fixed now.

February 28, 2018 - 4.1.0

  • Improved: Internal debugging tools.
  • Improved: Now supports Gradle 3.0.0.
  • Improved: Resume has been added to Directions Overview to match how it works on iOS.
  • Improved: Routing will no longer autoadvance to the next routing segment if it's less than 6.1 meters.

January 31, 2018 - 4.0.0

  • Fixed: A map issue related to right-to-left languages, such as Arabic.
  • Fixed: Various translation issues in different languages.
  • New: Dutch and Czech language support.
  • New: Look and feel for the map UI.
  • New: Removed support for Android Jellybean.

December 14, 2017 - 3.10.0

  • Fixed: A bug related to location sharing.
  • Fixed: Blue dot wasn't showing for Beacons without a map_id.
  • Fixed: The map level picker was returning all levels, instead of only the levels for the current building.
  • Fixed: There were issues with the blue dot's compass cone on some newer devices.
  • Additional bug fixes and performance improvements.

October 26, 2017 - 3.9.0

  • Fixed: A crash related to searching for a map.
  • Fixed: An issue where Android Oreo was interfering with location services.

September 28, 2017 - 3.8.0

  • Fixed: A bug related to paginated requests.
  • Fixed: Even when the compass was turned off, the reorientation message would appear.
  • Fixed: Miscellaneous bug fixes and performance improvements.
  • Fixed: The accessibility icon was appearing in the wrong location.

August 24, 2017 - 3.7.0

  • Fixed: Issues related to an upcoming feature.
  • Improved: Better internal metrics.
  • Improved: Increased the minimum GPS constant to 10 meters.

July 27, 2017 - 3.6.0

  • Fixed: A bug related to an upcoming feature.
  • Fixed: Miscellaneous bugs.
  • Fixed: The map label wasn't showing the map name correctly.
  • Improved: Support for a new upcoming endpoint.

June 20, 2017 - 3.5.0

  • Fixed: The animated route loading animation wasn't visible on 4.x device.
  • Improved: Active Campaigns now support on exit triggers.
  • Improved: New API endpoints for simulated location and campaign triggers.
  • Improved: The externalID field has been added to the asset tracking API endpoint.

May 31, 2017 - 3.4.0

  • Fixed: Campaign dwell times weren't being reported to the Editor.
  • Fixed: Sometimes the app would crash when switching locations while a route was being plotted.
  • Fixed: The SDK now uses the new maps API endpoint.
  • Improved: Better search for an upcoming feature.
  • Improved: Better support for TalkBack/Accessibility.
  • Improved: The new Search API is now available.
  • Improved: The Samples app points to a new, read-only location.
  • Improved: There's better messaging when a map can't be loaded.
  • New: Support for an upcoming feature.

April 18, 2017 - 3.3.0

  • Fixed: The default placemark zoom levels match iOS now.
  • Fixed: The Directions and Show My Location buttons weren't vertically aligned. They are now.
  • Fixed: The Samples app reorient message wasn't disappearing after canceling directions.
  • Improved: Making sure things are working right for an upcoming feature.
  • Improved: The Samples app no longer includes the Meridian app token. Please use your own app token.
  • Improved: We've put the application token in a "shared" location to make it easier to set up location sharing and other upcoming features.
  • New: Internal admin tools.

March 27, 2017 - 3.2.0

  • Fixed: Miscellaneous bugs.
  • Fixed: There was a bug related to manually advancing directions.
  • Improved: Performance tweaks.
  • Improved: The Location button behavior is now customizable.
  • Improved: When the routing compass is enabled, there are orientation alerts that will tell you if you're facing away from a route's direction.

February 22, 2017 - 3.1.0

  • Fixed: The blue dot had an excessive delay when updating to the user's current location.
  • Fixed: The compass direction would flip when the device was rotated downward past the horizontal.
  • Fixed: The default style for an inaccessible area is full white with full opacity. This was causing problems because this was also the style for unset colors. It renders correctly now.
  • Improved: The double-tap zoom is smooth now.
  • New: A two-finger single tap gesture zooms out.
  • New: The SDK checks if all required dependencies have been added to the project.

January 27, 2017 - 3.0.0

  • Added: Customizable rerouting parameters.
  • Fixed: An occasional crash when loading placemarks.
  • Fixed: Certain BuildConfig values were being ignored.
  • Fixed: Ellipse map elements render.
  • Fixed: Issues with compass calibration and accuracy.
  • Fixed: Push notifications weren't being received on Android 7.
  • Improved: Consolidated loading spinner and MapLabel when loading placemarks.
  • Improved: The blue dot compass is a cone instead of an arrow, matching iOS.
  • Improved: Zoom levels adjusted to match iOS SDK.

December 14, 2016 - 2.19.0

  • Fixed: Adjusted text size on default PlacemarkMarker.
  • Fixed: The Map Name label is back.
  • Improved: More consistent results for the new PlacemarkRequest.
  • Improved: More predictable and consistent zoom while navigating.
  • New: MapFragment and Mapview can now be initialized with a placemark key. This will cause them to load only a single placemark.
  • New: Asynchronous loading for large sets (100+) of placemarks.

November 4, 2016 - 2.18.0

  • Fixed: The Map Controls are now hidden correctly.
  • Fixed: The My Location button was immediately causing an error when a location hadn't been generated. It now starts a loading spinner.
  • Fixed: The SDK calls onMapRenderFinished after initial centering of the MapView, instead of before.
  • Improved: Location accuracy.
  • Improved: The placemark UID is now accessible.
  • New: Minimum supported Android API is 16.
  • New: The SDK uses the new placemarks API.

September 29, 2016 - 2.17.0

  • Fixed: The location button wasn't hidden properly.
  • Improved: In the map picker, buildings are sorted alphabetically and map levels are sorted in descending order.
  • New: The GPS accuracy threshold value is now modifiable.

September 22, 2016 - 2.16.1

  • Fixed: Apps crashed when a Location Sharing friends icon was tapped.

September 20, 2016 - 2.16.0

  • Fixed: If a placemark was selected and a user chose a different floor using the map level picker, the selected placemark appeared on the new map.
  • Fixed: If the map level picker was opened, and then closed by tapping outside the menu, a white circle was rendered on the map.
  • Fixed: On some devices, the selected placemark icon underlay was offset too much.
  • Fixed: Some Location Sharing friend icons were larger than others.
  • Fixed: The formatting and alignment of the placemark text callout was inconsistent.
  • Fixed: The map level picker wasn't visible on some overview maps.
  • Improved: Map UI design.
  • Improved: The routing context menu was too small to tap easily. It's now a bit larger.
  • New: Blue dot compass can now be enabled/disabled.

August 4, 2016 - 2.15.3

  • Added: Diagnostics includes zoom level.
  • Added: Support for reading per map maximum zoom values from the Editor.
  • Fixed: An issue involving an upcoming feature.
  • Improved: Default settings for an upcoming feature.
  • Improved: Routing advancement.
  • Improved: We're using the New Search Level Picker as the default floor selector.

June 29, 2016 - 2.15.2

  • Added: It's now possible to enable a compass arrow on user's the blue dot location. GPS coordinates are required for the compass arrow to work.
  • Fixed: Bluetooth hardware on some Samsung devices was causing a stack crash.

June 22, 2016 - 2.15.1

  • Added: getCampaignId(Intent i) in the CampaignBroadcastReciever.
  • Added: Language updates.
  • Fixed: Crashing when Beacon RSSIs were updated while Beacons were being sorted.
  • Fixed: GPS exclusion areas used on multiple maps weren't being calculated correctly.
  • Fixed: Location generation data wasn't being updated appropriately when switching between locations.
  • Fixed: Map rendering would intermittently stall.
  • Fixed: Placemarks without names weren't showing on the map.
  • Fixed: The default GPS accuracy was set to zero.

April 25, 2016 - 2.15.0

  • Added: New Location Sharing feature. Please see the Meridian Samples project in the SDK for example usage.
  • Added: New map level picker designed for large numbers of maps. Enable it with Meridian.getShared().setPickerStyle().
  • Fixed: The creation process for some maps was causing the app to crash.
  • Improved: General location generation and smoothing improvements.
  • Improved: Map rendering is done on demand, instead of continuously.
  • Improved: The default routing snap to route distance can be set with Meridian.getShared(),setRouteSnapDistance().
  • Improved: The maximum zoom level can be set globally with Meridian.getShared().setDefaultMaxMapZoom().
  • Improved: Transparent markers are ignored for collision.

January 28, 2016 - 2.14.6

  • Added: Email crash reporting to AppViewer's Samples app.
  • Added: Native library support for the armabi-v8a ABI for better CPU performance.
  • Added: New onLocationUpdated callback to MapFragment to improve location performance.
  • Fixed: BLE scans were blocking Wi-Fi on some shared Wi-Fi/Bluetooth antennae hardware.
  • Fixed: Blue dot occasionally vanished during map switching.
  • Fixed: Crash when switching maps while routing.
  • Fixed: On some LG devices running Android 4.x, BLE scans were causing the UI to stutter.
  • Fixed: Some location performance issues.
  • Improved: Beacon detection.
  • Improved: Better smoothing.
  • Improved: Device identifiers are more reliably unique.
  • Improved: Routing step distances update as a user changes location.
  • Updated: Now using Android API 23 style permissions. Older manifest permission still work.

November 20, 2015 - 2.14.5

  • Added: User location can now be simulated for development builds. See Simulating Location in the README.
  • Fixed: A crash caused by some listeners unexpectedly being null.
  • Fixed: A native crash when removing Markers in a specific order.
  • Fixed: Markers that were added to the map and then moved to the bottom of the weight priority were failing to render.
  • Fixed: Units per meter were being incorrectly calculated for some maps with a rare arrangement of GPS reference points.
  • Fixed: ZoomLevels were being calculated incorrectly with some screen densities.
  • Improved: Campaign reporting.

September 8, 2015 - 2.14.4

  • Added: Support for Alpha and Scale animations for Markers.
  • Added: Support for minimum and maximum visible zoom levels for Markers.
  • Fixed: Areas not being set on Placemarks.
  • Fixed: Crash caused by rapidly switching back and forth between maps while animations were active.

August 17, 2015 - 2.14.3

  • Added: MapInfo methods for converting between latitude/longitude and Meridian map coordinates.
  • Fixed: Various map-related crashes.
  • Improved: Proguard exceptions.
  • Fixed: Corrupted transparency issue when the same bitmap is used for multiple Markers.

July 27, 2015 - 2.14.2

  • Added: Markers have invalidate methods that will update Marker properties and bitmaps.
  • Added: Propagate Proguard rules.
  • Added: Support for manually setting the PlacemarkMarkers icon.
  • Added: Support for right-to-left languages, such as Hebrew and Arabic.
  • Fixed: Added Markers vanished when the map reloaded.
  • Fixed: Various map-related crashes.
  • Improved: Auto re-routing for an improved end-user experience.

July 1, 2015 - 2.14.1

  • Added: Example proguard rules in the MeridianSamples project.
  • Added: Report analytics to the Meridian Editor.
  • Added: Two new Map Markers properties--ScaleFixedToMap and RotationFixedToMap. Enables locking Markers to the scale and rotation of the map, as opposed to the screen.
  • Fixed: Marker weights to order both colliding and non-colliding Markers properly.
  • Improved: Moved all MapView and MapFragment listener callbacks to the main thread. (The Marker's getBitmap and all Transaction callbacks are on the GLThread. Make sure to return quickly and catch exceptions to avoid a native crash.)
  • Improved: Native layer memory.
  • Improved: Stability fixes for the MapView when setting keys not attached to a window.

June 16, 2015 - 2.14.0

  • Added: MapEventListener method for easier notification of map transforms changing.
  • Added: Transaction animation times are configurable, as well as callbacks for when Transactions are added to the map and their initial animation has completed. (In the Samples app, see CustomMarkerFragment for examples.)
  • Improved: Map Markers allow for Marker Transactions to be added, modified, or removed.
  • Improved: Marker objects can be weighted to adjust priority during collision.
  • Improved: Marker rendering performance.
  • Improved: Pausing and resuming on Android 5+ devices conserves battery more effectively.
  • New: Marker objects can toggle Collision.

May 28, 2015 - 2.13.12

  • Fixed: Crashing issue on Android 5+ devices.
  • Fixed: Exit campaigns firing when a proximity beacon was never seen.
  • Fixed: OpenGL generating excessive log spam.
  • Improved: Marker rendering performance.
  • MapView: Added support for setting background color.
  • MapView: Added frame time limiter to improve battery use.

April 13, 2015 - 2.13.11

  • Added: Snap to route and auto rerouting. These are disabled by default and must be enabled in the Meridian class.
  • Added: Support for hiding PlacemarkMarker names.
  • Fixed: Black screen when animating a MapView.
  • Fixed: Routing bug causing "Route not found" errors for devices set to Spanish
  • MapEventListener: Updated to show when a map is loaded and rendered. (see README)
  • onDirectionsStart: Added to MapDirectionsListener to show when directions have finished loading and are being displayed.
  • Updated: Moved initial configuration into a Meridian singleton. (see README)

March 17, 2015 - 2.13.10

  • Added: Support for Campaign Push through the Editor. (see README)
  • Added: Support for clearing a MapView by setting its MapKey to null.
  • Fixed: Placemarks not showing with more than 500 placemarks on a map.
  • Fixed: Prompt for bluetooth to be turned on when already enabled.
  • Fixed: MapOptions not being propagated correctly to the MapFragment.
  • Fixed: Crash caused by lack of network connectivity.
  • Fixed: Campaign reset delay bug.

February 24, 2015 - 2.13.9

  • Added: Support for directions arrows for devices set to a non-English language.
  • Fixed: Campaign notifications not triggering correctly.
  • Fixed: Crash when clearing the map in a MapView during onPause/onResume.
  • Fixed: Route vanishing after onPause/onResume when using MapView directly.

February 13, 2015 - 2.13.8

  • Fixed: Crash related to poor network connectivity.
  • Fixed: NullPointerException caused by a threading issue in MeridianLocationService.

February 10, 2015 - 2.13.7

  • Added: Cache timeout override properties to the Meridian class.
  • Added: Caching support for all web requests.
  • Added: Loading spinner to the MapFragment while the map is loading.
  • Added: New location issue reporting screen (hold down 2 fingers on any map)
  • Fixed: Dialogs on Samsung devices not canceling correctly.
  • Fixed: Map controls too small or misaligned.
  • Fixed: Related maps on placemarks not being followed when tapped.
  • MapItem: Removed in favor of explicit DirectionsSource and DirectionsDestination parameters.

January 12, 2015 - 2.13.6

  • Added: Ability to exclude specific placemark keys from SearchFragment results.
  • Added: More EditorKey static constructors.
  • Fixed: Crash when switching rapidly between maps.
  • Fixed: Directions using a single placemark as a source were not generating a route.
  • Fixed: Routes were not clearing appropriately on fragment resume.
  • Updated: Improved Samples app.
  • Updated: Reorganized listeners on MapView and MapFragment to make implementations simpler. (see README)