تطبيق لإنشاء إنترنت الأشياء
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح تطبيقات إنترنت الأشياء للمستخدمين اتخاذ الإجراءات ذات الصلة على الأجهزة المتصلة من داخل
السيارة. تشمل الأمثلة التحكّم في حالة أجهزة معيّنة، مثل
فتح باب المرآب أو قلب مفاتيح الإضاءة المنزلية أو تفعيل أمن المنزل
يُرجى تقديم بيان عن إتاحة الفئة في البيان.
يجب أن يفصح تطبيقك عن 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)
، لأنّه ستتم مراجعة تطبيقك وفقًا لهذه الإرشادات.
بالنسبة إلى تطبيقات إنترنت الأشياء (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();
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Build an internet of things app\n\nIOT apps enable users to take relevant actions on connected devices from within\nthe car. Examples include controlling the state of certain devices, such as\nopening a garage door, flipping home light switches, or enabling home security.\n\nDeclare category support in your manifest\n-----------------------------------------\n\nYour app needs to declare the `androidx.car.app.category.IOT`\n[car app category](/training/cars/apps#supported-app-categories) in the intent\nfilter of its [`CarAppService`](/reference/androidx/car/app/CarAppService). \n\n \u003capplication\u003e\n ...\n \u003cservice\n ...\n android:name=\".MyCarAppService\"\n android:exported=\"true\"\u003e\n \u003cintent-filter\u003e\n \u003caction android:name=\"androidx.car.app.CarAppService\" /\u003e\n \u003ccategory android:name=\"androidx.car.app.category.IOT\"/\u003e\n \u003c/intent-filter\u003e\n \u003c/service\u003e\n ...\n \u003capplication\u003e\n\nImplement your app's functionality\n----------------------------------\n\nTo implement your app, refer to\n[Using the Android for Cars App Library](/training/cars/apps) on how Car App\nLibrary apps are built. Also, be sure to familiarize yourself with the\n[Car App Quality Guidelines for IOT apps](/docs/quality-guidelines/car-app-quality?category=iot#app_categories)\n, as your app will be reviewed against these guidelines.\n\nFor IOT apps, the [`GridTemplate`](/reference/androidx/car/app/model/GridTemplate)\nis a great choice for displaying a list of devices and allowing the user to\ninteract with them, as shown in the following sample: \n\n### Kotlin\n\n```kotlin\nval listBuilder = ItemList.Builder()\n\nlistBuilder.addItem(\n GridItem.Builder()\n .setTitle(\"Garage door\")\n .setImage(...)\n // Handle user interactions\n .setOnClickListener {...}\n .build()\n)\n\nlistBuilder.addItem(\n GridItem.Builder()\n .setTitle(\"Garage lights\")\n // Show a loading indicator until the status of the device is known\n // (call invalidate() when the status is known to refresh the screen)\n .setLoading(true)\n .build()\n)\n\nreturn GridTemplate.Builder()\n .setTitle(\"Devices\")\n .setHeaderAction(Action.APP_ICON)\n .setSingleList(listBuilder.build())\n .build()\n```\n\n### Java\n\n```java\nItemList.Builder listBuilder = new ItemList.Builder();\n\nlistBuilder.addItem(\n new GridItem.Builder()\n .setTitle(\"Garage door\")\n .setImage(...)\n // Handle user interactions\n .setOnClickListener(() -\u003e {...})\n .build()\n);\n\nlistBuilder.addItem(\n new GridItem.Builder()\n .setTitle(\"Garage lights\")\n // Show a loading indicator until the status of the device is known\n // (call invalidate() when the status is known to refresh the screen)\n .setLoading(true)\n .build()\n);\n\nreturn new GridTemplate.Builder()\n .setTitle(\"Devices\")\n .setHeaderAction(Action.APP_ICON)\n .setSingleList(listBuilder.build())\n .build();\n```"]]