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 アプリ ライブラリを使用するを参照し、自動車向けアプリ ライブラリのアプリを作成する方法についてご確認ください。また、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();