Crea un'app Internet of Things

Le app IoT consentono agli utenti di eseguire azioni pertinenti sui dispositivi connessi dall'interno dell'auto. Alcuni esempi sono il controllo dello stato di alcuni dispositivi, come l'apertura di una porta del garage, l'apertura di interruttori della luce di casa o l'attivazione della sicurezza domestica.

Dichiara il supporto delle categorie nel file manifest

La tua app deve dichiarare la androidx.car.app.category.IOT categoria di app auto nel filtro per intent del relativo CarAppService.

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

Implementa le funzionalità della tua app

Per implementare la tua app, consulta la pagina relativa all'utilizzo della libreria di app di Android for Cars per informazioni su come vengono sviluppate le app della raccolta di app per auto. Inoltre, assicurati di acquisire familiarità con le Norme sulla qualità delle app per auto per le app IoT, poiché la tua app verrà esaminata in base a queste linee guida.

Per le app IoT, GridTemplate è un'ottima scelta per visualizzare un elenco di dispositivi e consentire all'utente di interagire con essi, come mostrato nell'esempio seguente:

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();