Создайте приложение для Интернета вещей

Приложения IOT позволяют пользователям выполнять соответствующие действия на подключенных устройствах, не выходя из автомобиля. Примеры включают контроль состояния определенных устройств, например открытие двери гаража, переключение выключателей домашнего света или включение домашней безопасности.

Объявите поддержку категорий в манифесте.

Ваше приложение должно объявить категорию автомобильного приложения androidx.car.app.category.IOT в фильтре намерений своего 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>

Реализуйте функциональность вашего приложения

Чтобы реализовать свое приложение, ознакомьтесь с разделом «Использование библиотеки приложений Android для автомобилей», где описано, как создаются приложения библиотеки автомобильных приложений. Кроме того, обязательно ознакомьтесь с рекомендациями по обеспечению качества автомобильных приложений для IOT-приложений , так как ваше приложение будет проверено на соответствие этим рекомендациям.

Для приложений Интернета вещей GridTemplate — отличный выбор для отображения списка устройств и предоставления пользователю возможности взаимодействовать с ними, как показано в следующем примере:

Котлин

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()

Ява

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();