ARCore برای Jetpack XR

محتوای دیجیتال را با قابلیت‌های ادراکی به دنیای واقعی بیاورید.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۹ سپتامبر ۲۰۲۶ - ۱.۰.۰-rc01 - -

اعلام وابستگی‌ها

برای افزودن وابستگی به ARCore برای Jetpack XR، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر ، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

شیار

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

کاتلین

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

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه ۱.۰

نسخه ۱.۰.۰-rc01

۹ سپتامبر ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-بتا۰۲

۱۲ آگوست ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل همزمانی در پایداری لنگر OpenXR . ( I15c8b )
  • toString() در کلاس‌های بیشتری برای اشکال‌زدایی پیاده‌سازی شده است. ( I587e8 )

نسخه ۱.۰.۰-بتا۰۱

۱۵ ژوئیه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • اصلاحگر تغییر اندازه به‌روزرسانی شد تا به جای دو اصلاحگر ( I7fb0f ، b/496257436 ، b/519672992 ) از یک ResizePolicy استفاده کند.
  • اضافه بار متحرک با پارامتر movePolicy اضافه شد و transformingMovable و movable منسوخ شدند ( Ic88c1 ، b/481781189 )
  • TrackingState .TRACKING_DEGRADED از سطح API عمومی حذف شد و حالت‌های تنزل‌یافته در زمان اجرا به PAUSED نگاشت شدند. TrackingState به‌روزرسانی شد تا از enumها به جای مقادیر int برای تبدیل رشته و تبدیل زمان اجرا استفاده شود. ( I3eb5b , b/524326338 )
  • تابع Session.create به یک تابع suspend تبدیل شد. ( I5d27f )
  • قرارداد ProjectedPermissionsResultContract ( I141d5 ، b/515699436 ) منسوخ شد.
  • AnchorEntity به‌روزرسانی شد تا AnchorSpace نامیده شود ( Ifa95e ، b/513619219 )

نسخه ۱.۰.۰-آلفا۱۵

۱۷ ژوئن ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha15 منتشر شد. نسخه 1.0.0-alpha15 شامل این کامیت‌ها است.

تغییرات API

  • HitResult.createAnchor حذف شد. توسعه‌دهندگان می‌توانند در صورتی که trackable نتیجه یک Anchorable باشد، با ارائه موقعیت ضربه به تابع createAnchor از Anchorable ، یک anchor ایجاد کنند که HitResult را نشان می‌دهد. ( Ia851e )
  • AnchorUnsupportedObject حذف شد. دیگر توسط JXR ARCore runtime اجرا نمی‌شود. ( Ia851e )
  • androidx.xr.arcore.Anchor و androidx.xr.arcore.ArDevice اکنون androidx.xr.arcore.Trackable را پیاده‌سازی می‌کنند. ( I57b65 )
  • Depth.left ، Depth.right و Depth.mono اکنون غیرقابل تهی‌سازی هستند ( I1fc5e )
  • Face.getUserFace اکنون غیرقابل تهی شدن است ( I0eac1 )
  • RenderViewpoint.left ، RenderViewpoint.right ، RenderViewpoint.mono اکنون غیرقابل تهی‌سازی هستند ( Icf7fa )
  • Hand.left و Hand.right غیرقابل تهی‌سازی هستند ( Icef37 )
  • API QrCode اضافه شد ( Ia0bbe )

نسخه ۱.۰.۰-آلفا۱۴

۱۹ مه ۲۰۲۶

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 ) اضافه شد

نسخه ۱.۰.۰-آلفا۱۳

۶ مه ۲۰۲۶

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 اکنون غیر جامع هستند و در دستورات when به عبارت else نیاز دارند. ( I9885e ، b/495805998 ، b/495805998 )
  • androidx.xr.runtime.FieldOfView منسوخ شده است. به جای آن androidx.xr.runtime.math.FieldOfView استفاده کنید. ( Ia01a0 , b/480233045 )
  • Orbiter تغییر داده شد تا به جای position، offset، offsetType، alignment و elevation از OrbiterAnchorPoint + VolumeOffset یا OrbiterPoseProvider استفاده کند. همچنین پارامتر shouldRenderInNonSpatial حذف شد. اگر توسعه‌دهنده نمی‌خواهد که orbiter به صورت غیر فضایی رندر شود، باید orbiter را در یک عبارت if قرار دهد و SpatialCapabilities را بررسی کند. ( I9fbb3 ، b/462428503 )
  • اصلاح‌کننده‌های متحرک اضافه شدند. این اصلاح‌کننده‌ها در حال حاضر برای SpatialPanels و SpatialExternalSurface به خوبی کار می‌کنند. خیلی زود برای SpatialGltfModels نیز پشتیبانی خواهند شد. با این حال، هدف این است که این موارد به خوبی برای همه SubspaceComposables پشتیبانی شوند. ( I9a3cd ، b/479530787 ، b/478935063 ، b/478935063 )
  • انتظار می‌رود توسعه‌دهندگان جریان ArDevice.state را برای نظارت بر State.trackingState مشاهده کنند و رندر یا هشدارهای برنامه خود را بر اساس وفاداری ردیابی تنظیم کنند. ( Ic00f0 , b/445466590 )
  • مقادیر شمارشی HandJointType تغییر نام داده شدند. ( 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 که فقط قابلیت Entity پایه را دارد، Entity.create را فراخوانی کنید که رابط Entity و ( I4c450 ، b/473867483 ) را برمی‌گرداند.
  • رابط برنامه‌نویسی کاربردی XrLog اضافه شد. برای فعال کردن ثبت وقایع در JetpackXR، مقدار XrLog.isEnabled را روی true تنظیم کنید و XrLog.Level برای تنظیم سطح ثبت وقایع استفاده کنید. ( I76a1f ، b/463460895 ، b/487378441 )

رفع اشکالات

  • پشتیبانی از ردیابی وضعیت دستگاه را به دستگاه‌های openxr اضافه کنید. ( I91485 ، b/445466590 )

نسخه ۱.۰.۰-آلفا۱۲

۲۵ مارس ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha12 منتشر شد. نسخه 1.0.0-alpha12 شامل این کامیت‌ها است.

تغییرات API

  • Config.augmentedObjectCategories از لیست به مجموعه (Set) تغییر یافت. ( I25a64 , b/487376359 )
  • انواع androidx.xr.arcore.Eye و androidx.xr.arcore.Hand . ( I42438 ، b/449032900 )
  • اضافه بار Session.create اضافه شد تا امکان ارسال یک Android Context برای محدوده‌بندی منابع فراهم شود. ( I7d3fe ، b/415805990 ، b/477386334 )
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT را به FakeRuntimeAnchor.anchorResourceLimit تغییر می‌دهد. ( I90841 ، b/431992235 )
  • API مربوط به TiltGesture در حال آزمایشی شدن است، زیرا ممکن است در آینده تغییر کند یا حذف شود. برای استفاده از این API، از @ExperimentalGesturesApi ( Ic9858 ) استفاده کنید.
  • قابلیت تنظیم دسته‌ها برای ردیابی AugmentedObject در پیکربندی ( I1f6e4 ، b/480220930 ) اضافه شد.

رفع اشکالات

  • با به‌روزرسانی فایل META-INF/services/ با محل واقعی PerceptionRuntimeFactory ، مشکل ساخت کروم برطرف شد. ( I7a801 ، b/481288291 )

نسخه ۱.۰.۰-آلفا۱۱

۲۵ فوریه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha11 منتشر شد. نسخه 1.0.0-alpha11 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۱۰

۲۸ ژانویه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha10 منتشر شد. نسخه 1.0.0-alpha10 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • API TiltGesture معرفی می‌کند که یک Flow واکنشی برای تشخیص پایدار وضعیت شیب دستگاه (بالا/پایین) با پیشرفت انتقال ارائه می‌دهد. ( Ic269f ، b/448152779 )
  • ARCore برای Jetpack XR اکنون از مکانیسم ثبت وقایع زمان اجرا XR استفاده می‌کند. برای اطلاعات بیشتر به androidx.xr.runtime.Log مراجعه کنید. ( l52735 ، b/448697662 )

تغییرات API

  • Geospatial.createPoseFromGeospatialPose اکنون روی دستگاه‌های دارای OpenXR کار می‌کند. ( l362c6 )

نسخه ۱.۰.۰-آلفا۰۹

۳ دسامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha09 منتشر شد. نسخه 1.0.0-alpha09 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۰۸

۱۹ نوامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • ARCore برای Jetpack XR اکنون از دستگاه‌هایی که سرویس‌های Google Play برای واقعیت افزوده در آنها موجود است، پشتیبانی می‌کند.
  • API های جغرافیایی برای دسترسی به VPS و تبدیل موقعیت مکانی اضافه شد ( I144dc )

نسخه ۱.۰.۰-آلفا۰۷

۲۲ اکتبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha07 منتشر شد. نسخه 1.0.0-alpha07 شامل این کامیت‌ها است.

رفع اشکالات

  • :xr:arcore:arcore-openxr به عنوان یک وابستگی پیاده‌سازی به :xr:arcore:arcore ( I47315 , b/446999229 ) اضافه شد.

نسخه ۱.۰.۰-alpha06

۲۴ سپتامبر ۲۰۲۵

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: xr:runtime:runtime xr:arcore:arcore منتقل شده است ( Iadb9c ، b/409058039 ).
  • Hand.State اکنون یک java.nio.FloatBuffer با حالت‌های اتصال در قالبی که امکان دسترسی آسان به برنامه‌های کاربردی با عملکرد بالا را فراهم می‌کند، نمایش می‌دهد. ( I55e27 )

نسخه ۱.۰.۰-آلفا۰۵

۳۰ ژوئیه ۲۰۲۵

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 )
  • اضافه کردن API ARCore برای checkVpsAvailability ( شناسایی‌شده )
  • توابع افزونه‌ی stateFlowable برای استفاده‌ی توسعه‌دهندگان جاوا به :xr:arcore:arcore-rxjava3 اضافه شدند. ( I083aa , b/427247794 )

