‫ARCore ל-Jetpack XR

העברת תוכן דיגיטלי לעולם האמיתי באמצעות יכולות תפיסה.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫21 באוקטובר 2026 1.0.0 - - ‎1.1.0-alpha01

הצהרה על יחסי תלות

כדי להוסיף תלות ב-ARCore ל-Jetpack XR, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר מאגר ה-Maven של Google.

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

מגניב

dependencies {
    implementation "androidx.xr.arcore:arcore:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.1.0-alpha01")
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

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

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.1

גרסה 1.1.0-alpha01

‫21 באוקטובר 2026

‫androidx.xr.arcore:arcore-*:1.1.0-alpha01 מופץ. גרסה 1.1.0-alpha01 מכילה את השמירות האלה.

שינויים ב-API

  • השקנו את ה-API של SpatialAnnotation למעקב אחרי אובייקטים וצורות גיאומטריות פיזיות בתלת-ממד. הוספנו את SpatialAnnotationTrackingOptions ואת תבנית ה-builder התואמת שלו כדי להגדיר מעקב מרחבי באמצעות מאגרי נתונים זמניים של תמונות מהמצלמה. (I918ce)
  • הוספנו את SpatialAnnotation ו-SpatialAnnotationTrackingMode ל-Jetpack XR ARCore, כדי לאפשר למפתחים להגדיר ולעקוב אחרי גיאומטריות מרובעות תלת-ממדיות מוגבלות (Quad) שמטרגטות סביבות מרחביות פיזיות בעולם האמיתי. (I880e4)
  • הוספנו את TestSpatialAnnotation כדי לאפשר סימולציה פרוגרמטית של הערות מרחביות בבדיקות אוטומטיות. (If2335)
  • הוספנו את ממשקי ה-API החדשים geospatialPose,‏ horizontalAccuracy,‏ verticalAccuracy ו-orientationYawAccuracy כדי לספק מידע נוסף במצב הגיאו-מרחבי. (If28f8)

תיקוני באגים

  • התלות androidx.lifecycle:lifecycle-runtime עודכנה לגרסה 2.10.0. הגרסה הזו נדרשת כדי להריץ בדיקות lint של זמן ריצה של מחזור חיים בחבילה עם AGP בגרסה 9.5.0-alpha04 ואילך. (I99bfd, ‏ b/556807521)
  • נבדק אם מספר התמונות המקסימלי הוא 0 בזמן ההגדרה של AugmentedImage, והושלך UnsupportedOperationException במקום להיכשל באופן בלתי צפוי. I6ce439
  • צריך לתקן דליפות זיכרון ובעיות בו-זמניות ב-AugmentedImageRenderer על ידי מעקב וביטול של משימות רינדור, סילוק ישויות ושינוי בטוח של אוסף התמונות. Ie70760

גירסה 1.0

גרסה 1.0.0

‫21 באוקטובר 2026

‫androidx.xr.arcore:arcore-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.

התכונות העיקריות בגרסה 1.0.0:

  • ‫ARCore for Jetpack XR עכשיו יציב! ספריית ARCore for Jetpack XR מספקת יכולות לשילוב תוכן דיגיטלי עם העולם האמיתי. הספרייה הזו כוללת מעקב תנועה, נקודות עיגון קבועות, בדיקה של מיקום המצביע, זיהוי מישור עם תיוג סמנטי (לדוגמה, רצפה, קירות ומשטחי שולחן) ותנוחות גיאוגרפיות באמצעות מערכת המיקום החזותי של Google.
  • מידע נוסף זמין במדריך למפתחים ובמאמרי העזרה של ה-API.

גרסה ‎1.0.0-rc02

‫7 באוקטובר 2026

‫androidx.xr.arcore:arcore-*:1.0.0-rc02 מופץ. גרסה ‎1.0.0-rc02 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה שבה OpenXrRuntime לא הצליח להגדיר את הסשן כשלא הייתה תמיכה במעקב אחר תמונות מוגברות. (I8b9759)
  • תוקנו כמה בעיות, כולל: ניהול זיכרון משופר ב-XrInstanceManager באמצעות applicationContext, פתרון בעיות פוטנציאליות שקשורות למחזור החיים על ידי פישוט מנגנוני השמירה במטמון של Session ו-Scene, ושיפור של ReferenceCleaner כדי להבטיח רישומי ניקוי מסוג thread-safe וסילוקים מפורשים. (Id0b76c)

