> For the complete documentation index, see [llms.txt](https://docs.mapbox.com/android/navigation/v2/llms.txt)

# Device notifications

The Navigation SDK will display default Android system notifications to keep your users updated on navigation status. The SDK also contains code to customize and display system notifications.

By default, the SDK automatically displays a notification when free-drive mode is enabled and when a turn-by-turn navigation session begins. The notification appears in the device's notification drawer and an arrow icon is added to the status bar. Tapping on the notification brings back the application to the foreground.

## Turn-by-turn notifications

A Navigation SDK turn-by-turn navigation session displays default notifications including:

-   The upcoming maneuver icon
    
-   Text with the name of the upcoming maneuver
    
-   The distance remaining until the upcoming maneuver
    
-   The ETA of the active route
    
-   A button to end navigation
    
    ![](https://docs.mapbox.com/android/assets/ideal-img/beta-navigation-guides-notifications-turn-by-turn.7e728ff.480.png)
    

## Free-drive notifications

The Navigation SDK's [free drive mode](https://docs.mapbox.com/android/navigation/v2/guides/get-started/initialization#start-a-trip-session) displays a default notification that includes:

-   Text saying `Free Drive` in whatever language the Navigation SDK is using
    
-   A button to stop the free drive session.
    
    ![](https://docs.mapbox.com/android/assets/ideal-img/beta-navigation-guides-notifications-free-drive.90e205e.480.png)
    

## Permissions

If your app targets Android 13 or higher, we recommend requesting [`POST_NOTIFICATIONS`](https://developer.android.com/guide/topics/ui/notifiers/notification-permission) permission in runtime so that the Navigation SDK can display the trip notification. The permission declaration is pre-bundled with Navigation SDK v2.8.0 or later.

## No system notifications

By default, the Navigation SDK will run a foreground service to render location updates and notification. But, you can customize the default behavior by setting `withForegroundService` to `false` when starting the trip session to prevent a foreground service from being started. In this case, no notifications will be rendered and no location updates will be available while the app is in the background.

Do the following when you start the trip session in your activity:

```kotlin
mapboxNavigation.startTripSession(withForegroundService = false)
```

## Custom system notifications

The default notification will always be displayed by default unless trip session is started `withForegroundService = false` or it is otherwise overridden by a custom notification created using the Navigation SDK's [`TripNotification`](https://docs.mapbox.com/android/navigation/v2/api/2.22.2/libnavigation-base/com.mapbox.navigation.base.trip.notification/-trip-notification/) interface. The interface defines a contract for the Android system `Notification` instance provider and manager.

> **Related content (guide): [Modularization](https://docs.mapbox.com/android/navigation/v2/guides/get-started/modularization/)**
> 
> Learn how to leverage the Mapbox Navigation SDK for Android modularization options in the Testing and development guide.