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, aprire la porta del garage, accendere interruttori delle luci in casa o attivare la sicurezza domestica.

Dichiara il supporto delle categorie nel tuo file manifest.

La tua app deve dichiarare androidx.car.app.category.IOT categoria di app auto nell'intent del suo 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 la funzionalità della tua app

Per implementare la tua app, consulta Utilizzare la raccolta di app Android for Cars per scoprire come funziona l'app Cars Vengono create app di raccolta. 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, la GridTemplate è un'ottima scelta per visualizzare un elenco di dispositivi e consentire all'utente di interagire con essi, come illustrato 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();