עבודה עם ARCore ל-Jetpack XR

ARCore ל-Jetpack XR מאפשר לאפליקציות לפעול עם מושגים בסיסיים של מציאות מוגברת (AR), באמצעות פרימיטיבים ברמה נמוכה של הבנת סצנה ומעקב אחר תנועה. כדאי להשתמש ב-ARCore for Jetpack XR כשאתם יוצרים חוויות AR, ואתם צריכים להשתמש בנתונים שטחיים או לתקוע תוכן למיקום קבוע במרחב.

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

צריך לגשת לכל האובייקטים שבמעקב של ARCore ל-Jetpack XR דרך Session. בדומה למחזור החיים של פעילות, גם לאובייקטים מסוג Session יש מחזור חיים שצריך לתחזק בהתאם לשימוש של האפליקציה בתכונות של אובייקט Session. אם האפליקציה מכילה פעילות אחת שתומכת ב-XR, מומלץ לטפל במחזור החיים של Session באמצעות רכיב שמתחשב במחזור החיים.

גישה ל-Session

צריך ליצור Session כשמשתמשים ב-ARCore ל-Jetpack XR.

כשמשתמשים ב-Jetpack Compose for XR, משתמשים ב-LocalSession כדי לגשת לסשן שנוצר בשבילכם.

המשך סשן

צריך להמשיך את הסשן כשהאפליקציה מוכנה לטפל בשינויי המצב מ-ARCore ל-Jetpack XR. במקרים רבים, הפעולה הזו מתבצעת בקריאה החוזרת (callback) של onResume() בפעילות, אבל יכול להיות שתרצו לדחות את העיבוד עד לאינטראקציה של המשתמש.

קטע הקוד הבא מציג דוגמה להמשך סשן.

when (val result = session.resume()) {
    is SessionResumeSuccess -> {
        // Session has been created successfully.
        // Attach any successful handlers here.
    }

    is SessionResumePermissionsNotGranted -> {
        // Request permissions in `result.permissions`.
    }
}

במאמר SessionResumeResult מפורטות הסיבות האפשריות לכך שאי אפשר להמשיך את Session.

השהיה של סשן

כשהפעילות עוברת לרקע, משהים את Session באמצעות [Session.pause()][Session.pause]. השהיה של סשן מפסיקה את המעקב באופן זמני עד להמשך הסשן, תוך שמירה על המצב של מערכת התפיסה.

השמדת סשן

כדי למחוק לתמיד את Session, משתמשים ב-[Session.destroy()][Session.destroy]. הפעולה הזו משחררת משאבים שנמצאים בשימוש בסשן ומוחקת את כל מצבי הסשן.

למידע נוסף