בניית אפליקציית אינטרנט של דברים

אפליקציות IOT מאפשרות למשתמשים לבצע פעולות רלוונטיות במכשירים מחוברים מתוך במכונית. לדוגמה, שליטה במצב של מכשירים מסוימים, כמו פתיחת דלת החניה, החלפת מתגי התאורה של הבית או הפעלת אבטחת הבית.

הצהרה על תמיכה בקטגוריות במניפסט

האפליקציה שלך צריכה להצהיר על 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>

הטמעת הפונקציונליות של האפליקציה

כדי להטמיע את האפליקציה: שימוש בספריית האפליקציות של 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();