App „Internet der Dinge“ erstellen

Mit IoT-Apps können Nutzer relevante Aktionen auf verbundenen Geräten von innerhalb im Auto. Beispiele hierfür sind die Steuerung des Status bestimmter Geräte, z. B. das Öffnen eines Garagentors, das Umschalten des Lichtschalters für das Zuhause oder das Aktivieren der Sicherheit zu Hause.

Deklariere in deinem Manifest die Unterstützung von Kategorien

Deine App muss die androidx.car.app.category.IOT deklarieren Auto-App-Kategorie im Intent des zugehörigen CarAppService-Filters.

<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 zum Implementieren Ihrer App finden Sie unter Verwenden der Android for Cars App-Bibliothek Bibliotheks-Apps werden erstellt. Außerdem sollten Sie sich mit den Qualitätsrichtlinien für Auto-Apps für IoT-Apps , da deine App auf Einhaltung dieser Richtlinien überprüft wird.

Für IoT-Apps: der GridTemplate ist eine gute Wahl, um eine Liste von Geräten anzuzeigen und es den Nutzenden zu ermöglichen, mit ihnen 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();