Version: 0.5.0

Introduction

The collection and utilization of end-user personal data is subject to a range of local privacy regulations, including the General Data Protection Regulation (GDPR). To assist integrators in adhering to these requirements, TomTom Automotive Navigation Application provides built-in support for implementing consent management via the VIL API Reference.

It is the integrator’s responsibility to collect consent from the user during onboarding, settings interaction, or any other appropriate touchpoint. This includes presenting a user interface that clearly informs the user about data usage, the types of data collected, and the implications of each consent level. The consent flow must meet applicable privacy regulations such as GDPR (EU) and CCPA (California), and must be designed and implemented by the integrator.

Once the user selects or updates their consent preferences, the integrator must communicate the selected consent level to TomTom Automotive Navigation Application using the VIL PrivacyManager API. This API is designed to register the user's choice so TomTom Automotive Navigation Application can adjust its feature behavior accordingly. First, you need to create an instance of VehicleIntegrationApiClient.

Then you can set the consent level. There are three consent levels to choose from: TELEMETRY_OFF, LOCATION_ONLY, and TELEMETRY_ON. The following example sets the consent level to TELEMETRY_ON:

1import com.tomtom.automotive.integration.vehicle.client.api.privacy.ConsentLevel
2import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyCallback
3import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyFailure
4import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyParameters
5import com.tomtom.automotive.integration.vehicle.common.Callback
6import com.tomtom.automotive.integration.vehicle.common.Result
7
8vehicleIntegrationApiClient.privacyManager.setPrivacy(
9 PrivacyParameters(ConsentLevel.TELEMETRY_ON),
10 object : PrivacyCallback {
11 override fun onResult(result: Result<Unit, out PrivacyFailure>?) {
12 when (result) {
13 is Result.Success<*> -> {
14 // Handle success if required
15 }
16 is Result.Failure<*> -> {
17 // Handle failure
18 }
19 }
20 }
21
22 override fun onFunctionalityUnavailable(reason: Callback.Reason) {
23 // Handle error
24 }
25 }
26)

Each time the consent level changes, the integrator must call the PrivacyManager API with the updated value. Based on the received consent level, TomTom Automotive Navigation Application will dynamically enable or disable certain features in real time, as outlined in the consent levels table above. In addition, TomTom Automotive Navigation Application requires the current consent state every time it starts up; the integrator must explicitly set this value via the VIL to ensure TomTom Automotive Navigation Application initializes correctly.

If the integrator does not explicitly provide a consent level, TomTom Automotive Navigation Application defaults to the most restrictive mode: Telemetry Off. In this state, TomTom Automotive Navigation Application assumes that the user has declined all data sharing.

Check runtime

The consent preference is used internally to determine whether specific actions requiring user data are permitted. For example, if a feature such as search feedback is invoked, ANA will first check this consent preference to ensure that the action is allowed.

Ensure that:

  • No user data is collected or transmitted unless explicitly permitted by the user.
  • Feature availability automatically reflects the current consent state, even across sessions or app restarts.

Telemetry Off (default)

When the user does not consent to sharing either location or telemetry data, TomTom ANA does not collect or store any user information.