یک اپلیکیشن اینترنت اشیا بسازید

برنامه‌های اینترنت اشیا به کاربران این امکان را می‌دهند که از داخل خودرو اقدامات مرتبط را روی دستگاه‌های متصل انجام دهند. به عنوان مثال می‌توان به کنترل وضعیت دستگاه‌های خاص، مانند باز کردن درب گاراژ، روشن کردن کلید چراغ‌های خانه یا فعال کردن امنیت خانه اشاره کرد.

پشتیبانی از دسته‌بندی را در مانیفست خود اعلام کنید

برنامه شما باید دسته بندی برنامه ماشین androidx.car.app.category.IOT را در فیلتر intent مربوط به 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>

قابلیت برنامه خود را پیاده‌سازی کنید

برای پیاده‌سازی برنامه خود، به بخش «استفاده از کتابخانه برنامه اندروید برای خودروها» در مورد نحوه ساخت برنامه‌های کتابخانه برنامه خودرو مراجعه کنید. همچنین، حتماً « دستورالعمل‌های کیفیت برنامه خودرو برای برنامه‌های اینترنت اشیا» را مطالعه کنید، زیرا برنامه شما بر اساس این دستورالعمل‌ها بررسی خواهد شد.

برای برنامه‌های اینترنت اشیا، 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()