followMyLocation in GoogleMap requires implementation of NavigationApi.NavigatorListener interface. When at first run on an Android mobile device this interface opens automoatically a dialog asking to accept Navigation terms and conditions. But implementation of this interface for use in Android Automotive (AAOS) does not open automatically a dialog to accept the terms and conditions. Therefore NavigationApi throws TERMS_NOT_ACCEPTED error.
Is there any way to show terms and conditions for Google Navigation applications running in Android Automotive devices?
Below code snipped shows the implementation of NavigationApi.NavigatorListener
@SuppressLint("MissingPermission")
fun initializeNavigationApi() {
NavigationApi.getNavigator(
foregroundLocationService?.application,
object : NavigationApi.NavigatorListener {
override fun onNavigatorReady(navigator: Navigator?) {
// Disables the guidance notifications and shuts down the app and background service
// when the user dismisses/swipes away the app from Android's recent tasks.
navigator?.setTaskRemovedBehavior(Navigator.TaskRemovedBehavior.QUIT_SERVICE)
navigationViewForAuto!!.getMapAsync { googleMap ->
googleMap.apply {
followMyLocation(GoogleMap.CameraPerspective.TILTED)
isTrafficEnabled = true
}
}
}
override fun onError(@NavigationApi.ErrorCode errorCode: Int) {
when (errorCode) {
NavigationApi.ErrorCode.NOT_AUTHORIZED -> {
// Note: If this message is displayed, you may need to check that
// your API_KEY is specified correctly in AndroidManifest.xml
// and is been enabled to access the Navigation API
Log.i("NAVIGATION API",
"Error loading Navigation API: Your API key is " +
"invalid or not authorized to use Navigation."
)
}
NavigationApi.ErrorCode.TERMS_NOT_ACCEPTED -> {
Log.i("NAVIGATION API",
"Error loading Navigation API: User did not " +
"accept the Navigation Terms of Use."
)
}
else -> Log.i("NAVIGATION API", "Error loading Navigation API: $errorCode")
}
}
}
)
}
The Google Maps/Navigation SDK isn't currently supported on Android Automotive OS Cars with Google built-in, so that may be part of the issue.