تغییرات API

  • پیکربندی *Mode برای انعکاس رفتارشان تغییر نام داده شده‌اند. ( I6d247 ، b/414648065 )
  • مصنوع اصلی ARCore (xr:arcore:arcore) فقط شامل APIهای ناهمگام به سبک کاتلین خواهد بود. توسعه‌دهندگان جاوا می‌توانند برای دسترسی به APIهای سازگار به کتابخانه xr:arcore:arcore-rxjava3 تکیه کنند. ( Ia525e , b/422794329 )
  • مصنوع اصلی ARCore ( xr:scenecore:scenecore ) فقط شامل APIهای ناهمگام به سبک کاتلین خواهد بود. توسعه‌دهندگان جاوا می‌توانند برای دسترسی به APIهای سازگار به کتابخانه xr:arcore:arcore-guava تکیه کنند. ( Iffcb4 ، b/422773524 )
  • Anchor.persistAsync() برای استفاده توسعه‌دهندگان جاوا به AnchorGuava اضافه شد. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) برای استفاده توسعه‌دهندگان جاوا به EarthGuava اضافه شد. ( I66357 , b/425992992 )
  • توسعه‌دهندگان جاوا از توابع افزونه برای GltfModel.createAsync در GltfModel.kt استفاده خواهند کرد. توابع Async در GltfModel حذف خواهند شد. ( I0af60 )
  • این کتابخانه اکنون از حاشیه‌نویسی‌های nullness از نوع JSpecify استفاده می‌کند که از نوع type-use هستند. توسعه‌دهندگان Kotlin باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند: -Xjspecify-annotations=strict (این پیش‌فرض است که از نسخه 2.1.0 کامپایلر Kotlin شروع می‌شود) ( Ia8420 ، b/326456246 )
  • توابع افزونه subscribeAsFlowable برای استفاده توسعه‌دهندگان جاوا به :xr:arcore:arcore-rxjava3 اضافه شدند. ( Id3e49 ، b/427277298 )

نسخه ۱.۰.۰-آلفا۰۴

۷ مه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha04 منتشر شد. نسخه 1.0.0-alpha04 شامل این کامیت‌ها است.

تغییرات API

  • پروژه‌هایی که با کاتلین ۲.۰ منتشر شده‌اند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( IDb6b5 )
  • TrackingState و HandJointType از ARCore به Runtime منتقل شده‌اند.
  • Hand.State.isActive (boolean) به Hand.State.trackingState (androidx.xr.runtime.TrackingState) تغییر یافته است.
  • اگر UUID نامعتبر باشد، Anchor.load Anchor.AnchorLoadInvalidUuid را برمی‌گرداند.

نسخه ۱.۰.۰-آلفا۰۳

۲۶ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha03 بدون هیچ تغییر قابل توجهی از آخرین نسخه آلفا منتشر شده است. نسخه 1.0.0-alpha03 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۰۲

۱۲ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی از ردیابی دست اضافه شد. برای دسترسی به اطلاعات ردیابی Hand.left و Hand.right استفاده کنید.
  • APIهایی که یک anchor ( Anchor.create ، Anchor.load ، Plane.createAnchor ) تولید می‌کنند، اکنون همگی AnchorCreateResult را برمی‌گردانند و AnchorCreateResourcesExhausted را به درستی پیاده‌سازی می‌کنند.

رفع اشکالات

  • Anchor.detach دیگر به دلیل شرایط رقابتی با نخ به‌روزرسانی Session باعث خرابی مهلک نمی‌شود.
  • Anchor.create هنگام اجرا روی یک شبیه‌ساز پایدارتر است

نسخه ۱.۰.۰-آلفا۰۱

۱۲ دسامبر ۲۰۲۴

androidx.xr.arcore:arcore-* 1.0.0-alpha01 منتشر شد.

ویژگی‌های نسخه اولیه

کتابخانه ARCore for Jetpack XR با الهام از کتابخانه ARCore موجود، قابلیت‌هایی را برای ترکیب محتوای دیجیتال با دنیای واقعی فراهم می‌کند. این کتابخانه شامل ردیابی حرکت، لنگرهای پایدار، آزمایش ضربه و شناسایی صفحه با برچسب‌گذاری معنایی (به عنوان مثال، کف، دیوارها و روی میزها) است. برای کسب اطلاعات بیشتر در مورد کار با ARCore for Jetpack XR، به راهنمای توسعه‌دهنده مراجعه کنید.

  • Session : ARCore برای Jetpack XR از Jetpack XR Runtime در زیر هود برای تأمین عملکرد خود استفاده می‌کند. شما از یک جلسه برای تعامل با اکثر APIهای ARCore برای Jetpack XR استفاده خواهید کرد، بنابراین لطفاً به مستندات آن نگاهی بیندازید.

  • Plane : از صفحه‌ها برای درک دنیای اطراف خود استفاده کنید. هر صفحه دارای یک Label است که آن را از نظر معنایی توصیف می‌کند. می‌توانید subscribe برای اطلاع از آخرین صفحات شناسایی شده یا state برای اطلاع از تغییرات یک صفحه خاص استفاده کنید.

  • Anchor : پیوندی بین یک شیء مجازی و یک مکان در دنیای واقعی. Anchorها می‌توانند به یک مکان خاص در فضا (با استفاده create ) یا یک Trackable (با استفاده از createAnchor ) متصل شوند.

    • می‌توان از Anchorها در طول جلسات مختلف دوباره استفاده کرد. می‌توانید persist برای ذخیره آنها، getPersistedAnchorUuids برای شمارش آنها و load برای بازیابی آنها استفاده کنید. مطمئن شوید که وقتی دیگر مورد استفاده قرار نمی‌گیرند، آنها را unpersist .

    • انکرها (Anchor) بین ARCore برای Jetpack XR و Jetpack SceneCore قابل تعامل هستند. می‌توانید با استفاده از یک انکر، یک AnchorEntity ایجاد کنید یا اگر یک AnchorEntity از قبل دارید، می‌توانید getAnchor برای بازیابی انکر پشتیبان آن استفاده کنید.

    • با استفاده از hitTest تعاملات طبیعی کاربر را ارائه دهید. یک hitTest از یک Ray برای تعیین اینکه کدام محتواها را قطع می‌کند و برای ایجاد یک Anchor از آن مکان استفاده می‌کند. انجام hitTest از یک InputEvent را در نظر بگیرید.

