Aplikacje IoT umożliwiają użytkownikom wykonywanie odpowiednich działań na podłączonych urządzeniach z poziomu samochodu. Może to być np. sterowanie stanem niektórych urządzeń, takich jak otwieranie bramy garażowej, włączanie i wyłączanie oświetlenia w domu czy włączanie zabezpieczeń domowych.
Deklarowanie obsługi kategorii w pliku manifestu
Aplikacja musi zadeklarować androidx.car.app.category.IOT
kategorię aplikacji samochodowej w filtrze intencji w pliku 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>
Wdrażanie funkcji aplikacji
Informacje o tym, jak wdrożyć aplikację, znajdziesz w artykule Korzystanie z biblioteki aplikacji Android do samochodu, w którym opisujemy, jak tworzyć aplikacje z biblioteki aplikacji do samochodu. Zapoznaj się też ze wskazówkami dotyczącymi jakości aplikacji samochodowych na urządzenia IoT, ponieważ Twoja aplikacja zostanie sprawdzona pod kątem zgodności z nimi.
W przypadku aplikacji IoT element GridTemplate świetnie nadaje się do wyświetlania listy urządzeń i umożliwiania użytkownikowi interakcji z nimi, jak pokazano w tym przykładzie:
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()