ARCore for Jetpack XR
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 19 نوفمبر 2025 | - | - | - | 1.0.0-alpha08 |
تحديد الاعتماديات
لإضافة اعتمادية على ARCore في Jetpack XR، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
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") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.0
الإصدار 1.0.0-alpha08
19 نوفمبر 2025
تم طرح androidx.xr.arcore:arcore-*:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
الميزات الجديدة
- يتوافق الإصدار
ARCoreمن Jetpack XR الآن مع الأجهزة التي تتوفّر عليها "خدمات Google Play للواقع المعزّز". - تمّت إضافة واجهات Geospatial API للتحقّق من توفّر نظام تحديد المواقع المرئية وتحويل الوضع (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: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) - إضافة واجهة برمجة تطبيقات للتحقّق من توفّر خدمة تحديد الموقع المرئي (VPS) الجغرافية المكانية (I58573)
- إضافة ARCore API لحزمة
checkVpsAvailability(Idbded) - تمت إضافة دوال الإضافة
stateFlowableإلى:xr:arcore:arcore-rxjava3ليستخدمها مطوّرو Java. (I083aa، b/427247794)
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية قيم Config
*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 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (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للوصول إلى معلومات التتبُّع. - إنّ واجهات برمجة التطبيقات التي تنشئ رابطًا ثابتًا (
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 في Jetpack XR.
Session: يستخدم ARCore for 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يستخدم اختبار إصابةRayلتحديد المحتوى الذي يتقاطع معه وإنشاءAnchorمن ذلك الموقع الجغرافي. ننصحك بإجراء اختبار hitTest منInputEvent.
المشاكل المعروفة
قد يحدث تأخير بين وقت طلب إزالة
unpersistووقت إزالة معرّفه الفريد العالمي (UUID) من النتائج التي تعرضهاgetPersistedAnchorUuids.لن يتحقّق
createمن توفّر موارد كافية في النظام لعرض نقاط ارتكاز جديدة. قد يؤدي إنشاء عدد كبير جدًا من نقاط الارتكاز إلى حدوث عُطل.لا تتوفّر حاليًا إمكانية الاحتفاظ بـ Anchor تم الاحتفاظ به سابقًا ثم تم إلغاء الاحتفاظ به.
يمكن استخدامها في المحاكي، ولكن قد لا يكون السلوك ثابتًا كما هو الحال عند التشغيل على جهاز فعلي. على وجه الخصوص، قد يتعذّر إجراء مكالمات إلى
createويظهر خطأ في الرمز الأصلي ويتم إنهاء النشاط على الفور.في ظروف معيّنة، قد يتم عرض الخطأ
RuntimeExceptionبشكل خاطئ عند استدعاءpersistمع الرسالة "لم يتم الاحتفاظ بنقطة الارتكاز". وفي هذه الظروف، ستنجح الدالة وسيتم الاحتفاظ بنقطة الارتكاز. ننصحك بتضمين استدعاءpersistفي كتلةtryكحلّ بديل.