مشکلات شناخته شده

  • ممکن است بین فراخوانی unpersist و حذف UUID آن از نتایج برگردانده شده توسط getPersistedAnchorUuids تأخیری وجود داشته باشد.

  • create اعتبارسنجی نمی‌کند که سیستم منابع کافی برای بازگرداندن anchor های جدید را دارد. ایجاد تعداد بیش از حد anchor ممکن است منجر به خرابی شود.

  • حفظ یک Anchor که قبلاً حفظ شده و حفظ نشده است، در حال حاضر پشتیبانی نمی‌شود.

  • استفاده در شبیه‌ساز پشتیبانی می‌شود، اما ممکن است رفتار آن به پایداری اجرا روی یک دستگاه واقعی نباشد. به ویژه، فراخوانی‌های create ممکن است با خطای کد بومی مواجه شوند و بلافاصله فعالیت را خاتمه دهند.

  • در شرایط خاص، ممکن است هنگام فراخوانی persist یک RuntimeException با پیام "Anchor was not persistent" به اشتباه صادر شود. در این شرایط، تابع همچنان موفق خواهد بود و anchor persistent خواهد شد. به عنوان یک راه حل، توصیه می‌کنیم فراخوانی persist را با یک بلوک try بپوشانید.

،

ARCore برای Jetpack XR

محتوای دیجیتال را با قابلیت‌های ادراکی به دنیای واقعی بیاورید.
آخرین به‌روزرسانی انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
۹ سپتامبر ۲۰۲۶ - ۱.۰.۰-rc01 - -

اعلام وابستگی‌ها

برای افزودن وابستگی به ARCore برای Jetpack XR، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر ، مخزن Google's Maven را مطالعه کنید.

وابستگی‌های مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:

شیار

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

کاتلین

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

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

نسخه ۱.۰

نسخه ۱.۰.۰-rc01

۹ سپتامبر ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-بتا۰۲

۱۲ آگوست ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل همزمانی در پایداری لنگر OpenXR . ( I15c8b )
  • toString() در کلاس‌های بیشتری برای اشکال‌زدایی پیاده‌سازی شده است. ( I587e8 )

نسخه ۱.۰.۰-بتا۰۱

۱۵ ژوئیه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • اصلاحگر تغییر اندازه به‌روزرسانی شد تا به جای دو اصلاحگر ( I7fb0f ، b/496257436 ، b/519672992 ) از یک ResizePolicy استفاده کند.
  • اضافه بار متحرک با پارامتر movePolicy اضافه شد و transformingMovable و movable منسوخ شدند ( Ic88c1 ، b/481781189 )
  • TrackingState .TRACKING_DEGRADED از سطح API عمومی حذف شد و حالت‌های تنزل‌یافته در زمان اجرا به PAUSED نگاشت شدند. TrackingState به‌روزرسانی شد تا از enumها به جای مقادیر int برای تبدیل رشته و تبدیل زمان اجرا استفاده شود. ( I3eb5b , b/524326338 )
  • تابع Session.create به یک تابع suspend تبدیل شد. ( I5d27f )
  • قرارداد ProjectedPermissionsResultContract ( I141d5 ، b/515699436 ) منسوخ شد.
  • AnchorEntity به‌روزرسانی شد تا AnchorSpace نامیده شود ( Ifa95e ، b/513619219 )

نسخه ۱.۰.۰-آلفا۱۵

۱۷ ژوئن ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha15 منتشر شد. نسخه 1.0.0-alpha15 شامل این کامیت‌ها است.

تغییرات API

  • HitResult.createAnchor حذف شد. توسعه‌دهندگان می‌توانند در صورتی که trackable نتیجه یک Anchorable باشد، با ارائه موقعیت ضربه به تابع createAnchor از Anchorable ، یک anchor ایجاد کنند که HitResult را نشان می‌دهد. ( Ia851e )
  • AnchorUnsupportedObject حذف شد. دیگر توسط JXR ARCore runtime اجرا نمی‌شود. ( Ia851e )
  • androidx.xr.arcore.Anchor و androidx.xr.arcore.ArDevice اکنون androidx.xr.arcore.Trackable را پیاده‌سازی می‌کنند. ( I57b65 )
  • Depth.left ، Depth.right و Depth.mono اکنون غیرقابل تهی‌سازی هستند ( I1fc5e )
  • Face.getUserFace اکنون غیرقابل تهی شدن است ( I0eac1 )
  • RenderViewpoint.left ، RenderViewpoint.right ، RenderViewpoint.mono اکنون غیرقابل تهی‌سازی هستند ( Icf7fa )
  • Hand.left و Hand.right غیرقابل تهی‌سازی هستند ( Icef37 )
  • API QrCode اضافه شد ( Ia0bbe )

نسخه ۱.۰.۰-آلفا۱۴

۱۹ مه ۲۰۲۶

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 ) اضافه شد

نسخه ۱.۰.۰-آلفا۱۳