גרסה ‎1.0.0-rc01

‫9 בספטמבר 2026

‫androidx.xr.arcore:arcore-*:1.0.0-rc01 מופץ. גרסה 1.0.0-rc01 מכילה את השמירות האלה.

גרסה ‎1.0.0-beta02

‫12 באוגוסט 2026

‫androidx.xr.arcore:arcore-*:1.0.0-beta02 מופץ. גרסה ‎1.0.0-beta02 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיית בו-זמניות בשמירת עוגנים ב-OpenXR. (I15c8b)
  • הטמענו את toString() בכיתות נוספות לצורך ניפוי באגים. (I587e8)

גרסה 1.0.0-beta01

‫15 ביולי 2026

‫androidx.xr.arcore:arcore-*:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

שינויים ב-API

  • עדכנו את המשתנה לשינוי גודל כך שישתמש ב-ResizePolicy במקום בשני משתנים (I7fb0f, ‏ b/496257436, ‏ b/519672992)
  • נוספה עומס יתר שניתן להעביר עם הפרמטר movePolicy, והוצאה משימוש של transformingMovable ו-movable (Ic88c1,‏ b/481781189)
  • הסרנו את TrackingState.TRACKING_DEGRADED ממשטח ה-API הציבורי, ובמקום זאת מיפינו את מצבי זמן הריצה המופחתים ל-PAUSED. צריך לעדכן את TrackingState כדי להשתמש בערכי enum במקום בערכי int להמרת מחרוזות ולהמרה בזמן ריצה. (I3eb5b, b/524326338)
  • הפונקציה Session.create הומרה לפונקציית השהיה. (I5d27f)
  • הוצאה משימוש של ProjectedPermissionsResultContract (I141d5, ‏ b/515699436)
  • השם של AnchorEntity השתנה ל-AnchorSpace (Ifa95e, ‏ b/513619219)

גרסה 1.0.0-alpha15

‫17 ביוני 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha15 מופץ. גרסה ‎1.0.0-alpha15 מכילה את השמירות האלה.

שינויים ב-API

  • השדה HitResult.createAnchor הוסר. מפתחים יכולים ליצור עוגן שמייצג את HitResult אם האובייקט שניתן למעקב של התוצאה הוא Anchorable, על ידי ציון מיקום ההקשה לפונקציה createAnchor של Anchorable. (Ia851e)
  • השדה AnchorUnsupportedObject הוסר. היא לא נזרקת יותר על ידי סביבת זמן ריצה של JXR ARCore. (Ia851e)
  • androidx.xr.arcore.Anchor ו-androidx.xr.arcore.ArDevice מטמיעים עכשיו את androidx.xr.arcore.Trackable. (I57b65)
  • ‫Depth.left, ‏Depth.right ו-Depth.mono לא יכולים להיות null‏ (I1fc5e)
  • השדה Face.getUserFace לא יכול להיות ריק (I0eac1)
  • ‫RenderViewpoint.left, ‏ RenderViewpoint.right, ‏ RenderViewpoint.mono לא יכולים להיות null עכשיו (Icf7fa)
  • ‫Hand.left ו-Hand.right לא יכולים להיות ריקים (Icef37)
  • נוסף ה-API‏ QrCode (Ia0bbe)

גרסה 1.0.0-alpha14

‫19 במאי 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha14 מופץ. גרסה ‎1.0.0-alpha14 מכילה את השמירות האלה.

