IviActivity
The base activity for the IVI system. Hooks up the activity-related interaction to the rest of the system, which is necessary for the system UI. Should be extended by the product to configure it, based on customer needs.
A vehicle may have multiple infotainment screens, each of which is backed by an IVI instance. Each IviActivity instance is bound to an IVI instance. This IVI instance is obtained from the Android manifest's <activity>
element for the activity. The IVI instance ID is obtained from the com.tomtom.ivi.platform.framework.api.product.activity.IVI_INSTANCE
meta-data entry value. The same applies for <activity-alias>
elements.
Note: An IVI application must tag all its activities to be Distraction Optimized; see more about driver distraction guidelines. To do this, add the distractionOptimized
meta-data attribute in the AndroidManifest.xml for all activities.
Example
<activity
android:name=".ExampleActivity"
android:exported="false" ...>
<intent-filter>
...
</intent-filter>
<meta-data
android:name="com.tomtom.ivi.platform.framework.api.product.activity.IVI_INSTANCE"
android:value="Passenger" />
<meta-data
android:name="distractionOptimized"
android:value="true" />
</activity>
This example defines an ExampleActivity
activity that is bound to the Passenger
IVI instance ID.
Note: android:exported
should, by default, be set to false in order to avoid build warnings and to reduce attack surface. This should be changed to true
in the case that you wish an activity from another application to be able to launch the IviActivity
with an intent. In this case it is important to add the appropriate intent-filters and permissions in order to limit the activity's exposure to other applications. See android:exported
in Android documentation