برنامههای اینترنت اشیا به کاربران این امکان را میدهند که از داخل خودرو اقدامات مرتبطی را روی دستگاههای متصل انجام دهند. به عنوان مثال میتوان به کنترل وضعیت دستگاههای خاص، مانند باز کردن درب گاراژ، روشن و خاموش کردن کلید چراغهای خانه یا فعال کردن سیستم امنیتی خانه اشاره کرد.
پشتیبانی از دستهبندی را در مانیفست خود اعلام کنید
برنامه شما باید دسته بندی برنامه ماشین 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()