שינויים ב-API

  • הוצאה משימוש של GeospatialMode.VPS_AND_GPS לטובת GeospatialMode.SPATIAL והוספת מצב מעקב חדש עם צריכת חשמל נמוכה יותר, GeospatialMode.INERTIAL, שמשתמש רק ב-IMU וב-GPS. (I1e6cd)
  • מחלקות חריגות של עוגנים בהתאמה אישית: AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException ו-AnchorUnsupportedObjectException הן עכשיו מופעים של RuntimeException, ולא מיועדות לבדיקה. (I9356e)
  • נוסף ה-API‏ ArCoreTestRule, כולל TestArDevice,‏ TestAugmentableObject,‏ TestDepthMap,‏ TestEye,‏ TestFace,‏ TestGeospatial,‏ TestHand,‏ TestPlane,‏ TestRenderViewpoint ו-TestTrackable (I0ad3c)
  • הסרה של AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation ו-AnchorCreateNotAuthorized. כל השגיאות האלה הן עכשיו חריגות בזמן הריצה. הסרה של AnchorCreateIllegalState. ברוב המקרים, השם הזה הוחלף בשם AnchorCreateTrackingUnavailable. מוסיף את AnchorException ואת המחלקות הנגזרות AnchorInvalidUuidException,‏ AnchorNotAuthorizedException,‏ AnchorUnsupportedLocationException,‏ AnchorRuntimeFailureException ו-AnchorUnsupportedObjectException. (I4c4dd)

תרומה חיצונית

  • נוסף ממשק API של AugmentedImage למעקב אחר סמנים בהתאמה אישית (I0cf09)

גרסה ‎1.0.0-alpha13

‫6 במאי 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha13 מופץ. גרסה ‎1.0.0-alpha13 מכילה את השמירות האלה.

שינויים ב-API

  • ‫TrackingState ו-VpsAvailabilityResult הועברו אל androidx.xr.arcore package, והסוגים ב-androidx.xr.runtime הוצאו משימוש. (Ic7930, b/480462213)
  • השם של Plane.Type שונה ל-PlaneType. (I8c90c, ‏ b/482675376)
  • השם של Hand.HandSide שונה ל-HandSide. (Ica562, ‏b/482675376)
  • השם של Plane.Label שונה ל-PlaneLabel. (Ic6b67, b/482675376)
  • השם של Geospatial.Surface שונה ל-GeospatialSurface. (I1a8be, ‏ b/482675376)
  • השם של Geospatial.State שונה ל-GeospatialState. (I203fa, ‏ b/482675376)
  • ה-API של NativeData הועבר לספרייה xr:runtime:runtime. (I87954, b/494251500)
  • ‫Session.create ו-Session.configure הן כעת רשימה חלקית ודורשות משפטי else בהצהרות when. (I9885e, ‏ b/495805998, ‏ b/495805998)
  • השדה androidx.xr.runtime.FieldOfView הוצא משימוש. במקום זאת, אתם צריכים להשתמש ב-androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • שינינו את Orbiter כך שישתמש ב-OrbiterAnchorPoint + VolumeOffset או ב-OrbiterPoseProvider במקום ב-position,‏ offset,‏ offsetType,‏ alignment ו-elevation. גם הפרמטר shouldRenderInNonSpatial הוסר. אם המפתח לא רוצה שה-orbiter יעובד ב-non-spatial, הוא צריך לעטוף את ה-orbiter בהצהרת if ולבדוק את SpatialCapabilities. (I9fbb3, ‏ b/462428503)
  • נוספו מאפייני שינוי שאפשר להזיז. ההגדרות האלה פועלות היטב כרגע בשביל SpatialPanels ו-SpatialExternalSurface. בקרוב מאוד תהיה תמיכה גם בSpatialGltfModels. עם זאת, המטרה היא שתהיה תמיכה טובה בכל SubspaceComposables. (I9a3cd, ‏ b/479530787, ‏ b/478935063, ‏ b/478935063)
  • המפתחים צריכים לעקוב אחרי ArDevice.state Flow to monitor State.trackingState ולהתאים את העיבוד או האזהרות של האפליקציה בהתאם לנאמנות המעקב. (Ic00f0, b/445466590)
  • שינינו את השם של HandJointType ערכי enum. (Ifbc83, ‏ b/482670596)
  • השם של FaceConfidenceRegion קבועים שונה. (Ia62d5, b/482670596)
  • השם של FaceBlendShapeType קבועים שונה. (I33b8b, b/482670596)
  • הוספת את CreatePoseFromGeospatialPoseErrorInternal ואת CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • השם של DeviceTrackingMode.LAST_KNOWN שונה ל-SPATIAL_LAST_KNOWN (עם חלופה שהוצאה משימוש), נוסף INERTIAL_LAST_KNOWN למעקב 3DoF ונוסף TRACKING_DEGRADED ל-TrackingState. (Ie661c, ‏ b/445466590)
  • הוצא משימוש: GroupEntity. כדי ליצור ישות עם הפונקציונליות הבסיסית של ישות בלבד, צריך להפעיל את Entity.create, שתחזיר ממשק של ישות. (I4c450, b/473867483)
  • נוסף XrLog API. מגדירים את XrLog.isEnabled לערך true כדי להפעיל את הרישום ביומן ב-JetpackXR, ומשתמשים ב-XrLog.Level כדי להגדיר את רמת הרישום ביומן. (I76a1f, ‏ b/463460895, ‏ b/487378441)

