Aplikacje na IOT umożliwiają użytkownikom wykonywanie odpowiednich działań na połączonych urządzeniach z poziomu samochodu. Przykładem może być sterowanie stanem niektórych urządzeń, np. otwieranie bramy garażowej, odwracanie przełączników świateł w domu lub włączanie ochrony domu.
Zadeklaruj obsługę kategorii w pliku manifestu
Aplikacja musi zadeklarować kategorię aplikacji samochodowej androidx.car.app.category.IOT
w filtrze intencji w elemencie 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>
Wdróż funkcje aplikacji
Aby wdrożyć aplikację, przeczytaj artykuł o korzystaniu z biblioteki aplikacji Android for Cars, aby dowiedzieć się, jak tworzone są aplikacje Car App Library. Pamiętaj też o zapoznaniu się ze wskazówkami dotyczącymi jakości aplikacji samochodowych w przypadku aplikacji na IOT, ponieważ Twoja aplikacja zostanie sprawdzona pod kątem zgodności z tymi wytycznymi.
W przypadku aplikacji IOT GridTemplate
to świetny wybór do wyświetlania listy urządzeń i umożliwiania użytkownikowi interakcji z nimi, jak w tym przykładzie:
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();