ARCore لميزة Jetpack XR

دمج المحتوى الرقمي في العالم الحقيقي باستخدام إمكانات الإدراك
آخر تعديل الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي
12 شباط (فبراير) 2025 - - - 1.0.0-alpha02

الإعلان عن التبعيات

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

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

Groovy

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

Kotlin

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

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.

الملاحظات

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

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

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

الإصدار 1.0

الإصدار 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 لإطار عمل Jetpack XR إمكانات لدمج المحتوى الرقمي مع العالم الواقعي. تتضمّن هذه المكتبة ميزة تتبُّع الحركة، وعناصر التثبيت الثابتة، واختبار العناصر، وتحديد المستويات باستخدام التصنيف الدلالي (مثل الأرضية والجدران وأسطح الطاولات). اطّلِع على دليل المطوّر لمزيد من المعلومات حول استخدام ARCore مع Jetpack XR.

  • Session: يستخدم ARCore لـ Jetpack XR حزمة Jetpack XR Runtime من أجل تشغيل وظائفه. ستستخدم Session للتفاعل مع معظم واجهات برمجة تطبيقات ARCore for Jetpack XR، لذا يُرجى الاطّلاع على مستنداتها.

  • Plane: استخدِم الخطوط الجوية للتعرّف على العالم من حولك. تحتوي كل طائرة على Label يصف الطائرة من الناحية الدلالية. يمكنك استخدام subscribe لتلقّي إشعارات بشأن أحدث الطائرات التي تم رصدها أو state لتلقّي إشعارات بشأن التغييرات التي تطرأ على طائرة معيّنة.

  • Anchor: رابط بين عنصر افتراضي وموقع جغرافي في العالم الحقيقي يمكن إرفاق نقاط الربط بموقع محدّد في المساحة (باستخدام create) أو Trackable (باستخدام createAnchor).

    • يمكن إعادة استخدام العناصر الثابتة في جميع الجلسات. يمكنك استخدام persist لتخزينها، وgetPersistedAnchorUuids لتعدادها، وload لاستردادها. احرص على unpersist هذه الحسابات بعد أن تصبح غير مستخدَمة.

    • يمكن استخدام نقاط الربط معًا بين ARCore لـ Jetpack XR وJetpack SceneCore. يمكنك إنشاء AnchorEntity باستخدام عنصر تثبيت، أو إذا كان لديك عنصر AnchorEntity حالي، يمكنك استخدام getAnchor لاسترداد عنصر التثبيت الأساسي.

    • يمكنك توفير تفاعلات طبيعية للمستخدمين باستخدام hitTest. يستخدم الإجراء hitTest عنصر Ray لتحديد المحتوى الذي يتقاطع معه وإنشاء عنصر Anchor من هذا الموقع. ننصحك بإجراء اختبار hitTest من InputEvent.

المشاكل المعروفة

  • قد يحدث تأخير بين وقت استدعاء unpersist ووقت إزالة معرّف UUID الخاص به من النتائج التي يعرضها getPersistedAnchorUuids.

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

  • لا تتوفّر حاليًا إمكانية الاحتفاظ بعلامة مرجعية سبق أن تم الاحتفاظ بها وإلغاء الاحتفاظ بها.

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

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