‫ARCore for Jetpack XR

يمكنك إدخال محتوى رقمي إلى العالم الحقيقي باستخدام إمكانات الإدراك.
آخر خبر الإصدار المستقر إصدار محتمل الإصدار التجريبي الإصدار الأولي
‫25 مارس 2026 - - - ‫1.0.0-alpha12

تحديد الاعتماديات

لإضافة اعتمادية على ARCore for Jetpack XR، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

Groovy

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

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

Kotlin

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

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

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على الـ مشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.0

‫الإصدار 1.0.0-alpha12

‫25 مارس 2026

تم إصدار androidx.xr.arcore:arcore-*:1.0.0-alpha12. يتضمّن الإصدار ‎1.0.0-alpha12 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم تغيير Config.augmentedObjectCategories من قائمة إلى مجموعة. (I25a64, b/487376359)
  • النوعان androidx.xr.arcore.Eye وandroidx.xr.arcore.Hand (I42438, b/449032900)
  • تمت إضافة عملية التحميل الزائد Session.create للسماح بتمرير سياق Android لتحديد نطاق الموارد. (I7d3fe, b/415805990, b/477386334)
  • تم تغيير FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT إلى FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • تمت إضافة واجهة برمجة التطبيقات TiltGesture التجريبية لأنّه قد يتم تغييرها أو إزالتها في المستقبل. لاستخدام واجهة برمجة التطبيقات هذه، يجب الموافقة على استخدام @ExperimentalGesturesApi (Ic9858)
  • تمت إضافة إمكانية ضبط الفئات لتتبُّع AugmentedObject في الإعدادات (I1f6e4، b/480220930)

إصلاح الأخطاء

  • تم إصلاح إصدار 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 هذه التعديلات.

الميزات الجديدة

  • تم تقديم واجهة برمجة التطبيقات TiltGesture التي توفّر Flow تفاعليًا لرصد حالة إمالة الجهاز (للأعلى/للأسفل) بشكل ثابت مع عرض تقدّم الانتقال. (Ic269f, b/448152779)
  • تستخدم مكتبة ARCore for Jetpack XR الآن آلية تسجيل وقت تشغيل XR. يُرجى الاطّلاع على androidx.xr.runtime.Log لمزيد من المعلومات. (l52735, b/448697662)

التغييرات في واجهة برمجة التطبيقات

  • تعمل الدالة 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 for Jetpack XR الآن مع الأجهزة التي تتوفّر عليها "خدمات Google Play للواقع المعزّز".
  • تمت إضافة واجهات برمجة التطبيقات الجغرافية المكانية لتوفُّر نظام تحديد المواقع المرئية وتحويل الوضع (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 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تم نقل دعم اختبار ARCore إلى الوحدة xr:arcore:arcore-testing. (I25469)
  • تمت إضافة ArDevice وRenderViewpoint للسماح للتطبيقات باسترداد وضع الجهاز وإعدادات العرض لأغراض العرض. (Ib7e3f)
  • تمت إعادة تسمية تعدادات HandJointType باستخدام البادئة 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)
  • تمت إضافة واجهة برمجة التطبيقات الجغرافية المكانية للتحقّق من توفُّر نظام تحديد المواقع المرئية (I58573)
  • تمت إضافة واجهة برمجة تطبيقات ARCore لـ checkVpsAvailability ‏ (Idbded)
  • تمت إضافة دوال الإضافة stateFlowable إلى :xr:arcore:arcore-rxjava3 ليستخدمها مطوّرو Java. (I083aa, b/427247794)

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية قيم *Mode في الإعدادات لتعكس سلوكها. (I6d247, b/414648065)
  • لن يحتوي العنصر الرئيسي في ARCore ‏ (xr:arcore:arcore) إلا على واجهات برمجة التطبيقات غير المتزامنة بنمط Kotlin. يمكن لمطوّري Java الاعتماد على مكتبة xr:arcore:arcore-rxjava3 للوصول إلى واجهات برمجة التطبيقات المتوافقة. (Ia525e, b/422794329)
  • لن يحتوي العنصر الرئيسي في ARCore ‏ (xr:scenecore:scenecore) إلا على واجهات برمجة التطبيقات غير المتزامنة بنمط Kotlin. يمكن لمطوّري Java الاعتماد على مكتبة xr:arcore:arcore-guava للوصول إلى واجهات برمجة التطبيقات المتوافقة. (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 التوضيحية بشأن القيم الخالية، وهي تعليقات توضيحية بشأن استخدام النوع. على مطوّري 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 هذه التعديلات.

التغييرات في واجهة برمجة التطبيقات

  • تتطلب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام KGP 2.0.0 أو إصدار أحدث. (Idb6b5)
  • تم نقل TrackingState وHandJointType من ARCore إلى وقت التشغيل.
  • تم تغيير Hand.State.isActive (boolean) إلى Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • تعرض الدالة 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 للوصول إلى معلومات التتبُّع.
  • تعرض الآن جميع واجهات برمجة التطبيقات التي تنشئ ارتساءً (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 الحالية، توفّر مكتبة ARCore for Jetpack XR إمكانات لدمج المحتوى الرقمي مع العالم الحقيقي. تتضمّن هذه المكتبة تتبُّع الحركة والارتساءات الثابتة واختبارات النتائج وتحديد المستوى باستخدام التصنيف الدلالي (على سبيل المثال، الأرضيات والجدران وأسطح الطاولات). يُرجى الاطّلاع على دليل المطوّرين لمزيد من المعلومات حول استخدام ARCore for Jetpack XR.

  • Session: تستخدم مكتبة ARCore for Jetpack XR وقت تشغيل Jetpack XR في الخلفية لتشغيل وظائفها. ستستخدم `Session` للتفاعل مع معظم واجهات برمجة تطبيقات 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 وإزالة المعرّف الفريد العالمي من النتائج التي تعرضها getPersistedAnchorUuids.

  • create لن تتحقّق من توفُّر موارد كافية في النظام لعرض ارتساءات جديدة. قد يؤدي إنشاء عدد كبير جدًا من الارتساءات إلى حدوث تعطّل.

  • لا يمكن حاليًا حفظ ارتساء تم حفظه سابقًا ثم إزالته من الذاكرة.

  • يمكن استخدام المحاكي، ولكن قد لا يكون السلوك مستقرًا كما هو الحال عند التشغيل على جهاز فعلي. على وجه الخصوص، قد تتعذّر عمليات استدعاء create بسبب حدوث خطأ في الرمز البرمجي الأصلي ويتم إنهاء النشاط على الفور.

  • في ظروف معيّنة، قد يتم طرح RuntimeException بشكل غير صحيح عند استدعاء persist مع الرسالة "لم يتم حفظ الارتساء". وفي هذه الظروف، ستظل الدالة ناجحة وسيتم حفظ الارتساء. ننصحك بتضمين استدعاء persist في كتلة try كحل بديل.