תיקוני באגים

  • הוספת תמיכה במצב מעקב אחרי מכשירים למכשירי openxr. (I91485, ‏ b/445466590)

גרסה ‎1.0.0-alpha12

‫25 במרץ 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha12 מופץ. גרסה 1.0.0-alpha12 מכילה את השמירות האלה.

שינויים ב-API

  • המאפיין Config.augmentedObjectCategories השתנה מרשימה לקבוצה. (I25a64, ‏ b/487376359)
  • הסוגים androidx.xr.arcore.Eye ו-androidx.xr.arcore.Hand. (I42438, ‏ b/449032900)
  • נוסף עומס יתר (overload) של Session.create כדי לאפשר העברה של הקשר של Android לצורך הגדרת היקף המשאבים. (I7d3fe, ‏ b/415805990, ‏ b/477386334)
  • החלפת המילה "FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT" במילה "FakeRuntimeAnchor.anchorResourceLimit". (I90841, ‏ b/431992235)
  • ה-API של TiltGesture הופך לניסיוני כי יכול להיות שהוא ישתנה או יוסר בעתיד. כדי להשתמש ב-API הזה, צריך להביע הסכמה ל-@ExperimentalGesturesApi (Ic9858)
  • נוספה האפשרות להגדיר קטגוריות למעקב אחרי AugmentedObject ב-Config‏ (I1f6e4, ‏ b/480220930)

תיקוני באגים

  • תוקן ה-build של Chrome על ידי עדכון הקובץ META-INF/services/ ‎ עם המיקום בפועל של PerceptionRuntimeFactory. (I7a801, ‏ b/481288291)

גרסה 1.0.0-alpha11

‫25 בפברואר 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha11 מופץ. גרסה 1.0.0-alpha11 מכילה את השמירות האלה.

גרסה 1.0.0-alpha10

‫28 בינואר 2026

‫androidx.xr.arcore:arcore-*:1.0.0-alpha10 מופץ. גרסה 1.0.0-alpha10 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו את ה-API של TiltGesture, שמספק Flow תגובתי לזיהוי יציב של מצב ההטיה של המכשיר (למעלה/למטה) עם התקדמות המעבר. (Ic269f, ‏ b/448152779)
  • עכשיו ARCore for Jetpack XR משתמש במנגנון הרישום ביומן של XR Runtime. מידע נוסף זמין בכתובת androidx.xr.runtime.Log. (l52735, b/448697662)

שינויים ב-API

  • עכשיו אפשר להשתמש ב-Geospatial.createPoseFromGeospatialPose במכשירים שתומכים ב-OpenXR. (l362c6)

גרסה 1.0.0-alpha09

‫3 בדצמבר 2025

‫androidx.xr.arcore:arcore-*:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

גרסה 1.0.0-alpha08

‫19 בנובמבר 2025

‫androidx.xr.arcore:arcore-*:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

תכונות חדשות

  • ARCore ל-Jetpack XR תומך עכשיו במכשירים שבהם Google Play Services למציאות רבודה זמין.
  • נוספו ממשקי Geospatial API לזמינות של VPS ולהמרת תנוחה (I144dc)

גרסה 1.0.0-alpha07

‫22 באוקטובר 2025

‫androidx.xr.arcore:arcore-*:1.0.0-alpha07 מופץ. גרסה ‎1.0.0-alpha07 מכילה את השמירות האלה.

תיקוני באגים

  • :xr:arcore:arcore-openxr נוסף כתלות בהטמעה של :xr:arcore:arcore (I47315, b/446999229)

גרסה 1.0.0-alpha06

‫24 בספטמבר 2025

