Os apps de IoT permitem que os usuários realizem ações relevantes em dispositivos conectados de dentro do carro. Entre outras coisas, é possível controlar o estado de determinados dispositivos, como a abertura de um portão de garagem, o acionamento de interruptores de luz ou a ativação da segurança residencial.
Declarar suporte à categoria no manifesto
Seu app precisa declarar a
categoria de app para carros
androidx.car.app.category.IOT no filtro de intent da
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>
Implementar a funcionalidade do app
Para implementar o app, consulte Como usar a biblioteca Android para carros sobre como os apps da biblioteca são criados. Além disso, leia as Diretrizes de qualidade de apps de carros para apps da IoT , já que o app será analisado de acordo com elas.
Para apps da IoT, o GridTemplate
é uma boa opção para mostrar uma lista de dispositivos e permitir que os usuários
interajam com eles, conforme mostrado no exemplo a seguir:
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()