User consent
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.
Request user consent
Obtain user consent
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.
Communicate consent to TomTom Automotive Navigation Application
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.ConsentLevel2import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyCallback3import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyFailure4import com.tomtom.automotive.integration.vehicle.client.api.privacy.PrivacyParameters5import com.tomtom.automotive.integration.vehicle.common.Callback6import com.tomtom.automotive.integration.vehicle.common.Result78vehicleIntegrationApiClient.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 required15 }16 is Result.Failure<*> -> {17 // Handle failure18 }19 }20 }2122 override fun onFunctionalityUnavailable(reason: Callback.Reason) {23 // Handle error24 }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.