‫androidx.xr.arcore:arcore-*:1.0.0-alpha06 מופץ. גרסה ‎1.0.0-alpha06 מכילה את השמירות האלה.

שינויים ב-API

  • התמיכה בבדיקות של ARCore הועברה למודול xr:arcore:arcore-testing. (I25469)
  • הוספת ArDevice ו-RenderViewpoint כדי לאפשר לאפליקציות לאחזר את תנוחת המכשיר ואת הגדרות התצוגה למטרות עיבוד. (Ib7e3f)
  • שינוי השם של HandJointType טיפוסי enum עם הקידומת HAND_JOINT_TYPE_. (I3f7cd)
  • הקובץ HandJointType הועבר מ-xr:runtime:runtime אל xr:arcore:arcore. (Iadb9c, ‏ b/409058039)
  • עכשיו Hand.State חושף java.nio.FloatBuffer עם תנוחות המפרקים בפורמט שמאפשר גישה קלה לאפליקציות שמתמקדות בביצועים. (I55e27)

גרסה ‎1.0.0-alpha05

‫30 ביולי 2025

‫androidx.xr.arcore:arcore:1.0.0-alpha05,‏ androidx.xr.arcore:arcore-guava:1.0.0-alpha05 ו-androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 שוחררו. גרסה ‎1.0.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

  • הוספת getPrimaryHandSide כדי שהמפתח יוכל לקבל את המידע על הצד של היד (I270bd)
  • הוספת API לבדיקת הזמינות של VPS גיאו-מרחבי (I58573)
  • הוספת ARCore API עבור checkVpsAvailability (Idbded)
  • פונקציות ההרחבה של stateFlowable נוספו ל-:xr:arcore:arcore-rxjava3 לשימוש של מפתחי Java. (I083aa, b/427247794)

שינויים ב-API

  • השמות של ערכי ההגדרה *Mode שונו כדי לשקף את ההתנהגות שלהם. (I6d247, ‏ b/414648065)
  • הארטיפקט הראשי של ARCore ‏ (xr:arcore:arcore) יכיל רק ממשקי API אסינכרוניים בסגנון Kotlin. מפתחי Java יכולים להסתמך על הספרייה xr:arcore:arcore-rxjava3 כדי לגשת לממשקי API תואמים. (Ia525e, ‏b/422794329)
  • רכיב ה-ARCore הראשי (xr:scenecore:scenecore) יכיל רק ממשקי API אסינכרוניים בסגנון Kotlin. מפתחי Java יכולים להסתמך על הספרייה xr:arcore:arcore-guava כדי לגשת לממשקי API תואמים. (Iffcb4, b/422773524)
  • הוספנו את Anchor.persistAsync() ל-AnchorGuava לשימוש של מפתחי Java. (I4af1c, b/425984631)
  • הוספנו את Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) ל-EarthGuava לשימוש של מפתחי Java. (I66357, b/425992992)
  • מפתחי Java ישתמשו בפונקציות ההרחבה של GltfModel.createAsync ב-GltfModel.kt. פונקציות אסינכרוניות ב-GltfModel יימחקו. (I0af60)
  • הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחים ב-Kotlin צריכים להשתמש בארגומנט הבא של המהדר כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict (זוהי ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin) (Ia8420, b/326456246)
  • פונקציות ההרחבה של subscribeAsFlowable נוספו אל :xr:arcore:arcore-rxjava3 לשימוש של מפתחי Java. (Id3e49, ‏ b/427277298)

גרסה ‎1.0.0-alpha04

‫7 במאי 2025

‫androidx.xr.arcore:arcore:1.0.0-alpha04 מופץ. גרסה ‎1.0.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • פרויקטים שפורסמו עם Kotlin 2.0 דורשים KGP 2.0.0 ואילך כדי לצרוך אותם. (Idb6b5)
  • ‫TrackingState ו-HandJointType הועברו מ-ARCore ל-Runtime.
  • השם של Hand.State.isActive (boolean) השתנה לשם Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • אם ה-UUID לא תקין, הפונקציה Anchor.load תחזיר את הערך Anchor.AnchorLoadInvalidUuid.

גרסה 1.0.0-alpha03

‫26 בפברואר 2025

