Le app IoT consentono agli utenti di eseguire azioni pertinenti sui dispositivi connessi dall'interno dell'auto. Alcuni esempi includono il controllo dello stato di determinati dispositivi, come l'apertura di una porta del garage, l'accensione e lo spegnimento degli interruttori della luce di casa o l'attivazione della sicurezza domestica.
Dichiarare il supporto delle categorie nel manifest
La tua app deve dichiarare la androidx.car.app.category.IOT
categoria di app per 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>
Implementare le funzionalità dell'app
Per implementare la tua app, consulta la sezione Utilizzo della libreria di app Android for Cars per scoprire come vengono create le app della libreria di app per auto. Inoltre, assicurati di familiarizzare con le norme sulla qualità delle app per auto per le app IoT, in quanto la tua app verrà esaminata rispetto a queste norme.
Per le app IoT, GridTemplate
è un'ottima scelta per visualizzare un elenco di dispositivi e consentire all'utente di
interagire con loro, come mostrato nel seguente esempio:
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()