۶ مه ۲۰۲۶

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 اکنون غیر جامع هستند و در دستورات when به عبارت else نیاز دارند. ( I9885e ، b/495805998 ، b/495805998 )
  • androidx.xr.runtime.FieldOfView منسوخ شده است. به جای آن androidx.xr.runtime.math.FieldOfView استفاده کنید. ( Ia01a0 , b/480233045 )
  • Orbiter تغییر داده شد تا به جای position، offset، offsetType، alignment و elevation از OrbiterAnchorPoint + VolumeOffset یا OrbiterPoseProvider استفاده کند. همچنین پارامتر shouldRenderInNonSpatial حذف شد. اگر توسعه‌دهنده نمی‌خواهد که orbiter به صورت غیر فضایی رندر شود، باید orbiter را در یک عبارت if قرار دهد و SpatialCapabilities را بررسی کند. ( I9fbb3 ، b/462428503 )
  • اصلاح‌کننده‌های متحرک اضافه شدند. این اصلاح‌کننده‌ها در حال حاضر برای SpatialPanels و SpatialExternalSurface به خوبی کار می‌کنند. خیلی زود برای SpatialGltfModels نیز پشتیبانی خواهند شد. با این حال، هدف این است که این موارد به خوبی برای همه SubspaceComposables پشتیبانی شوند. ( I9a3cd ، b/479530787 ، b/478935063 ، b/478935063 )
  • انتظار می‌رود توسعه‌دهندگان جریان ArDevice.state را برای نظارت بر State.trackingState مشاهده کنند و رندر یا هشدارهای برنامه خود را بر اساس وفاداری ردیابی تنظیم کنند. ( Ic00f0 , b/445466590 )
  • مقادیر شمارشی HandJointType تغییر نام داده شدند. ( 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 که فقط قابلیت Entity پایه را دارد، Entity.create را فراخوانی کنید که رابط Entity و ( I4c450 ، b/473867483 ) را برمی‌گرداند.
  • رابط برنامه‌نویسی کاربردی XrLog اضافه شد. برای فعال کردن ثبت وقایع در JetpackXR، مقدار XrLog.isEnabled را روی true تنظیم کنید و XrLog.Level برای تنظیم سطح ثبت وقایع استفاده کنید. ( I76a1f ، b/463460895 ، b/487378441 )

رفع اشکالات

  • پشتیبانی از ردیابی وضعیت دستگاه را به دستگاه‌های openxr اضافه کنید. ( I91485 ، b/445466590 )

نسخه ۱.۰.۰-آلفا۱۲

۲۵ مارس ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha12 منتشر شد. نسخه 1.0.0-alpha12 شامل این کامیت‌ها است.

تغییرات API

  • Config.augmentedObjectCategories از لیست به مجموعه (Set) تغییر یافت. ( I25a64 , b/487376359 )
  • انواع androidx.xr.arcore.Eye و androidx.xr.arcore.Hand . ( I42438 ، b/449032900 )
  • اضافه بار Session.create اضافه شد تا امکان ارسال یک Android Context برای محدوده‌بندی منابع فراهم شود. ( I7d3fe ، b/415805990 ، b/477386334 )
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT را به FakeRuntimeAnchor.anchorResourceLimit تغییر می‌دهد. ( I90841 ، b/431992235 )
  • API مربوط به TiltGesture در حال آزمایشی شدن است، زیرا ممکن است در آینده تغییر کند یا حذف شود. برای استفاده از این API، از @ExperimentalGesturesApi ( Ic9858 ) استفاده کنید.
  • قابلیت تنظیم دسته‌ها برای ردیابی AugmentedObject در پیکربندی ( I1f6e4 ، b/480220930 ) اضافه شد.

رفع اشکالات

  • با به‌روزرسانی فایل META-INF/services/ با محل واقعی PerceptionRuntimeFactory ، مشکل ساخت کروم برطرف شد. ( I7a801 ، b/481288291 )

نسخه ۱.۰.۰-آلفا۱۱

۲۵ فوریه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha11 منتشر شد. نسخه 1.0.0-alpha11 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۱۰

۲۸ ژانویه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha10 منتشر شد. نسخه 1.0.0-alpha10 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • API TiltGesture معرفی می‌کند که یک Flow واکنشی برای تشخیص پایدار وضعیت شیب دستگاه (بالا/پایین) با پیشرفت انتقال ارائه می‌دهد. ( Ic269f ، b/448152779 )
  • ARCore برای Jetpack XR اکنون از مکانیسم ثبت وقایع زمان اجرا XR استفاده می‌کند. برای اطلاعات بیشتر به androidx.xr.runtime.Log مراجعه کنید. ( l52735 ، b/448697662 )

تغییرات API

  • Geospatial.createPoseFromGeospatialPose اکنون روی دستگاه‌های دارای OpenXR کار می‌کند. ( l362c6 )

نسخه ۱.۰.۰-آلفا۰۹

۳ دسامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha09 منتشر شد. نسخه 1.0.0-alpha09 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۰۸

۱۹ نوامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha08 منتشر شد. نسخه 1.0.0-alpha08 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • ARCore برای Jetpack XR اکنون از دستگاه‌هایی که سرویس‌های Google Play برای واقعیت افزوده در آنها موجود است، پشتیبانی می‌کند.
  • API های جغرافیایی برای دسترسی به VPS و تبدیل موقعیت مکانی اضافه شد ( I144dc )

نسخه ۱.۰.۰-آلفا۰۷

۲۲ اکتبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha07 منتشر شد. نسخه 1.0.0-alpha07 شامل این کامیت‌ها است.

رفع اشکالات

  • :xr:arcore:arcore-openxr به عنوان یک وابستگی پیاده‌سازی به :xr:arcore:arcore ( I47315 , b/446999229 ) اضافه شد.

نسخه ۱.۰.۰-alpha06

۲۴ سپتامبر ۲۰۲۵

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: xr:runtime:runtime xr:arcore:arcore منتقل شده است ( Iadb9c ، b/409058039 ).
  • Hand.State اکنون یک java.nio.FloatBuffer با حالت‌های اتصال در قالبی که امکان دسترسی آسان به برنامه‌های کاربردی با عملکرد بالا را فراهم می‌کند، نمایش می‌دهد. ( I55e27 )

نسخه ۱.۰.۰-آلفا۰۵

۳۰ ژوئیه ۲۰۲۵

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 )
  • اضافه کردن API ARCore برای checkVpsAvailability ( شناسایی‌شده )
  • توابع افزونه‌ی stateFlowable برای استفاده‌ی توسعه‌دهندگان جاوا به :xr:arcore:arcore-rxjava3 اضافه شدند. ( I083aa , b/427247794 )

تغییرات API

  • پیکربندی *Mode برای انعکاس رفتارشان تغییر نام داده شده‌اند. ( I6d247 ، b/414648065 )
  • مصنوع اصلی ARCore (xr:arcore:arcore) فقط شامل APIهای ناهمگام به سبک کاتلین خواهد بود. توسعه‌دهندگان جاوا می‌توانند برای دسترسی به APIهای سازگار به کتابخانه xr:arcore:arcore-rxjava3 تکیه کنند. ( Ia525e , b/422794329 )
  • مصنوع اصلی ARCore ( xr:scenecore:scenecore ) فقط شامل APIهای ناهمگام به سبک کاتلین خواهد بود. توسعه‌دهندگان جاوا می‌توانند برای دسترسی به APIهای سازگار به کتابخانه xr:arcore:arcore-guava تکیه کنند. ( Iffcb4 ، b/422773524 )
  • Anchor.persistAsync() برای استفاده توسعه‌دهندگان جاوا به AnchorGuava اضافه شد. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) برای استفاده توسعه‌دهندگان جاوا به EarthGuava اضافه شد. ( I66357 , b/425992992 )
  • توسعه‌دهندگان جاوا از توابع افزونه برای GltfModel.createAsync در GltfModel.kt استفاده خواهند کرد. توابع Async در GltfModel حذف خواهند شد. ( I0af60 )
  • این کتابخانه اکنون از حاشیه‌نویسی‌های nullness از نوع JSpecify استفاده می‌کند که از نوع type-use هستند. توسعه‌دهندگان Kotlin باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند: -Xjspecify-annotations=strict (این پیش‌فرض است که از نسخه 2.1.0 کامپایلر Kotlin شروع می‌شود) ( Ia8420 ، b/326456246 )
  • توابع افزونه subscribeAsFlowable برای استفاده توسعه‌دهندگان جاوا به :xr:arcore:arcore-rxjava3 اضافه شدند. ( Id3e49 ، b/427277298 )

نسخه ۱.۰.۰-آلفا۰۴

۷ مه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha04 منتشر شد. نسخه 1.0.0-alpha04 شامل این کامیت‌ها است.

تغییرات API

  • پروژه‌هایی که با کاتلین ۲.۰ منتشر شده‌اند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( IDb6b5 )
  • TrackingState و HandJointType از ARCore به Runtime منتقل شده‌اند.
  • Hand.State.isActive (boolean) به Hand.State.trackingState (androidx.xr.runtime.TrackingState) تغییر یافته است.
  • اگر UUID نامعتبر باشد، Anchor.load Anchor.AnchorLoadInvalidUuid را برمی‌گرداند.

نسخه ۱.۰.۰-آلفا۰۳

۲۶ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha03 بدون هیچ تغییر قابل توجهی از آخرین نسخه آلفا منتشر شده است. نسخه 1.0.0-alpha03 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-آلفا۰۲

۱۲ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • پشتیبانی از ردیابی دست اضافه شد. برای دسترسی به اطلاعات ردیابی Hand.left و Hand.right استفاده کنید.
  • APIهایی که یک anchor ( Anchor.create ، Anchor.load ، Plane.createAnchor ) تولید می‌کنند، اکنون همگی AnchorCreateResult را برمی‌گردانند و AnchorCreateResourcesExhausted را به درستی پیاده‌سازی می‌کنند.

