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