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

برنامه‌های 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 for Cars در مورد نحوه ساخت برنامه های کتابخانه App Cars مراجعه کنید. همچنین، حتماً با دستورالعمل‌های کیفیت برنامه خودرو برای برنامه‌های IOT آشنا شوید، زیرا برنامه شما مطابق با این دستورالعمل‌ها بررسی می‌شود.

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