رفع اشکالات

  • Anchor.detach دیگر به دلیل شرایط رقابتی با نخ به‌روزرسانی Session باعث خرابی مهلک نمی‌شود.
  • Anchor.create هنگام اجرا روی یک شبیه‌ساز پایدارتر است

نسخه ۱.۰.۰-آلفا۰۱

۱۲ دسامبر ۲۰۲۴

androidx.xr.arcore:arcore-* 1.0.0-alpha01 منتشر شد.

ویژگی‌های نسخه اولیه

کتابخانه ARCore for Jetpack XR با الهام از کتابخانه ARCore موجود، قابلیت‌هایی را برای ترکیب محتوای دیجیتال با دنیای واقعی فراهم می‌کند. این کتابخانه شامل ردیابی حرکت، لنگرهای پایدار، آزمایش ضربه و شناسایی صفحه با برچسب‌گذاری معنایی (به عنوان مثال، کف، دیوارها و روی میزها) است. برای کسب اطلاعات بیشتر در مورد کار با ARCore for Jetpack XR، به راهنمای توسعه‌دهنده مراجعه کنید.

  • Session : ARCore برای Jetpack XR از Jetpack XR Runtime در زیر هود برای تأمین عملکرد خود استفاده می‌کند. شما از یک جلسه برای تعامل با اکثر APIهای ARCore برای Jetpack XR استفاده خواهید کرد، بنابراین لطفاً به مستندات آن نگاهی بیندازید.

  • Plane : از صفحه‌ها برای درک دنیای اطراف خود استفاده کنید. هر صفحه دارای یک Label است که آن را از نظر معنایی توصیف می‌کند. می‌توانید subscribe برای اطلاع از آخرین صفحات شناسایی شده یا state برای اطلاع از تغییرات یک صفحه خاص استفاده کنید.

  • Anchor : پیوندی بین یک شیء مجازی و یک مکان در دنیای واقعی. Anchorها می‌توانند به یک مکان خاص در فضا (با استفاده create ) یا یک Trackable (با استفاده از createAnchor ) متصل شوند.

    • می‌توان از Anchorها در طول جلسات مختلف دوباره استفاده کرد. می‌توانید persist برای ذخیره آنها، getPersistedAnchorUuids برای شمارش آنها و load برای بازیابی آنها استفاده کنید. مطمئن شوید که وقتی دیگر مورد استفاده قرار نمی‌گیرند، آنها را unpersist .

    • انکرها (Anchor) بین ARCore برای Jetpack XR و Jetpack SceneCore قابل تعامل هستند. می‌توانید با استفاده از یک انکر، یک AnchorEntity ایجاد کنید یا اگر یک AnchorEntity از قبل دارید، می‌توانید getAnchor برای بازیابی انکر پشتیبان آن استفاده کنید.

    • با استفاده از hitTest تعاملات طبیعی کاربر را ارائه دهید. یک hitTest از یک Ray برای تعیین اینکه کدام محتواها را قطع می‌کند و برای ایجاد یک Anchor از آن مکان استفاده می‌کند. انجام hitTest از یک InputEvent را در نظر بگیرید.

مشکلات شناخته شده

  • ممکن است بین فراخوانی unpersist و حذف UUID آن از نتایج برگردانده شده توسط getPersistedAnchorUuids تأخیری وجود داشته باشد.

  • create will not validate that the system has enough resources to return new anchors. Creating an excessive amount of anchors might lead to a crash.

  • Persisting an Anchor that was previously persisted and unpersisted is not currently supported.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.

،

ARCore for Jetpack XR

Bring digital content into the real world with perception capabilities.
آخرین به‌روزرسانی انتشار پایدار Release Candidate انتشار بتا Alpha Release
۹ سپتامبر ۲۰۲۶ - 1.0.0-rc01 - -

Declaring dependencies

To add a dependency on ARCore for Jetpack XR, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

شیار

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

کاتلین

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

For more information about dependencies, see Add build dependencies .

بازخورد

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

ایجاد یک مسئله جدید

See the Issue Tracker documentation for more information.

نسخه ۱.۰

Version 1.0.0-rc01

۹ سپتامبر ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .

Version 1.0.0-beta02

۱۲ آگوست ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits .

رفع اشکالات

  • Fix concurrency issue in OpenXR anchor persistence. ( I15c8b )
  • Implemented toString() in more classes for debugging. ( I587e8 )

Version 1.0.0-beta01

۱۵ ژوئیه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

API Changes

  • Updated resizable modifier to use a ResizePolicy instead of two modifiers ( I7fb0f , b/496257436 , b/519672992 )
  • Added movable overload with movePolicy param and deprecate transformingMovable and movable ( Ic88c1 , b/481781189 )
  • Removed TrackingState .TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. Update TrackingState to use enums instead of int values for string conversion and runtime conversion. ( I3eb5b , b/524326338 )
  • Converted Session.create to a suspend function. ( I5d27f )
  • Deprecated the ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • Updated AnchorEntity to be called AnchorSpace ( Ifa95e , b/513619219 )

Version 1.0.0-alpha15

۱۷ ژوئن ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits .

API Changes

  • HitResult.createAnchor was removed. Developers can create an anchor representing the HitResult if the trackable of the result is an Anchorable by supplying the hit position to the createAnchor function of the Anchorable . ( Ia851e )
  • AnchorUnsupportedObject was removed. It is no longer thrown by a JXR ARCore runtime. ( Ia851e )
  • androidx.xr.arcore.Anchor and androidx.xr.arcore.ArDevice now implement androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right , and Depth.mono are now non-nullable ( I1fc5e )
  • Face.getUserFace is now non-nullable ( I0eac1 )
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono are now non-nullable ( Icf7fa )
  • Hand.left and Hand.right are non non-nullable ( Icef37 )
  • Added QrCode API ( Ia0bbe )

Version 1.0.0-alpha14

۱۹ مه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits .

API Changes

  • Deprecating GeospatialMode.VPS_AND_GPS in favor of GeospatialMode.SPATIAL and introducing a new lower-power tracking mode, GeospatialMode.INERTIAL , which uses only IMU and GPS. ( I1e6cd )
  • Custom anchor exception classes: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException are now RuntimeException instances, not intended to be checked. ( I9356e )
  • Added ArCoreTestRule API, including TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint , & TestTrackable ( I0ad3c )
  • Removes AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation , and AnchorCreateNotAuthorized . All of these errors are now exceptions in the runtime. Removes AnchorCreateIllegalState . This has been replaced with AnchorCreateTrackingUnavailable in most cases. Adds AnchorException and derived classes AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException . ( I4c4dd )

External Contribution

  • Added AugmentedImage API for custom marker tracking ( I0cf09 )

Version 1.0.0-alpha13

۶ مه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits .

