ARCore لـ Jetpack XR
آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
---|---|---|---|---|
24 سبتمبر 2025 | - | - | - | 1.0.0-alpha06 |
تحديد الاعتماديات
لإضافة اعتمادية على ARCore في Jetpack XR، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle
لتطبيقك أو وحدتك:
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha06" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha06" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha06" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha06") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha06") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha06") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.0
الإصدار 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 لـ Jetpack XR" تصميمها من مكتبة ARCore الحالية، وتوفّر إمكانات لدمج المحتوى الرقمي مع العالم الحقيقي. تتضمّن هذه المكتبة تتبُّع الحركة، وعناصر ثابتة، واختبارات تحديد المواقع، وتحديد الأسطح باستخدام التصنيف الدلالي (مثل الأرضيات والجدران وأسطح الطاولات). يمكنك الاطّلاع على دليل المطوِّرين لمزيد من المعلومات حول استخدام 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
يستخدم hitTestRay
لتحديد المحتوى الذي يتقاطع معه ولإنشاءAnchor
من ذلك الموقع الجغرافي. ننصحك بإجراء اختبار hitTest منInputEvent
.
المشاكل المعروفة
قد يحدث تأخير بين وقت طلب إزالة
unpersist
ووقت إزالة معرّف UUID الخاص به من النتائج التي تعرضهاgetPersistedAnchorUuids
.لن تتحقّق الدالة
create
من توفّر موارد كافية في النظام لعرض نقاط ارتكاز جديدة. قد يؤدي إنشاء عدد كبير جدًا من نقاط الارتكاز إلى حدوث عُطل.لا تتوفّر حاليًا إمكانية الاحتفاظ بـ Anchor تم الاحتفاظ به سابقًا ثم تم إلغاء الاحتفاظ به.
يمكن استخدامها في المحاكي، ولكن قد لا يكون السلوك ثابتًا كما هو الحال عند التشغيل على جهاز فعلي. على وجه الخصوص، قد يتعذّر إجراء مكالمات إلى
create
ويظهر خطأ في الرمز الأصلي ويتم إنهاء النشاط على الفور.في ظروف معيّنة، قد يتم عرض الخطأ
RuntimeException
بشكل خاطئ عند استدعاءpersist
مع الرسالة "لم يتم الاحتفاظ بنقطة الارتكاز". وفي هذه الظروف، سيظلّ الإجراء ناجحًا وسيتم الاحتفاظ بنقطة الارتكاز. ننصحك بتضمين طلبpersist
في كتلةtry
كحلّ بديل.