تتيح تطبيقات إنترنت الأشياء (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 للسيارات للتعرّف على كيفية إنشاء تطبيقات مكتبة تطبيقات السيارات. واحرص أيضًا على الاطّلاع على إرشادات جودة تطبيقات السيارات لتطبيقات إنترنت الأشياء، إذ ستتم مراجعة تطبيقك للتأكّد من توافقه مع هذه الإرشادات.
بالنسبة إلى تطبيقات إنترنت الأشياء (IoT)، تُعد GridTemplate
خيارًا رائعًا لعرض قائمة بالأجهزة والسماح للمستخدم بالتفاعل معها، كما هو موضح في النموذج التالي:
Kotlin
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()
Java
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();