API Changes

  • TrackingState and VpsAvailabilityResult have moved to the androidx.xr.arcore package , and the types in androidx.xr.runtime are now deprecated. ( Ic7930 , b/480462213 )
  • Renamed Plane.Type to PlaneType . ( I8c90c , b/482675376 )
  • Renamed Hand.HandSide to HandSide . ( Ica562 , b/482675376 )
  • Renamed Plane.Label to PlaneLabel . ( Ic6b67 , b/482675376 )
  • Renamed Geospatial.Surface to GeospatialSurface . ( I1a8be , b/482675376 )
  • Renamed Geospatial.State to GeospatialState . ( I203fa , b/482675376 )
  • Moved NativeData API to xr:runtime:runtime library. ( I87954 , b/494251500 )
  • Session.create and Session.configure are now non-exhaustive and require else clauses in when statements. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView has been deprecated. Use androidx.xr.runtime.math.FieldOfView instead. ( Ia01a0 , b/480233045 )
  • Changed Orbiter to use either an OrbiterAnchorPoint + VolumeOffset or an OrbiterPoseProvider instead of position, offset, offsetType, alignment, and elevation. Also removed the shouldRenderInNonSpatial parameter. If the developer does not want the orbiter to render in non-spatial they should wrap the orbiter in an if statement and check the SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Added movable modifiers. These modifiers work well, right now, for SpatialPanels and SpatialExternalSurface . Very soon they will also be supported for SpatialGltfModels . However, the intention is to have these supported well for all SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Developers are expected to observe the ArDevice.state Flow to monitor State.trackingState and adjust their application's rendering or warnings accordingly based on the tracking fidelity. ( Ic00f0 , b/445466590 )
  • Renamed HandJointType enum values. ( Ifbc83 , b/482670596 )
  • Renamed FaceConfidenceRegion constants. ( Ia62d5 , b/482670596 )
  • Renamed FaceBlendShapeType constants. ( I33b8b , b/482670596 )
  • Added CreatePoseFromGeospatialPoseErrorInternal and CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Renamed DeviceTrackingMode.LAST_KNOWN to SPATIAL_LAST_KNOWN (with a deprecated fallback), added INERTIAL_LAST_KNOWN for 3DoF tracking, and added TRACKING_DEGRADED to TrackingState . ( Ie661c , b/445466590 )
  • Deprecated GroupEntity . To have an Entity with only the base Entity functionality, call Entity.create which will return and Entity interface. ( I4c450 , b/473867483 )
  • Added XrLog API. Set XrLog.isEnabled to true to enable logging in JetpackXR, and use XrLog.Level to set the log level. ( I76a1f , b/463460895 , b/487378441 )

رفع اشکالات

  • Add the device tracking state support to the openxr devices. ( I91485 , b/445466590 )

Version 1.0.0-alpha12

۲۵ مارس ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits .

API Changes

  • Changed Config.augmentedObjectCategories from a List to a Set. ( I25a64 , b/487376359 )
  • The types androidx.xr.arcore.Eye and androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Added Session.create overload to allow passing an Android Context for resource-scoping. ( I7d3fe , b/415805990 , b/477386334 )
  • Changes FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT to FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • Making TiltGesture API experimental as it may be changed or removed in the future. To use this api, opt in to @ExperimentalGesturesApi ( Ic9858 )
  • Added ability to set categories for AugmentedObject tracking in the Config ( I1f6e4 , b/480220930 )

رفع اشکالات

  • Fixed Chrome's build by updating META-INF/services/ file with actual location of PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Version 1.0.0-alpha11

۲۵ فوریه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .

Version 1.0.0-alpha10

۲۸ ژانویه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

ویژگی‌های جدید

  • Introduces TiltGesture API, providing a reactive Flow for stable detection of device tilt (UP/DOWN) state with transition progress. ( Ic269f , b/448152779 )
  • ARCore for Jetpack XR now uses the XR Runtime Logging mechanism. See androidx.xr.runtime.Log for more information. ( l52735 , b/448697662 )

API Changes

  • Geospatial.createPoseFromGeospatialPose now works on OpenXR-enabled devices. ( l362c6 )

Version 1.0.0-alpha09

۳ دسامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Version 1.0.0-alpha08

۱۹ نوامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

ویژگی‌های جدید

  • ARCore for Jetpack XR now supports devices where Google Play Services for AR is available.
  • Added Geospatial APIs for VPS Availability and pose conversion ( I144dc )

Version 1.0.0-alpha07

۲۲ اکتبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

رفع اشکالات

  • :xr:arcore:arcore-openxr added as an implementation dependency to :xr:arcore:arcore ( I47315 , b/446999229 )

Version 1.0.0-alpha06

۲۴ سپتامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

API Changes

  • Testing support for ARCore has migrated to the xr:arcore:arcore-testing module. ( I25469 )
  • Adding ArDevice and RenderViewpoint to allow applications to retrieve the device's pose and display configuration for rendering purposes. ( Ib7e3f )
  • Rename HandJointType enums with HAND_JOINT_TYPE_ prefix. ( I3f7cd )
  • HandJointType has been moved to xr:arcore:arcore from xr:runtime:runtime . ( Iadb9c , b/409058039 )
  • Hand.State now exposes a java.nio.FloatBuffer with the joint poses in a format that allows easy access to performance-oriented applications. ( I55e27 )

Version 1.0.0-alpha05

۳۰ ژوئیه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 , and androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits .

ویژگی‌های جدید

  • Add getPrimaryHandSide so the developer could get the hand side info ( I270bd )
  • Add geospatial check VPS availability API ( I58573 )
  • Add ARCore API for checkVpsAvailability ( Idbded )
  • stateFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( I083aa , b/427247794 )

API Changes

  • Config *Mode vals have been renamed to reflect their behavior. ( I6d247 , b/414648065 )
  • The main ARCore artifact (xr:arcore:arcore) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-rxjava3 library to access compatible APIs. ( Ia525e , b/422794329 )
  • The main ARCore artifact ( xr:scenecore:scenecore ) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-guava library to access compatible APIs. ( Iffcb4 , b/422773524 )
  • Anchor.persistAsync() added to AnchorGuava for usage by Java developers. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) added to EarthGuava for usage by Java developers. ( I66357 , b/425992992 )
  • Java developers will use the extension functions for GltfModel.createAsync in GltfModel.kt . Async functions in GltfModel will be deleted. ( I0af60 )
  • This library now uses JSpecify nullness annotations , which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage: -Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler) ( Ia8420 , b/326456246 )
  • subscribeAsFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( Id3e49 , b/427277298 )

Version 1.0.0-alpha04

۷ مه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .

API Changes

  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed. ( Idb6b5 )
  • TrackingState and HandJointType have been moved from ARCore to Runtime.
  • Hand.State.isActive (boolean) has been changed to Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load returns Anchor.AnchorLoadInvalidUuid if the UUID is invalid.

Version 1.0.0-alpha03

۲۶ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha03 is released with no notable changes since the last alpha. Version 1.0.0-alpha03 contains these commits .

Version 1.0.0-alpha02

۱۲ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

ویژگی‌های جدید

  • Added hand tracking support. Use Hand.left and Hand.right to access the tracking information.
  • APIs that generate an anchor ( Anchor.create , Anchor.load , Plane.createAnchor ) now all return AnchorCreateResult and properly implement AnchorCreateResourcesExhausted .

رفع اشکالات

  • Anchor.detach no longer causes a fatal crash due to a race condition with the Session update thread.
  • Anchor.create is more stable when running on an emulator

Version 1.0.0-alpha01

۱۲ دسامبر ۲۰۲۴

androidx.xr.arcore:arcore-* 1.0.0-alpha01 is released.

Features of initial release

Inspired by the existing ARCore library, the ARCore for Jetpack XR library provides capabilities for blending digital content with the real world. This library includes motion tracking, persistent anchors, hit testing, and plane identification with semantic labeling (for example, floor, walls, and tabletops). View the developer guide to learn more about working with ARCore for Jetpack XR.

  • Session : ARCore for Jetpack XR uses the Jetpack XR Runtime under-the-hood to power its functionality. You will use a Session to interact with most ARCore for Jetpack XR APIs, so please take a look at its documentation.

  • Plane : Use planes to understand the world around you. Each plane has a Label that describes it semantically. You can use subscribe to be notified about the latest detected planes or state to be notified about the changes to a specific plane.

  • Anchor : A link between a virtual object and a real world location. Anchors can be attached to a specific location in space (using create ) or a Trackable (using createAnchor ).

    • Anchors can be reused across sessions. You can use persist to store them, getPersistedAnchorUuids to enumerate them and load to retrieve them. Make sure that you unpersist them once they are no longer in use.

    • Anchors are interoperable between ARCore for Jetpack XR and Jetpack SceneCore. You can create an AnchorEntity using an anchor or, if you have an existing AnchorEntity, you can use getAnchor to retrieve its backing anchor.

    • Offer natural user interactions using hitTest . A hitTest uses a Ray to determine which contents it intersects and to create an Anchor from that location. Consider conducting a hitTest from an InputEvent .