גרסה androidx.xr.arcore:arcore:1.0.0-alpha03 הושקה ללא שינויים משמעותיים מאז גרסת האלפא האחרונה. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

גרסה 1.0.0-alpha02

‫12 בפברואר 2025

‫androidx.xr.arcore:arcore:1.0.0-alpha02 מופץ. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו תמיכה במעקב ידיים. כדי לגשת לפרטי המעקב, משתמשים ב-Hand.left וב-Hand.right.
  • ממשקי API שיוצרים עוגן (Anchor.create, Anchor.load, Plane.createAnchor) מחזירים עכשיו את AnchorCreateResult ומטמיעים את AnchorCreateResourcesExhausted בצורה תקינה.

תיקוני באגים

  • ‫Anchor.detach כבר לא גורם לקריסה חמורה בגלל מרוץ תהליכים עם השרשור של עדכון הסשן.
  • ‫Anchor.create יציב יותר כשמפעילים אותו באמולטור

גרסה 1.0.0-alpha01

‫12 בדצמבר 2024

‫androidx.xr.arcore:arcore-* 1.0.0-alpha01 מופץ.

תכונות בגרסה הראשונה

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

  • ‫Session: כדי להפעיל את הפונקציונליות של ARCore for Jetpack XR, נעשה שימוש ב-Jetpack XR Runtime. כדי להשתמש ברוב ממשקי ה-API של ARCore for Jetpack XR, צריך להשתמש בסשן. לכן, כדאי לעיין במסמכי התיעוד שלו.

  • ‫Plane: שימוש במישורים כדי להבין את העולם שסביבכם. לכל מישור יש Label שמתאר אותו מבחינה סמנטית. אתם יכולים להשתמש ב-subscribe כדי לקבל התראות על התוכניות האחרונות שזוהו, או ב-state כדי לקבל התראות על שינויים בתוכנית ספציפית.

  • ‫Anchor: קישור בין אובייקט וירטואלי לבין מיקום בעולם האמיתי. אפשר לצרף עוגנים למיקום ספציפי במרחב (באמצעות create) או ל-Trackable (באמצעות createAnchor).

    • אפשר להשתמש בעוגנים בסשנים שונים. אפשר להשתמש ב-persist כדי לאחסן אותם, ב-getPersistedAnchorUuids כדי למנות אותם וב-load כדי לאחזר אותם. חשוב unpersist אותם כשהם כבר לא בשימוש.

    • אפשר להשתמש בעוגנים גם ב-ARCore for Jetpack XR וגם ב-Jetpack SceneCore. אפשר ליצור AnchorEntity באמצעות עוגן, או אם יש לכם AnchorEntity קיים, אתם יכולים להשתמש ב-getAnchor כדי לאחזר את העוגן התומך שלו.

    • להציע אינטראקציות טבעיות עם המשתמשים באמצעות hitTest. ב-hitTest נעשה שימוש ב-Ray כדי לקבוע אילו תכנים הוא חותך וליצור Anchor מהמיקום הזה. כדאי לבצע hitTest מ-InputEvent.

בעיות מוכרות

  • יכול להיות שיהיה עיכוב בין הקריאה ל-unpersist לבין הסרת ה-UUID מהתוצאות שמוחזרות על ידי getPersistedAnchorUuids.

  • ‫create לא יאמת שלמערכת יש מספיק משאבים כדי להחזיר עוגנים חדשים. יצירת יותר מדי נקודות עיגון עלולה לגרום לקריסה.

  • בשלב הזה, אין תמיכה בשמירה של עוגן שנשמר בעבר ואז הוסר.

  • אפשר להשתמש באמולטור, אבל יכול להיות שההתנהגות לא תהיה יציבה כמו בהרצה במכשיר פיזי. במיוחד, קריאות ל-create עלולות להיכשל עם שגיאת קוד Native ולסיים את הפעילות באופן מיידי.

  • במקרים מסוימים, יכול להיות שתיזרק שגיאה מסוג RuntimeException בטעות כשקוראים לפונקציה persist עם ההודעה "Anchor was not persisted". במקרים האלה, הפונקציה עדיין תצליח והעוגן יישמר. כדי לעקוף את הבעיה, מומלץ לעטוף את הקריאה ל-persist בבלוק try.