Nesnelerin interneti uygulaması oluşturun

IoT uygulamaları, kullanıcıların arabadan bağlı cihazlarda ilgili işlemleri yapmasına olanak tanır. Örneğin, belirli cihazların durumunu kontrol etme (ör. garaj kapısını açma, evdeki ışık anahtarlarını çevirme veya ev güvenliğini etkinleştirme)

Manifest dosyanızda kategori desteğini bildirin

Uygulamanız, CarAppService manifest dosyasının intent filtresinde androidx.car.app.category.IOT araba uygulaması kategorisini beyan etmelidir.

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

Uygulamanızın işlevlerini uygulama

Uygulamanızı uygulamak için Arabalar için Android uygulama kitaplığını kullanma başlıklı makalede, Car App Library uygulamalarının nasıl oluşturulduğu açıklanmaktadır. Ayrıca, uygulamanız bu yönergelere göre inceleneceğinden IOT uygulamaları için Araba Uygulaması Kalite Yönergeleri hakkında bilgi edinmeyi unutmayın.

IoT uygulamalarında, aşağıdaki örnekte gösterildiği gibi, cihaz listesini görüntülemek ve kullanıcının cihazlarla etkileşim kurmasına izin vermek için GridTemplate harika bir seçimdir:

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