Releases: mapbox/mapbox-navigation-android
Navigation SDK v3.10.0-rc.1
Navigation SDK Core Framework 3.10.0-rc.1 - 06 June, 2025
Features
- Introduced performance trace points for navigation
- Added filtering inaccurate wheel speed for Dead Reckoning to reduce possible location jumps in case of wheel slippage
- Added provide the latest tiles version when tileset descriptors requested with empty version.
- Added support for delta updates for routing and ADAS tiles
- Added reading of life-traffic-service and reporting them to ADASIS traffic events
- Improved heading interpolation
Bug fixes and improvements
- Fixed incorrect route request with user added charging station
- Fixed incorrect edge expansion during simulation by teleporting
- Improved behavior on roundabouts: avoid cases when the vehicle position circles around the roundabout in case of matching errors
- Fixed re-enabling route refresh after leg change
- Removed caching of mapbox access token
Known issues ⚠️
Other changes
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.13.0-rc.1
(release notes) - Mapbox Navigation Native
v324.13.0-rc.1
- Mapbox Core Common
v24.13.0-rc.1
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.4
Navigation SDK Core Framework 3.9.4 - 12 June, 2025
Features
Bug fixes and improvements
- Fixed an issue where after a reroute the vanishing point on the route line might have been ahead of the actual vehicle's position.
- Improved road graph calibration in Dead Reckoning for more accurate localization in tunnel and urban canyon.
- Fixed corner cases when Dead Reckoning cannot use the road graph for correction; improved wheel speed filtering for a more accurate trajectory.
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.4
(release notes) - Mapbox Navigation Native
v324.12.4
- Mapbox Core Common
v24.12.4
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.3
Navigation SDK Core Framework 3.9.3 - 05 June, 2025
Features
- Filter inaccurate wheel speed for Dead Reckoning to reduce possible location jumps in case of wheel slippage
- Support strict road heading to avoid drift on turns with 1Hz by ability to disable heading interpolation for keypoints and road heading policy.
- Added experimental
NavigationPerformance#performanceTracingEnabled
which enables/disables internal performance trace sections.
Bug fixes and improvements
- Fixed a bug where alternative routes from
RoutesUpdatedResult#ignoredRoutes
were set toRoutesUpdatedResult#navigationRoutes
after the first route progress update. - Improved behavior on roundabouts: avoid cases when the vehicle position circles around the roundabout in case of matching errors
- Fixed incorrect route request with user added charging
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.3
(release notes) - Mapbox Navigation Native
v324.12.3
- Mapbox Core Common
v24.12.3
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.10.0-beta.2
Navigation SDK Core Framework 3.10.0-beta.2 - 30 May, 2025
Features
- Now
SensorData.Weather
can be instantiated with a list of@WeatherCondition.Type
or detailed weather information represented by@WeatherDetail.Type
. ⚠️ Breaking changes in Experimental API.SensorData.Weather
no longer has public propertyconditionType
RoadCamerasManager
in active guidance now relies on newroad_camera
Directions API annotation, which improves the performance of the camera data retrieval and quality of the data.- Added
MapboxRoadCamera::activeGuidanceInfo
, containing information about the route id, leg index, geometry index and step intersection of the camera in active guidance. - Added support of immediate update of location puck bearing in [NavigationLocationProvider] in case of overlapping key points.
Bug fixes and improvements
- Fixed a bug where alternative routes from
RoutesUpdatedResult#ignoredRoutes
were set toRoutesUpdatedResult#navigationRoutes
after the first route progress update.
Known issues ⚠️
Other changes
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.13.0-beta.1
(release notes) - Mapbox Navigation Native
v324.13.0-beta.1
- Mapbox Core Common
v24.13.0-beta.1
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.10.0-beta.1
Navigation SDK Core Framework 3.10.0-beta.1 - 22 May, 2025
Features
⚠️ Breaking changes in Experimental API.MapboxEvSearchClientFactory.#getInstance()
no longer accepts access token as a parameter. The defaultMapboxOptions.accessToken
will be used.CarPlaceSearchOptions.accessToken
and corresponding builder function has been deprecated becauseaccessToken
is no longer in use as the search component now uses the defaultMapboxOptions.accessToken
.- Used legacy/custom date primitives in EV modules to support older Android API levels.
- Added
DriverNotification
,DriverNotificationProvider
interfaces withEvBetterRouteNotificationProvider
andSlowTrafficNotificationProvider
implementations. Add newDriverNotificationManager
API to attach or detach providers andDriverNotificationManager.observeDriverNotification()
to handle the flow of driver notifications. - Added default location providers.
- Added
EvBusyChargingStationNotificationProvider
to notify when the EV is charging station is busy and propose alternative route. - Added experimental
NavigationPerformance#performanceTracingEnabled
which enables/disables internal performance trace sections.
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.13.0-beta.1
(release notes) - Mapbox Navigation Native
v324.13.0-beta.1
- Mapbox Core Common
v24.13.0-beta.1
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.2
Navigation SDK Core Framework 3.9.2 - 23 May, 2025
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.2
(release notes) - Mapbox Navigation Native
v324.12.2
- Mapbox Core Common
v24.12.2
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.1
Navigation SDK Core Framework 3.9.1 - 19 May, 2025
Features
Bug fixes and improvements
- Optimized
MapboxRouteLineView#renderRouteLineUpdate
execution time. - Fixed missing successful callback in
MapboxNavigation#switchToAlternativeRoute
.
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.1
(release notes) - Mapbox Navigation Native
v324.12.1
- Mapbox Core Common
v24.12.1
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.0
Navigation SDK Core Framework 3.9.0 - 09 May, 2025
Features
- Support road cameras in free drive. Enable by calling
RoadCamerasManager.instance.isActiveInFreeDrive = true
and adjust display configMapboxRoadCamerasDisplayConfig.Builder().showInFreeDrive(true).build()
. - Added experimental
NavigationPerformance#performanceInfoLoggingEnabled
which allows applications to enable info level logging of performance information. - Added experimental
MapboxNavigation#switchToAlternativeRoute
that support switching between alternative routes with different amount of waypoints. - Add
DriverNotification
,DriverNotificationProvider
interfaces withEvBetterRouteNotificationProvider
andSlowTrafficNotificationProvider
implementations. Add newDriverNotificationManager
API to attach or detach providers andDriverNotificationManager.observeDriverNotification()
to handle the flow of driver notifications - Added utility class
GeoUtils
which provide functionality to calculate unique identifier for provided link (part of a road between two intersection). - Added
EHorizonOptions#enableEnhancedDataAlongEH
flag to control access to enhanced data attributes (from ADAS data layer). - Added a new function
MapboxRouteShieldApi#getRoadComponentsShields
which accepts a list ofRoadComponent
. - Added support for
exclude_operators
parameter in EV search. - Clear caches when device memory is low.
- Added helpPhone field to EV Location class.
⚠️ Breaking changes in Experimental API.AdasSpeedLimitRestriction.VehicleType
has been moved tocom.mapbox.navigation.base.model.VehicleType
.⚠️ Breaking changes in Experimental API: MapboxRouteCalloutApi and MapboxRouteCalloutView are no longer publicly available.- New option MapboxRouteLineApiOptions#isRouteCalloutsEnabled to allow MapboxRouteLineApi calculate data for route callouts.
- New function MapboxRouteLineView#enableCallouts now allows to render route callouts on the map by setting an adapter.
- Added DefaultRouteCalloutAdapter which provides a built-in adapter for route callouts.
- Add
MapboxRoadCamera::inOnRoute
flag which indicates if the roiad camera is on the current route. - Add
MapboxRoadCamerasDisplayConfig::showOnlyOnRoute
config parameter to display only road cameras on the route. - Added support for EV charge point tariffs accessible via
EvStation.tariffs
. - New experimental property
LocationMatcherResult.correctedLocationData
is available. - New experimental function
GraphAccessor.getAdasisEdgeAttributes()
is available. It returns ADAS attributes for the requested edge. - Expose road type in the
MapboxRoadCamera
- Added support for section control speed cameras.
- Extended
MapboxTripProgressApi
to provide information about time zone at leg/route destination. - Added
TripProgressUpdateFormatter.getEstimatedTimeToArrival
overload that formats ETA using a given time zone. - Added curvatures support on intersections in ADAS tiles
- Reduced amount of error logs
- Added periodic logs of Navigator/Cache configs
- Added support for wheel speed usage during no signal simulation to determine passed distance for mobile profile
- Improved off road transitions
⚠️ Breaking changes in Experimental APIMapboxRouteCalloutView#renderCallouts(RouteCalloutData,MapboxRouteLineView)
. It's required to associate Route line with Callout View.- Added experimental
SearchAlongRouteUtils
class to optimize search along routes scenario by providing optimally selected points. - Added experimental
RoutingTilesOptions#hdTilesOptions
to configure HD tiles endpoint. DataInputsManager
now can be used from any thread.- Added experimental Road Cameras modules to provide notifications about road cameras along the route and show them on the map.
- Added option to display the route line with a blur effect.
- Added experimental functions
MapboxNavigation#startTripSessionWithPermissionCheck()
andMapboxNavigation#startReplayTripSessionWithPermissionCheck
that immediately throwIllegalStateException
if they are called withwithForegroundService
parameter set to true, but Android foreground service permissions requirements are not met. - Added support for SVG junction views, see
MapboxJunctionApi#generateJunction(instructions: BannerInstructions, @JunctionViewFormat format: String, consumer: MapboxNavigationConsumer<Expected<JunctionError, JunctionViewData>>)
. - Added experimental
NavigationRoute#routeRefreshMetadata
which contains data related to refresh of the route object. - Signature of experimental
EtcGateApi#updateEtcGateInfo
function has been changed, now it acceptsEtcGateApi.EtcGateInfo
as a function parameter. - Experimental Data Inputs functionality has been removed from the
core
module to a separatedatainputs
module (MapboxNavigation#dataInputs
and everything from the packagecom.mapbox.navigation.datainputs
have been removed). Contact us to get more information on how to get access to the module. - Experimental Adasis functionality has been removed from the
core
module (MapboxNavigation
's functionssetAdasisMessageObserver
,resetAdasisMessageObserver
,updateExternalSensorData
, andGraphAccessor#getAdasisEdgeAttributes
have been removed). Contact us in case you're interested in ADASIS functionality. - Added experimental
RoutingTilesOptions#fallbackNavigationTilesVersion
which lets define version of navigation tiles to fallback in case of offline routing failure with navigation tiles defined inRoutingTilesOptions#tilesVersion
. - Added experimental
MapboxRouteLineViewOptions#fadeOnHighZoomsConfig
andMapboxRouteArrowOptions#fadeOnHighZoomsConfig
to configure smooth fading out of route line or/and arrows on high zoom levels. - The
PredictiveCacheController(PredictiveCacheOptions)
constructor is now deprecated. UsePredictiveCacheController(MapboxNavigation, PredictiveCacheOptions)
instead. - Added
NavigationScaleGestureHandlerOptions#followingRotationAngleThreshold
that define threshold angle for rotation forFOLLOWING
Navigation Camera state. - Added the ability to filter road names based on the system language
com.mapbox.navigation.base.road.model.RoadComponent
objects that contain only slashes in their text are filtered out- Now
EHorizonResultType.Type
has a new element calledEHorizonResultType.NOT_AVAILABLE
. - Old
MapboxNavigation.postUserFeedback()
functions have been deprecated, use an overloading that acceptsUserFeedback
as a parameter. - Introduce MapboxRouteCalloutApi and MapboxRouteCalloutView to attach callouts to route lines with info about duration
- Optimized memory usage in Directions API model classes by interning frequently occurring strings in JSON.
- Added experimental
MapboxNavigation#replanRoute
to handle cases when user changes route options during active guidance,
for example enabling avoid ferries. - Added
DataInputsManager
to allow the provision of data from external sensors to the navigator, seeMapboxNavigation.dataInputsManager
. ExperimentalEtcGateInfo
has been moved tocom.mapbox.navigation.core.datainputs
package.EtcGateApi
has been deprecated. - Removing the ExperimentalMapboxNavigationAPI flag for Search predictive cache.
- [BREAKING CHANGE]
PredictiveCacheOptions.unrecognizedTilesetDescriptorOptions
has been renamed toPredictiveCacheOptions.predictiveCacheSearchOptionsList
. Additionally,PredictiveCacheUnrecognizedTilesetDescriptorOptions
has been renamed toPredictiveCacheSearchOptions
. Now, only search-related options can be passed toPredictiveCacheSearchOptions
. - Introduced experimental traffic adjustment mechanism during a drive and added
TrafficOverrideOptions
to control this feature - Changed
Alternatives
that deviate close to a destination point are removed before a fork is reached. - Added
RerouteStrategyForMapMatchedRoutes
toRerouteOptions
. Reroute optionenableLegacyBehaviorForMapMatchedRoute
was removed, useNavigateToFinalDestination
strategy instead.
Bug fixes and improvements
- Road Cameras that are no longer relevant for navigation will be removed from all the components to clean up resources.
- Improved EV bounding box search to maximize charging station coverage within the selected area.
- Added support for filter operators with spaces in EV Search.
- Fixed crash on invalid EV time parsing
- Allow to search charging stations in large areas.
- Added filter for zero-powered charging stations on EV layer
- Fixed an issue where the location indicator might have teleported back to tunnel after exiting it.
- Fixed an issue where overriding camera pitch to 0 caused the camera to go into "maneuver framing" mode.
- Improved EV charging station search along the route to provide more evenly distributed results.
- Processing of road cameras on location update has been moved from the main to the background thread
- Removed usages of APIs that prevented Copilot from working on devices with Android 7 or older.
- Optimized road cameras processing logic to reduce ANRs.
- Improved charging stations selection when doing EV search in bounding box.
- Fixed jumps in location updates reported by
com.mapbox.navigation.core.trip.session.LocationObserver
.
The jumps started to happen after navigation tiles version switch reported inNavigationVersionSwitchObserver
. - Fixed an issue with not working EV requests on a systems without Google Play Services.
- Optimize road cameras calculation in route preview mode
- Fixed incorrect events from RoadCameras Callback interface.
- Fixed an alternative Callout point to primary route.
- Improved
MapboxNavigationViewportDataSource#evaluate
performance. - Added automatic pause/resume of all direction calls when a navigation session stops/starts.
- Fixed a crash that happened on foreground service star...
Navigation SDK v3.9.0-rc.1
Navigation SDK Core Framework 3.9.0-rc.1 - 24 April, 2025
Features
- Added utility class
GeoUtils
which provide functionality to calculate unique identifier for provided link (part of a road between two intersection).
Bug fixes and improvements
- Improved EV bounding box search to maximize charging station coverage within the selected area.
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.0-rc.1
(release notes) - Mapbox Navigation Native
v324.12.0-rc.1
- Mapbox Core Common
v24.12.0-rc.1
- Mapbox Java
v7.4.0
(release notes)
Navigation SDK v3.9.0-beta.1
Navigation SDK Core Framework 3.9.0-beta.1 - 11 April, 2025
Features
-
Added
EHorizonOptions#enableEnhancedDataAlongEH
flag to control access to enhanced data attributes (from ADAS data layer). -
Added a new function
MapboxRouteShieldApi#getRoadComponentsShields
which accepts a list ofRoadComponent
. -
Added support for
exclude_operators
parameter in EV search. -
Clear caches when device memory is low.
-
Added helpPhone field to EV Location class.
-
⚠️ Breaking changes in Experimental API.AdasSpeedLimitRestriction.VehicleType
has been moved tocom.mapbox.navigation.base.model.VehicleType
. -
⚠️ Breaking changes in Experimental API: MapboxRouteCalloutApi and MapboxRouteCalloutView are no longer publicly available. -
New option MapboxRouteLineApiOptions#isRouteCalloutsEnabled to allow MapboxRouteLineApi calculate data for route callouts.
-
New function MapboxRouteLineView#enableCallouts now allows to render route callouts on the map by setting an adapter.
-
Added DefaultRouteCalloutAdapter which provides a built-in adapter for route callouts.
-
TilesetDescriptorFactory#build
andTilesetDescriptorFactory#getSpecificVersion
function now provide overloaded variants that accept a flag whether ADAS tiles should be loaded. -
Support for danger zones in countries with legal restrictions on displaying speed camera locations (e.g. France)
-
Added support of
evInsufficientCharge
,evMinChargeAtChargingStation
,evMinChargeAtDestination
, andstationUnavailable
notifications objects. -
Added new experimental function
MapboxNavigation#getRoadGraphVersionInfo
that retrieves current road graph version information. -
Added support of
exclude
parameter to EV Search. -
⚠️ Breaking changes in Experimental API. FunctionMapboxRouteLineView#enableCallouts
has been renamed toMapboxRouteLineView#setCalloutAdapter
-
⚠️ Breaking changes in Experimental API. FunctionMapboxRouteLineView#disableCallouts
has been renamed toMapboxRouteLineView#clearCalloutAdapter
-
Clear route callout adapter once
MapboxRouteLineView#cancel
called -
⚠️ Breaking changes in Experimental API. FunctionMapboxRouteLineView#enableCallouts
has been renamed toMapboxRouteLineView#setCalloutAdapter
-
⚠️ Breaking changes in Experimental API. FunctionMapboxRouteLineView#disableCallouts
has been renamed toMapboxRouteLineView#clearCalloutAdapter
-
Clear route callout adapter once
MapboxRouteLineView#cancel
called -
Added flag
RoadCamerasManager::isActiveInRoutePreview
to activate the road cameras preview (default isfalse
). -
Added
MapboxNavigationViewportDataSource#isFramingManeuverPropertyOverride
property to explicitly set the camera to framing-maneuver / non-framing-maneuver mode. Note that it is a delicate API and for most cases you don't need to override this property. Use this method only if you are sure that's the only way to achieve the desired behaviour. -
Added a way to preview all road cameras for a given route using
RoadCamerasManager::previewCamerasOnRoute
. -
Added
MapboxRouteCalloutApiOptions#maxZoom
to allow for setting a maximum zoom level for the route callout. This is useful for preventing the route callout from being displayed at high zoom levels. -
Added
MapboxRouteCalloutApiOptions#minZoom
to allow for setting a minimum zoom level for the route callout. This is useful for preventing the route callout from being displayed at low zoom levels. -
Added
MapboxRouteCalloutApiOptions#priority
to allow for setting the priority of the route callout. This is useful for determining the order in which the route callout is displayed when multiple Dynamic View Annotations are present on the map. -
Added a
NavigationCamera
constructor that acceptsUpdateFrameAnimatorsOptions
. This allows NavSDK to execute the update frame animations in a more performant way.
By default, NavSDK supports any type of dependencies between animators in a compound frame update animation.
Meaning that center, zoom, padding, pitch and bearing animators can form any dependencies graph supported by AnimatorSet
API.
However, this may poorly influence the performance.
If you pass updateFrameAnimatorsOptions
with UpdateFrameAnimatorsOptions#useSimplifiedAnimatorsDependency
set to true,
NavSDK will assume the following restrictions for update frame animations:
- They are played together (started at the same time);
- They don't have start delays.
Note 1: they can still be of different duration.
Note 2: this is ony relevant for update frame animations. For state transition animations (NavigationCameraStateTransition#transitionToFollowing
andNavigationCameraStateTransition#transitionToOverview
) no such assumptions are made.
This allows NavSDK to execute the animations in a more performant way.
If this simplified setup works for you (it's especially important to check these conditions if you use customNavigationCameraStateTransition
),
you can setUpdateFrameAnimatorsOptions#useSimplifiedAnimatorsDependency
]` to true for simpler, but more optimized update frame animations.
- Added support for Lane Control and Passage Control road cameras.
- Exposed MapGPT as a Navigation SDK Core Framework Module.
Bug fixes and improvements
- Added support for filter operators with spaces in EV Search.
- Fixed crash on invalid EV time parsing
- Allow to search charging stations in large areas.
- Added filter for zero-powered charging stations on EV layer
- Fixed an issue where the location indicator might have teleported back to tunnel after exiting it.
- Fixed an issue where overriding camera pitch to 0 caused the camera to go into "maneuver framing" mode.
- Improved EV charging station search along the route to provide more evenly distributed results.
- Processing of road cameras on location update has been moved from the main to the background thread
- Removed usages of APIs that prevented Copilot from working on devices with Android 7 or older.
- Optimized road cameras processing logic to reduce ANRs.
- Improved charging stations selection when doing EV search in bounding box.
- Fixed jumps in location updates reported by
com.mapbox.navigation.core.trip.session.LocationObserver
.
The jumps started to happen after navigation tiles version switch reported inNavigationVersionSwitchObserver
. - Fixed an issue with not working EV requests on a systems without Google Play Services.
- Optimize road cameras calculation in route preview mode
- Fixed incorrect events from RoadCameras Callback interface.
- Fixed an alternative Callout point to primary route.
- Improved
MapboxNavigationViewportDataSource#evaluate
performance. - Added automatic pause/resume of all direction calls when a navigation session stops/starts.
Mapbox dependencies
This release depends on, and has been tested with, the following Mapbox dependencies:
- Mapbox Maps SDK
v11.12.0-beta.1
(release notes) - Mapbox Navigation Native
v324.12.0-beta.1
- Mapbox Core Common
v24.12.0-beta.1
- Mapbox Java
v7.4.0
(release notes)