Mit IoT-Apps können Nutzer auf verbundenen Geräten im Auto relevante Aktionen ausführen. Beispiele hierfür sind das Steuern des Zustands bestimmter Geräte, z. B. das Öffnen eines Garagentors, das Klappen der Lichtschalter oder das Aktivieren der Sicherheit zu Hause.
Unterstützung für Kategorien im Manifest deklarieren
Deine App muss im Intent-Filter ihrer CarAppService
die Kategorie androidx.car.app.category.IOT
für Auto-Apps deklarieren.
<application>
...
<service
...
android:name=".MyCarAppService"
android:exported="true">
<intent-filter>
<action android:name="androidx.car.app.CarAppService" />
<category android:name="androidx.car.app.category.IOT"/>
</intent-filter>
</service>
...
<application>
App-Funktionen implementieren
Informationen zur Implementierung deiner App findest du unter Android for Cars App-Bibliothek verwenden. Dort wird beschrieben, wie Apps für die Auto-App-Bibliothek erstellt werden. Du solltest dich auch mit den Qualitätsrichtlinien für Auto-Apps für IoT-Apps vertraut machen, da deine App anhand dieser Richtlinien überprüft wird.
Für IoT-Anwendungen ist das GridTemplate
eine gute Wahl, um eine Liste von Geräten anzuzeigen und dem Nutzer zu ermöglichen, mit ihnen zu interagieren, wie im folgenden Beispiel gezeigt:
Kotlin
val listBuilder = ItemList.Builder() listBuilder.addItem( GridItem.Builder() .setTitle("Garage door") .setImage(...) // Handle user interactions .setOnClickListener {...} .build() ) listBuilder.addItem( GridItem.Builder() .setTitle("Garage lights") // Show a loading indicator until the status of the device is known // (call invalidate() when the status is known to refresh the screen) .setLoading(true) .build() ) return GridTemplate.Builder() .setTitle("Devices") .setHeaderAction(Action.APP_ICON) .setSingleList(listBuilder.build()) .build()
Java
ItemList.Builder listBuilder = new ItemList.Builder(); listBuilder.addItem( new GridItem.Builder() .setTitle("Garage door") .setImage(...) // Handle user interactions .setOnClickListener(() -> {...}) .build() ); listBuilder.addItem( new GridItem.Builder() .setTitle("Garage lights") // Show a loading indicator until the status of the device is known // (call invalidate() when the status is known to refresh the screen) .setLoading(true) .build() ); return new GridTemplate.Builder() .setTitle("Devices") .setHeaderAction(Action.APP_ICON) .setSingleList(listBuilder.build()) .build();