تتيح تطبيقات إنترنت الأشياء للمستخدمين اتّخاذ إجراءات ذات صلة على الأجهزة المتصلة من داخل السيارة. وتشمل الأمثلة التحكّم في حالة بعض الأجهزة، مثل فتح باب المرآب أو تشغيل مفاتيح الإضاءة في المنزل أو تفعيل أمان المنزل.
تحديد الفئات المتوافقة في البيان
يجب أن يوضّح تطبيقك 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 للسيارات حول كيفية إنشاء تطبيقات Car App Library. يُرجى أيضًا الاطّلاع على إرشادات جودة تطبيقات إنترنت الأشياء على السيارات ، لأنّه ستتم مراجعة تطبيقك للتأكّد من التزامه بهذه الإرشادات.
بالنسبة إلى تطبيقات إنترنت الأشياء، يُعدّ 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()