مشکلات شناخته شده

  • There might be a delay between calling unpersist and its UUID being removed from the results returned by getPersistedAnchorUuids .

  • create will not validate that the system has enough resources to return new anchors. Creating an excessive amount of anchors might lead to a crash.

  • Persisting an Anchor that was previously persisted and unpersisted is not currently supported.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.

،

ARCore for Jetpack XR

Bring digital content into the real world with perception capabilities.
آخرین به‌روزرسانی انتشار پایدار Release Candidate انتشار بتا Alpha Release
۹ سپتامبر ۲۰۲۶ - 1.0.0-rc01 - -

Declaring dependencies

To add a dependency on ARCore for Jetpack XR, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

شیار

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc01"
}

کاتلین

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

For more information about dependencies, see Add build dependencies .

بازخورد

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

ایجاد یک مسئله جدید

See the Issue Tracker documentation for more information.

نسخه ۱.۰

Version 1.0.0-rc01

۹ سپتامبر ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits .

Version 1.0.0-beta02

۱۲ آگوست ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta02 is released. Version 1.0.0-beta02 contains these commits .

رفع اشکالات

  • Fix concurrency issue in OpenXR anchor persistence. ( I15c8b )
  • Implemented toString() in more classes for debugging. ( I587e8 )

Version 1.0.0-beta01

۱۵ ژوئیه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits .

API Changes

  • Updated resizable modifier to use a ResizePolicy instead of two modifiers ( I7fb0f , b/496257436 , b/519672992 )
  • Added movable overload with movePolicy param and deprecate transformingMovable and movable ( Ic88c1 , b/481781189 )
  • Removed TrackingState .TRACKING_DEGRADED from public API surface and map runtime degraded states to PAUSED instead. Update TrackingState to use enums instead of int values for string conversion and runtime conversion. ( I3eb5b , b/524326338 )
  • Converted Session.create to a suspend function. ( I5d27f )
  • Deprecated the ProjectedPermissionsResultContract ( I141d5 , b/515699436 )
  • Updated AnchorEntity to be called AnchorSpace ( Ifa95e , b/513619219 )

Version 1.0.0-alpha15

۱۷ ژوئن ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits .

API Changes

  • HitResult.createAnchor was removed. Developers can create an anchor representing the HitResult if the trackable of the result is an Anchorable by supplying the hit position to the createAnchor function of the Anchorable . ( Ia851e )
  • AnchorUnsupportedObject was removed. It is no longer thrown by a JXR ARCore runtime. ( Ia851e )
  • androidx.xr.arcore.Anchor and androidx.xr.arcore.ArDevice now implement androidx.xr.arcore.Trackable . ( I57b65 )
  • Depth.left , Depth.right , and Depth.mono are now non-nullable ( I1fc5e )
  • Face.getUserFace is now non-nullable ( I0eac1 )
  • RenderViewpoint.left , RenderViewpoint.right , RenderViewpoint.mono are now non-nullable ( Icf7fa )
  • Hand.left and Hand.right are non non-nullable ( Icef37 )
  • Added QrCode API ( Ia0bbe )

Version 1.0.0-alpha14

۱۹ مه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits .

API Changes

  • Deprecating GeospatialMode.VPS_AND_GPS in favor of GeospatialMode.SPATIAL and introducing a new lower-power tracking mode, GeospatialMode.INERTIAL , which uses only IMU and GPS. ( I1e6cd )
  • Custom anchor exception classes: AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException are now RuntimeException instances, not intended to be checked. ( I9356e )
  • Added ArCoreTestRule API, including TestArDevice , TestAugmentableObject , TestDepthMap , TestEye , TestFace , TestGeospatial , TestHand , TestPlane , TestRenderViewpoint , & TestTrackable ( I0ad3c )
  • Removes AnchorLoadInvalidUuid , AnchorCreateUnsupportedObject , AnchorCreateUnsupportedLocation , and AnchorCreateNotAuthorized . All of these errors are now exceptions in the runtime. Removes AnchorCreateIllegalState . This has been replaced with AnchorCreateTrackingUnavailable in most cases. Adds AnchorException and derived classes AnchorInvalidUuidException , AnchorNotAuthorizedException , AnchorUnsupportedLocationException , AnchorRuntimeFailureException , and AnchorUnsupportedObjectException . ( I4c4dd )

External Contribution

  • Added AugmentedImage API for custom marker tracking ( I0cf09 )

Version 1.0.0-alpha13

۶ مه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits .

API Changes

  • TrackingState and VpsAvailabilityResult have moved to the androidx.xr.arcore package , and the types in androidx.xr.runtime are now deprecated. ( Ic7930 , b/480462213 )
  • Renamed Plane.Type to PlaneType . ( I8c90c , b/482675376 )
  • Renamed Hand.HandSide to HandSide . ( Ica562 , b/482675376 )
  • Renamed Plane.Label to PlaneLabel . ( Ic6b67 , b/482675376 )
  • Renamed Geospatial.Surface to GeospatialSurface . ( I1a8be , b/482675376 )
  • Renamed Geospatial.State to GeospatialState . ( I203fa , b/482675376 )
  • Moved NativeData API to xr:runtime:runtime library. ( I87954 , b/494251500 )
  • Session.create and Session.configure are now non-exhaustive and require else clauses in when statements. ( I9885e , b/495805998 , b/495805998 )
  • androidx.xr.runtime.FieldOfView has been deprecated. Use androidx.xr.runtime.math.FieldOfView instead. ( Ia01a0 , b/480233045 )
  • Changed Orbiter to use either an OrbiterAnchorPoint + VolumeOffset or an OrbiterPoseProvider instead of position, offset, offsetType, alignment, and elevation. Also removed the shouldRenderInNonSpatial parameter. If the developer does not want the orbiter to render in non-spatial they should wrap the orbiter in an if statement and check the SpatialCapabilities . ( I9fbb3 , b/462428503 )
  • Added movable modifiers. These modifiers work well, right now, for SpatialPanels and SpatialExternalSurface . Very soon they will also be supported for SpatialGltfModels . However, the intention is to have these supported well for all SubspaceComposables . ( I9a3cd , b/479530787 , b/478935063 , b/478935063 )
  • Developers are expected to observe the ArDevice.state Flow to monitor State.trackingState and adjust their application's rendering or warnings accordingly based on the tracking fidelity. ( Ic00f0 , b/445466590 )
  • Renamed HandJointType enum values. ( Ifbc83 , b/482670596 )
  • Renamed FaceConfidenceRegion constants. ( Ia62d5 , b/482670596 )
  • Renamed FaceBlendShapeType constants. ( I33b8b , b/482670596 )
  • Added CreatePoseFromGeospatialPoseErrorInternal and CreateGeospatialPoseFromPoseErrorInternal . ( I4bcf1 , b/482666615 )
  • Renamed DeviceTrackingMode.LAST_KNOWN to SPATIAL_LAST_KNOWN (with a deprecated fallback), added INERTIAL_LAST_KNOWN for 3DoF tracking, and added TRACKING_DEGRADED to TrackingState . ( Ie661c , b/445466590 )
  • Deprecated GroupEntity . To have an Entity with only the base Entity functionality, call Entity.create which will return and Entity interface. ( I4c450 , b/473867483 )
  • Added XrLog API. Set XrLog.isEnabled to true to enable logging in JetpackXR, and use XrLog.Level to set the log level. ( I76a1f , b/463460895 , b/487378441 )

رفع اشکالات

  • Add the device tracking state support to the openxr devices. ( I91485 , b/445466590 )

Version 1.0.0-alpha12

۲۵ مارس ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits .

