App „Internet der Dinge“ erstellen

Mit IoT-Apps können Nutzer relevante Aktionen auf verbundenen Geräten aus dem Auto heraus ausführen. Beispiele hierfür sind das Steuern des Status bestimmter Geräte, z. B. das Öffnen eines Garagentors, das Betätigen von Lichtschaltern zu Hause oder das Aktivieren der Haussicherheit.

Kategorieunterstützung im Manifest deklarieren

Ihre App muss die androidx.car.app.category.IOT App-Kategorie für Autos im Intent-Filter ihres CarAppServicedeklarieren.

<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>

Funktionen Ihrer App implementieren

Informationen zur Implementierung Ihrer App finden Sie unter Android for Cars-App-Bibliothek verwenden. Dort wird beschrieben, wie Apps mit der Car App Library erstellt werden. Lesen Sie außerdem die Qualitätsrichtlinien für Auto-Apps für IoT-Apps , da Ihre App anhand dieser Richtlinien überprüft wird.

Für IoT-Apps ist das GridTemplate eine gute Wahl, um eine Liste von Geräten anzuzeigen und Nutzern die Interaktion mit ihnen zu ermöglichen, wie im folgenden Beispiel zu sehen:

val listBuilder = ItemList.Builder()
val headerBuilder = Header.Builder()
val garageIcon = IconCompat.createWithResource(
    carContext,
    R.drawable.ic_garage
)

listBuilder.addItem(
    GridItem.Builder()
        .setTitle("Garage door")
        .setImage(
            CarIcon.Builder(garageIcon).build(),
            GridItem.IMAGE_TYPE_ICON
        )
        .setOnClickListener {
            // Handle user interactions
        }
        .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()
    .setHeader(
        headerBuilder.setTitle("Devices")
            .setStartHeaderAction(Action.APP_ICON).build()
    )
    .setSingleList(listBuilder.build())
    .build()