‫ARCore for Jetpack XR

הופכים תוכן דיגיטלי לחלק מהעולם האמיתי באמצעות יכולות תפיסה.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫19 בנובמבר 2025 - - - ‎1.0.0-alpha08

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

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

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

מגניב

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha08"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha08"
    implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha08"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha08")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha08")
    implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha08")
}

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

משוב

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

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

מידע נוסף זמין במאמרי העזרה בנושא הכלי למעקב אחר בעיות.

גירסה 1.0

גרסה 1.0.0-alpha08

‫19 בנובמבר 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha08 משוחרר. גרסה ‎1.0.0-alpha08 מכילה את הקומטים האלה.

תכונות חדשות

  • ARCore for Jetpack XR תומך עכשיו במכשירים שבהם שירותי Google Play למציאות רבודה זמינים.
  • נוספו ממשקי 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)
  • שינוי השם של סוגי ה-enum‏ HandJointType עם הקידומת HAND_JOINT_TYPE_. (I3f7cd)
  • הפריט HandJointType הועבר אל xr:arcore:arcore מ-xr:runtime:runtime. (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)
  • הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוגים. מפתחי 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).
  • הפונקציה Anchor.load מחזירה Anchor.AnchorLoadInvalidUuid אם ה-UUID לא תקין.

גרסה 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 מתחת לפני השטח כדי להפעיל את הפונקציונליות שלו. תשתמשו באובייקט Session כדי לבצע אינטראקציה עם רוב ממשקי ה-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. בדיקת פגיעה משתמשת ב-Ray כדי לקבוע אילו תכנים היא חותכת וליצור Anchor מהמיקום הזה. מומלץ לבצע בדיקת פגיעה מ-InputEvent.

בעיות מוכרות

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

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

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

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

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