Les applications IoT permettent aux utilisateurs d'effectuer des actions pertinentes sur des appareils connectés depuis leur voiture. Vous pouvez, par exemple, contrôler l'état de certains appareils, comme ouvrir une porte de garage, actionner des interrupteurs ou activer la sécurité de la maison.
Déclarer la catégorie compatible dans votre fichier manifeste
Votre application doit déclarer la androidx.car.app.category.IOT
catégorie d'application automobile
dans le filtre d'intent de son
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>
Implémenter les fonctionnalités de votre application
Pour implémenter votre application, consultez la page Utiliser la bibliothèque d'applications Android for Cars sur la création d'applications de la bibliothèque d'applications pour voitures. Veillez également à lire les Consignes relatives à la qualité des applications de voiture pour les applications IoT , car votre application doit les respecter.
Dans le cas des applications IoT, GridTemplate
constitue un bon choix pour afficher une liste d'appareils et autoriser les utilisateurs à
interagir avec ceux-ci, comme illustré dans l'exemple suivant :
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()