ساختن برنامه اینترنت اشیا

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

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

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