تطبيق لإنشاء إنترنت الأشياء

تتيح تطبيقات إنترنت الأشياء (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();