Приложения для интернета вещей позволяют пользователям выполнять определенные действия на подключенных устройствах, не выходя из автомобиля. Например, можно управлять состоянием устройств, таких как гаражные ворота, выключатели света и системы безопасности.
Как объявить поддержку категорий в манифесте
В фильтре интентов элемента 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 for Cars App Library, в котором рассказывается о том, как создавать приложения с помощью Car App Library. Также ознакомьтесь с рекомендациями по обеспечению качества приложений для автомобилей для приложений интернета вещей, поскольку ваше приложение будет проверено на соответствие этим рекомендациям.
Для приложений интернета вещей GridTemplate – хороший вариант для показа списка устройств и взаимодействия с ними, как показано в следующем примере:
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()