Configure an App Store
The TomTom Digital Cockpit SDK is not available for general use.
Please contact us for more information.
An app store can allow your product to offer end-users of your system the ability to expand their system by installing additional apps.
TomTom Digital Cockpit supports integration of Android app stores through configuration. It does not come with an app store configured by default, so you will need to choose and configure your own choice of app store.
A number of companies provide Android app stores targeted at automotive applications. Available Automotive app stores include:
- Faurecia Aptoide
- Harman Ignite
- Access Twine4Car
Contact your TomTom Digital Cockpit sales representative for more information about available app stores.
Once installed and configured, an app store can be accessed via the App Launcher frontend, which is
opened by tapping the Apps
main menu item when using the example application. As there is no app
store included with TomTom Digital Cockpit, selecting the Apps
main menu option currently displays a
"Coming Soon" screen.
Any Android apps installed using the app store will appear in the App Launcher. From here they can be launched into a virtual display within TomTom Digital Cockpit.
Note: The App Launcher will display all non-system apps which have the
LAUNCHER category
or implement the
media service interface.
This means it will also show Android apps which have been installed onto the
device using adb
commands (known as "sideloaded" apps). To avoid confusion, it is best to remove
any existing sideloaded apps before configuring an app store.
The steps below show how to install and configure your choice of app store:
- Install your app store APK.
- Configure TomTom Digital Cockpit to launch your app store.
- Overriding app store configuration in Android resources.
- Overriding app store configuration with a static configuration provider.
Install your app store APK
Note: This section describes installing an app store during the development phase, for example, to try it out or for proof of concept purposes. For production, the app store APK should be preinstalled as part of the hardware platform system image.
When you have chosen your app store and downloaded the required APK(s) to a machine with adb
installed, you can install the app store using the following command:
adb install <your-app-store-APK-filename>
Configure TomTom Digital Cockpit to launch your app store
Once you have installed your app store, you need to configure it within TomTom Digital Cockpit by overriding the default app store configuration (that is, no app store) with values relating to your chosen app store. The configuration values which must be overridden are as follows:
- App Store Display Name: The name you want to associate with the app store within the UI.
- App Store Package Name: Get this from your app store documentation or ask your app store provider.
The default app store configuration can be overridden using Android resource values or by implementing a static configuration provider.
Overriding app store configuration in Android resources
If you do not require the app store configuration to be set at runtime, you can override the values using Android resource strings. To do this, add the following Android resource strings to your project (substituting with values for your choice of app store):
<string name="appStoreDisplayNameConfigKey">My App Store Display Name</string><string name="appStorePackageNameConfigKey">my.app.store.package.name</string>
Overriding app store configuration with a static configuration provider
If you need to configure the app store at runtime, then create a static configuration provider and configure it in your application.
Add the following dependency to the build.gradle.kts
file of the module where your new static
configuration provider will reside:
implementation("com.tomtom.ivi.appsuite:appsuite_appstore_api_common_config:${libraries.versions.iviPlatform.get()}")
Create the static configuration provider:
1class MyAppStoreConfigurationProvider(2 private val appStoreDisplayName: String,3 private val appStorePackageName: String4 ): ComposableStaticConfigurationProvider {5 override fun get(key: OptStringStaticConfigurationKey): String? =6 when(key) {7 appStoreDisplayNameConfigKey -> appStoreDisplayName8 appStorePackageNameConfigKey -> appStorePackageName9 else -> null10 }11 }
To configure the example application, the static configuration provider needs to be added to the
existing list of providers returned by TemplateApplication.createStaticConfigurationProviders()
.
In order for it to override any default values it must be added ahead of the default providers
list:
template/app/src/main/kotlin/com/example/ivi/template/app/TemplateApplication.kt
1 override fun createStaticConfigurationProviders() =2 listOf(3 MyAppStoreConfigurationProvider(4 getString(R.string.my_app_store_display_name),5 "my.app.store.package.name"6 )7 ) + ...
After completing these steps you should see your app store icon above a button with the text "Download apps" when you open the App Launcher. Tapping this button should open your app store within a virtual display inside TomTom Digital Cockpit.
Note: If you have any sideloaded apps on the device then you will see the sideloaded apps displayed next to the app store icon and no "Download apps" button. In this case you can launch your app store by tapping on the app store icon.