有了 IoT 應用程式,使用者在車內即可下達指令,針對已連結的裝置進行相關操作。例如控制特定裝置的狀態:開啟車庫門、切換住家燈具開關或開啟住家保全系統。
在資訊清單中宣告類別支援
您的應用程式必須在 CarAppService
的意圖篩選器中宣告 androidx.car.app.category.IOT
車用應用程式類別:
<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>
實作應用程式的功能
如要實作您的應用程式,請參閱「使用車輛專用 Android App Library」,以瞭解如何建構 Car App Library 應用程式。此外,由於我們會根據這些指南審查您的應用程式,因此請務必熟悉「IoT 應用程式的車用應用程式品質指南」。
對於 IoT 應用程式,GridTemplate
很適合用來顯示裝置清單,並允許使用者與其進行互動,如以下範例所示:
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();