API Changes

  • Changed Config.augmentedObjectCategories from a List to a Set. ( I25a64 , b/487376359 )
  • The types androidx.xr.arcore.Eye and androidx.xr.arcore.Hand . ( I42438 , b/449032900 )
  • Added Session.create overload to allow passing an Android Context for resource-scoping. ( I7d3fe , b/415805990 , b/477386334 )
  • Changes FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT to FakeRuntimeAnchor.anchorResourceLimit . ( I90841 , b/431992235 )
  • Making TiltGesture API experimental as it may be changed or removed in the future. To use this api, opt in to @ExperimentalGesturesApi ( Ic9858 )
  • Added ability to set categories for AugmentedObject tracking in the Config ( I1f6e4 , b/480220930 )

رفع اشکالات

  • Fixed Chrome's build by updating META-INF/services/ file with actual location of PerceptionRuntimeFactory . ( I7a801 , b/481288291 )

Version 1.0.0-alpha11

۲۵ فوریه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits .

Version 1.0.0-alpha10

۲۸ ژانویه ۲۰۲۶

androidx.xr.arcore:arcore-*:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits .

ویژگی‌های جدید

  • Introduces TiltGesture API, providing a reactive Flow for stable detection of device tilt (UP/DOWN) state with transition progress. ( Ic269f , b/448152779 )
  • ARCore for Jetpack XR now uses the XR Runtime Logging mechanism. See androidx.xr.runtime.Log for more information. ( l52735 , b/448697662 )

API Changes

  • Geospatial.createPoseFromGeospatialPose now works on OpenXR-enabled devices. ( l362c6 )

Version 1.0.0-alpha09

۳ دسامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits .

Version 1.0.0-alpha08

۱۹ نوامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits .

ویژگی‌های جدید

  • ARCore for Jetpack XR now supports devices where Google Play Services for AR is available.
  • Added Geospatial APIs for VPS Availability and pose conversion ( I144dc )

Version 1.0.0-alpha07

۲۲ اکتبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits .

رفع اشکالات

  • :xr:arcore:arcore-openxr added as an implementation dependency to :xr:arcore:arcore ( I47315 , b/446999229 )

Version 1.0.0-alpha06

۲۴ سپتامبر ۲۰۲۵

androidx.xr.arcore:arcore-*:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits .

API Changes

  • Testing support for ARCore has migrated to the xr:arcore:arcore-testing module. ( I25469 )
  • Adding ArDevice and RenderViewpoint to allow applications to retrieve the device's pose and display configuration for rendering purposes. ( Ib7e3f )
  • Rename HandJointType enums with HAND_JOINT_TYPE_ prefix. ( I3f7cd )
  • HandJointType has been moved to xr:arcore:arcore from xr:runtime:runtime . ( Iadb9c , b/409058039 )
  • Hand.State now exposes a java.nio.FloatBuffer with the joint poses in a format that allows easy access to performance-oriented applications. ( I55e27 )

Version 1.0.0-alpha05

۳۰ ژوئیه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha05 , androidx.xr.arcore:arcore-guava:1.0.0-alpha05 , and androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 are released. Version 1.0.0-alpha05 contains these commits .

ویژگی‌های جدید

  • Add getPrimaryHandSide so the developer could get the hand side info ( I270bd )
  • Add geospatial check VPS availability API ( I58573 )
  • Add ARCore API for checkVpsAvailability ( Idbded )
  • stateFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( I083aa , b/427247794 )

API Changes

  • Config *Mode vals have been renamed to reflect their behavior. ( I6d247 , b/414648065 )
  • The main ARCore artifact (xr:arcore:arcore) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-rxjava3 library to access compatible APIs. ( Ia525e , b/422794329 )
  • The main ARCore artifact ( xr:scenecore:scenecore ) will only contain Kotlin-style async APIs. Java developers can depend on the xr:arcore:arcore-guava library to access compatible APIs. ( Iffcb4 , b/422773524 )
  • Anchor.persistAsync() added to AnchorGuava for usage by Java developers. ( I4af1c , b/425984631 )
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) added to EarthGuava for usage by Java developers. ( I66357 , b/425992992 )
  • Java developers will use the extension functions for GltfModel.createAsync in GltfModel.kt . Async functions in GltfModel will be deleted. ( I0af60 )
  • This library now uses JSpecify nullness annotations , which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage: -Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler) ( Ia8420 , b/326456246 )
  • subscribeAsFlowable extension functions added to :xr:arcore:arcore-rxjava3 for usage by Java developers. ( Id3e49 , b/427277298 )

Version 1.0.0-alpha04

۷ مه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits .

API Changes

  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed. ( Idb6b5 )
  • TrackingState and HandJointType have been moved from ARCore to Runtime.
  • Hand.State.isActive (boolean) has been changed to Hand.State.trackingState (androidx.xr.runtime.TrackingState) .
  • Anchor.load returns Anchor.AnchorLoadInvalidUuid if the UUID is invalid.

Version 1.0.0-alpha03

۲۶ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha03 is released with no notable changes since the last alpha. Version 1.0.0-alpha03 contains these commits .

Version 1.0.0-alpha02

۱۲ فوریه ۲۰۲۵

androidx.xr.arcore:arcore:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits .

ویژگی‌های جدید

  • Added hand tracking support. Use Hand.left and Hand.right to access the tracking information.
  • APIs that generate an anchor ( Anchor.create , Anchor.load , Plane.createAnchor ) now all return AnchorCreateResult and properly implement AnchorCreateResourcesExhausted .

رفع اشکالات

  • Anchor.detach no longer causes a fatal crash due to a race condition with the Session update thread.
  • Anchor.create is more stable when running on an emulator

Version 1.0.0-alpha01

۱۲ دسامبر ۲۰۲۴

androidx.xr.arcore:arcore-* 1.0.0-alpha01 is released.

Features of initial release

Inspired by the existing ARCore library, the ARCore for Jetpack XR library provides capabilities for blending digital content with the real world. This library includes motion tracking, persistent anchors, hit testing, and plane identification with semantic labeling (for example, floor, walls, and tabletops). View the developer guide to learn more about working with ARCore for Jetpack XR.

  • Session : ARCore for Jetpack XR uses the Jetpack XR Runtime under-the-hood to power its functionality. You will use a Session to interact with most ARCore for Jetpack XR APIs, so please take a look at its documentation.

  • Plane : Use planes to understand the world around you. Each plane has a Label that describes it semantically. You can use subscribe to be notified about the latest detected planes or state to be notified about the changes to a specific plane.

  • Anchor : A link between a virtual object and a real world location. Anchors can be attached to a specific location in space (using create ) or a Trackable (using createAnchor ).

    • Anchors can be reused across sessions. You can use persist to store them, getPersistedAnchorUuids to enumerate them and load to retrieve them. Make sure that you unpersist them once they are no longer in use.

    • Anchors are interoperable between ARCore for Jetpack XR and Jetpack SceneCore. You can create an AnchorEntity using an anchor or, if you have an existing AnchorEntity, you can use getAnchor to retrieve its backing anchor.

    • Offer natural user interactions using hitTest . A hitTest uses a Ray to determine which contents it intersects and to create an Anchor from that location. Consider conducting a hitTest from an InputEvent .

مشکلات شناخته شده

  • There might be a delay between calling unpersist and its UUID being removed from the results returned by getPersistedAnchorUuids .

  • create will not validate that the system has enough resources to return new anchors. Creating an excessive amount of anchors might lead to a crash.

  • Persisting an Anchor that was previously persisted and unpersisted is not currently supported.

  • Usage in the emulator is supported, but the behavior might not be as stable as when running on an actual device. Particularly, calls to create might fail with a native code error and immediately terminate the activity.

  • In certain circumstances, a RuntimeException might be erroneously thrown when calling persist with the message “Anchor was not persisted”. In those circumstances, the function would still succeed and the anchor will be persisted. We recommend wrapping the call to persist with a try block as a workaround.