בדיקת הזמינות של משקפי AI בזמן ריצה

במהלך היום, יכול להיות שהמשקפיים עם ה-AI יאבדו את החיבור למכשיר המארח (למשל, הטלפון של המשתמש), או שהמשקפיים לא יהיו זמינים באופן זמני אם המשתמש יסיר אותם. כדי להתמודד עם שינויים כאלה בזמינות המכשיר, האפליקציה יכולה להשתמש ב-API של זמינות מכשיר XR, שמאחד את אותות הזמינות של המכשיר לערכים הרגילים של Android Lifecycle.State. אפשר להשתמש בממשק ה-API הזה כדי לנהל את ניתוב האודיו, את ההפעלה באמצעות מילת הפעלה וכדי לדעת מתי צפוי קלט של משתמשים בהתאם לזמינות של משקפי ה-AI.

הסבר על מצבי מחזור החיים

בטבלה הבאה מפורט המיפוי של אותות הזמינות של המכשיר לערכים של Lifecycle.State.

מצב מחזור החיים

סטטוס המכשיר

תיאור

INITIALIZED

תאריך היצירה

אובייקט מחזור החיים נוצר אבל עדיין לא נצפה.

CREATED

לא פעיל

השירות מחובר, אבל המשתמש לא עונד את המכשיר.

STARTED

פעיל

המשתמש עונד את המכשיר.

DESTROYED

מנותק

המכשיר מנותק או שהחיבור לשירות אבד.

בדיקה ומעקב אחרי זמינות המכשיר

כדי לבדוק ולנטר את הזמינות של מכשיר, תשתמשו בהקשר משוער יחד עם מצב מחזור החיים כדי לקבוע איך האפליקציה צריכה לטפל בכל מקרה:

    val xrDevice = XrDevice.getCurrentDevice(projectedContext)

    xrDevice.getLifecycle().currentStateFlow
        .takeWhile { it != Lifecycle.State.DESTROYED }
        .collect { state ->
            when (state) {
                Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ }
                Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ }
                else -> { /* Handle other states */ }
            }
        }
}

מידע חשוב על הקוד

  • בדיקת החיבור: לפני שתיגשו למחזור החיים של המכשיר, התקשרו אל ProjectedContext.isProjectedDeviceConnected כדי לוודא שהמכשיר המוקרן מחובר למכשיר המארח.
  • קבלת ProjectedContext: צריך להתקשר אל ProjectedContext.createProjectedDeviceContext רק אחרי שמאמתים את החיבור, ולוודא שמעבירים את ההקשר הזה למופע XrDevice.
  • טיפול בביטול תוקף של הקשר: בכל פעם שמכשיר מוקרן מתחבר, נוצר deviceId חדש. כשהמצב מגיע ל-DESTROYED, הערך הנוכחי של ProjectedContext לא תקין. צריך להפסיק להשתמש בו באופן מיידי ולהמתין לחיבור חדש.
  • אופטימיזציה של הסוללה והמשאבים: טיפול חלק ב<b>תכונות האפליקציה</b> על סמך מצב מחזור החיים, כדי לשמור על משאבי המערכת ולהפחית את צריכת הסוללה. לדוגמה, צריך להפסיק להקרין תוכן של ממשק משתמש על משקפי ה-AI כשהמצב משתנה ל-CREATED.