‫Jetpack SceneCore

إنشاء مخطط المشهد في Android XR ومعالجته باستخدام محتوى ثلاثي الأبعاد
آخر تحديث الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫7 أكتوبر 2026 - 1.0.0-rc02 - -

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

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

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

Groovy

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-rc02"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-rc02"
}

Kotlin

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-rc02")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-rc02")
}

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

الملاحظات

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

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

لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Issue Tracker.

الإصدار 1.0

الإصدار ‎1.0.0-rc02

‫7 أكتوبر 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-rc02. يتضمّن الإصدار 1.0.0-rc02 هذه التعديلات.

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

  • تم إصلاح مشكلة محتملة لتسرّب الذاكرة من خلال إزالة perceptionRuntimeCache في SessionExt وإعادة تصميمها لاسترداد PerceptionRuntime مباشرةً من مثيل Session. (Ie35b1)
  • تم إصلاح مشكلة محتملة لتسرُّب السياق من خلال استخدام applicationContext لمقابض OpenXR الأصلية لضمان عدم احتفاظ وقت التشغيل الأصلي بمراجع لسياق Activity. (Ie35b1)
  • تم إصلاح حالات التنافس في XrInstanceManager من خلال توفير مزامنة مناسبة وقفل تهيئة. (Ie35b1)
  • تم إصلاح ReferenceCleaner لتوفير إمكانية إلغاء تسجيل إجراءات التنظيف، وتم التأكّد من تنفيذ إجراءات التنظيف Entity بشكل صريح أثناء dispose()، ما يمنع التنفيذ المكرّر عند جمع البيانات المُهمَلة. (Ie35b1)
  • تم إصلاح مشكلة تسريب الذاكرة في Scene من خلال إزالة sceneCache في SessionExt وإعادة تصميم Scene لجلب المثيل مباشرةً من sessionConnectors. (Ie35b1)

الإصدار ‎1.0.0-rc01

‫9 سبتمبر 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.

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

  • تمت إضافة مكتبة xr:scenecore:scenecore-openxr. (Ic49f2)
  • تمت إزالة العديد من واجهات برمجة التطبيقات المتوقّفة نهائيًا قبل الإصدار الثابت 1.0.0.

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

  • تم إصلاح خطأ تسريب الذاكرة الذي كان يؤدي إلى احتفاظ النظام بمرجع النشاط عند إيقافه. (I6dcd7)

التغييرات في السلوك

  • تمت إزالة ناتج logcat من SceneCore. (I10c3c)

الإصدار ‎1.0.0-beta02

‫12 أغسطس 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.

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

  • ستعرض toMoveEvent() القيمة null إذا تم جمع البيانات غير الضرورية من العنصر الرئيسي. (Ia7a1b)

الإصدار 1.0.0-beta01

‫15 يوليو 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

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

  • تم تصنيف واجهتَي برمجة التطبيقات GltfAnimation وSpatialGltfModelAnimation على أنّهما تجريبيتان. تم تحويل بعض السمات إلى دوال جلب. (I8d689، b/524771027)
  • تمت إزالة طريقة المصنع العامة MovableComponent.createTrackingMovable. (I00912، b/477169015)
  • تم تحويل Session.create إلى دالة تعليق. (I5d27f)
  • يوسّع كل من ActivitySpace وAnchorSpace الآن فئة SpaceEntity مشترَكة تحتوي على سلوك مشترك للعناصر التي يتحكّم النظام في مواضعها (I506ec، b/513619219).
  • تمت إعادة تسمية AnchorEntity إلى AnchorSpace (Ifa95e، b/513619219)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة SoundEffectPoolComponentTester. (I87df7، b/498104417)
  • تمت إضافة المَعلمة الاختيارية cornerRadius إلى الدالة الإنشائية SurfaceEntity.Shape.Quad وإتاحة السمة cornerRadius للجميع. يمكن للمطوّرين الآن تحديد نصف قطر الزاوية عند إنشاء شكل Quad لعرض لوحات SurfaceEntity ذات الزوايا المستديرة، والاستعلام عن نصف قطر أشكال Quad الحالية. (Ia7809، b/474681085)
  • توفّر هذه السمة عمليات تحميل زائدة لواجهة برمجة التطبيقات العامة للاختبار SpatialAudioTrackBuilderTester وSpatialAudioTrackTester وSceneCoreTestRule.getTester. (I378c6، b/496333938)
  • أضِف عمليات إلغاء متخصّصة للسمة toString() لعدد من أنواع ARCore. تهدف هذه الأنواع إلى تقديم معلومات إضافية للمطوّرين لأغراض تصحيح الأخطاء، ولا يُفترض استخدامها في التطبيقات المنشورة أو التي سيتم شحنها.

الإصدار ‎1.0.0-alpha16

‫17 يونيو 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha16. يتضمّن الإصدار ‎1.0.0-alpha16 هذه التعديلات.

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

  • تمت إضافة عمليات تحميل زائدة للقيم addVertexData وsetIndexData وaddSubset إلى CustomMesh.BuilderFromMeshData وCustomMesh.BuilderFromMeshBuffer. تسمح عمليات التحميل الزائد هذه للمطوّرين بتمرير البيانات الأولية والمَعلمات مباشرةً (مثل ByteBuffer وoffset وsize وtopology وindexOffset وindexCount) بدون الحاجة إلى تضمينها في عناصر وسيطة مثل ByteBufferRegion أو MeshSubset. (I84d5c)
  • تمت إعادة تسمية Scene.requestFullSpaceMode() وScene.requestHomeSpaceMode() إلى requestFullSpace() وrequestHomeSpace() على التوالي. تم أيضًا تعديل الطرق والمستندات الأخرى التي تشير إلى "وضع المساحة المشتركة" و "وضع المساحة الكاملة" بشكل مماثل. (I45751)
  • توفير واجهة برمجة تطبيقات عامة للاختبار PanelEntityTester وMainPanelEntityTester (I961e4)
  • جارٍ إضافة الموقع pointSourceParams إلى الحساب SoundEffectPoolComponent (I4a750)
  • توفير واجهة برمجة تطبيقات اختبار عامة MovableComponentTester (I0c972)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة PointerCaptureComponentTester (Ic0d4f)
  • توفير واجهة برمجة تطبيقات اختبارية عامة ActivityPanelEntityTester (I837c4)
  • توفير واجهة برمجة تطبيقات اختبارية عامة ResizableComponentTester (I0a3a4)
  • توفير واجهة برمجة تطبيقات اختبار عامة BoundsComponentTester. (Iefd53)
  • توفير واجهة برمجة تطبيقات اختبارية عامة SpatialMediaPlayerTester (Ia3e09)
  • توفّر واجهة برمجة تطبيقات اختبار عام SpatialEnvironmentTester (Icf60f)
  • توفّر واجهة برمجة التطبيقات العامة للاختبار GltfModelTester وSceneCoreTestRule.getGltfModelTester. (I33fcb)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة InteractableComponentTester. (Ia7096)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة SurfaceEntityTester. (Ic0740)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة GltfModelEntityTester وTestGltfModelNode وTestGltfAnimation. (I72c4d)
  • توفّر واجهة برمجة التطبيقات العامة للاختبار SceneTester وSceneCoreTestRule.sceneTester. (Ib4ec5)
  • توفّر واجهة برمجة التطبيقات العامة للاختبار PerceptionSpaceTester وSceneCoreTestRule.perceptionSpaceTester. (Icf739)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة MeshEntityTester. (I63801)
  • توفّر هذه السمة عمليات تحميل زائدة لواجهة برمجة التطبيقات ImageBasedLightingAssetTester وSceneCoreTestRule.getTester المخصّصة للاختبار العلني. (I57ec4)
  • توفير واجهة برمجة تطبيقات اختبارية عامة TextureTester (Ia865b)
  • توفير واجهة برمجة تطبيقات اختبار عامة PositionalAudioComponentTester (Icd96e)
  • توفّر واجهة برمجة تطبيقات اختبارية عامة SpatialSoundPoolTester (Ia3531)
  • توفير واجهة برمجة تطبيقات اختبارية عامة SoundEffectPoolTester (If349a)
  • توفّر واجهة برمجة التطبيقات العامة للاختبار ActivitySpaceTester وSceneCoreTestRule.activitySpaceTester. (I2d5c2)
  • توفير واجهة برمجة تطبيقات عامة للاختبار SpatialWindowTester (I41837)
  • توفير واجهة برمجة تطبيقات اختبارية عامة AnchorEntityTester (I68404)
  • توفّر واجهة برمجة التطبيقات العامة للاختبار SceneCoreTestRule. (Ic72d3)
  • تمت إضافة الفئة PixelDensity وإتاحتها من خلال Scene#virtualPixelDensity لتوفير نسبة وحدات البكسل لكل متر المستندة إلى الأجهزة من أجل ربط الأبعاد المادية بدقة في ActivitySpace. (I0e3ac)
  • تمت إضافة واجهات برمجة تطبيقات عامة لإنشاء "الشبكات المخصّصة" وعرضها. (I7ad2f)
  • تم تعديل واجهة برمجة التطبيقات VertexLayout لاستخدام قائمة VertexBufferLayout، حيث يصف كل VertexBufferLayout السمات ضمن مخزن مؤقت واحد للرؤوس. ويتيح ذلك ترتيبات أكثر مرونة لبيانات الرؤوس، بما في ذلك السمات المتداخلة مع خطوات وإزاحات مخصّصة. (Ic426b)
  • توفّر هذه السمة MovableComponent.createTrackingMovable لتحويل عنصر قابل للتتبّع في ARCore إلى وضعية نسبةً إلى "مساحة النشاط". (I12249)
  • تم تعديل القيمة التلقائية للسمة "الوالد" في Entity.create إلى "فارغ". (Ic3145)
  • تم تعديل Entity ليصبح صنفًا بدلاً من واجهة، وهو الآن الصنف الأساسي لجميع أنواع الكيانات. في إطار هذا التغيير، تمت إزالة BaseEntity. (I7fbc9)
  • تستخدم الفئات GltfModel وExrImage وImageBasedLightingAsset الآن AutoCloseable للسماح بإدارة الموارد الاصطلاحية باستخدام كتلة use في Kotlin. (I1ac79)
  • تم تقديم الفئة ImageBasedLightingAsset لاستبدال ExrImage في تحديد إضاءة البيئة المكانية. تم إيقاف ExrImage نهائيًا وإزالته من واجهة برمجة التطبيقات العامة. تم تعديل SpatialEnvironmentPreference لاستخدام ImageBasedLightingAsset. (I6c92a)
  • تمت إعادة تسمية المَعلمة skybox في SpatialEnvironment إلى imageBasedLightingAsset لتعكس الغرض منها بشكل أفضل، وتم توضيح أنّه يجب تضمين نصوص skybox المرئية في مَعلمة البنية الهندسية. (I24d4a)
  • تستخدم الكيانات المكانية الآن كثافة ثابتة للجهاز في عمليات احتساب البكسل إلى المتر على المستويَين 1 و2 من Spatial API، ما يضمن حجمًا ثابتًا بغض النظر عن التغييرات في كثافة العرض على النظام. (I37051)

الإصدار ‎1.0.0-alpha15

‫19 مايو 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha15. يتضمّن الإصدار ‎1.0.0-alpha15 هذه التعديلات.

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

  • تمت الآن إزالة Entity.dispose() باعتبارها واجهة برمجة تطبيقات متاحة للجميع. بدلاً من استدعاء dispose() في مثيلات Entity، يمكن للتطبيقات جعل المثيلات قابلة للتنظيف من خلال ضبط parent على null ومحو أي مراجع قوية لتلك المثيلات. (I396c9)
  • تم حذف طرق الدفع set/clearOnLoadCompleteListener الخاصة بحساب "SoundEffectPool". يمكنك استخدام add/removeLoadCompleteListener كبديل. (Iae78d)
  • تم استبدال set/clearSpatialVisibilityChangedListener للمشهد بـ add/removeSpatialVisibilityChangedListener. (I67dff)
  • تمت إعادة تسمية جميع طرق SceneCore add/removeOnFooListener إلى add/removeFooListener، وتمت إزالة On من الاسم. (Ibe50b)
  • تم استبدال طريقتَي AnchorEntity.setOnOriginChangedListener وAnchorEntity.setOnStateChangedListener بطرق add/removeFooListener، وذلك لإتاحة استخدام ميزة "الاستماع إلى الموسيقى مع الآخرين" من قِبل عدة مستخدمين في الوقت نفسه. (I13749)
  • تمت إعادة تسمية "AnchorEntity.State.TIMEDOUT" إلى "State.TIMED_OUT". (Id2b8d)
  • تمت إعادة تصميم Component API لتحسين مستوى الأمان وقابلية التوسيع. أصبح Component الآن فئة مجرّدة. أصبحت الطريقتان onAttach() وonDetach() الآن protected لمنع إجراء مكالمات مباشرة. يُرجى استخدام Entity.addComponent() وEntity.removeComponent() لإدارة مراحل نشاط المكوّنات. (Id04e8)
  • تم نقل الثوابت PlaneSemanticType PlaneOrientation في SceneCore من Ints إلى أنواع مخصّصة. ستتم إزالة الثوابت ANY، ويجب أن يدرج العملاء جميع الثوابت المطلوبة بشكل صريح بدلاً من ذلك، أو يستخدموا ثوابت المجموعة الجديدة .ALL غير القابلة للتغيير. تقبل الآن طريقة المصنع AnchorEntity مجموعة من هذه الأنواع بدلاً من قيمة واحدة. (Ib1033)
  • تمت إضافة إمكانية استخدام الرسوم المتحركة الهيكلية (التغليف) إلى واجهة برمجة التطبيقات التجريبية Custom Mesh API. يمكن للمطوّرين الآن تحريك الشبكات المخصّصة من خلال تحديد boneCount عند إنشاء MeshEntity وتعديل الحركة في الوقت الفعلي باستخدام MeshEntity.setBoneTransforms(). (Id8ba2، b/496692490)
  • تم طرح واجهة برمجة التطبيقات التجريبية CustomMesh. يمكن للمطوّرين الآن إنشاء أشكال هندسية ثلاثية الأبعاد وعرضها آليًا في مشاهد باستخدام CustomMesh وMeshBuffer وMeshEntity. (I94617)
  • تمت إزالة جهة الاتصال "androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELD". يمكنك استخدام SourceType.SOUND_FIELD كبديل. (Ia68b9)
  • إضافة مكوّنات الصوت المكاني: PositionalAudioComponent وSoundEffectPoolComponent وSoundFieldAudioComponent (Ieda89)
  • تم استبدال AnchorEntity.getAnchor بـ AnchorEntity.anchor، وسيتم الآن عرض Anchor عند إنشاء AnchorEntity من Anchor في ARCore (I5c7c8)
  • تم تغيير القيمة التلقائية للمَعلمة parent في طرق الإنشاء ActivityPanelEntity وGltfModelEntity وGroupEntity وPanelEntity وSurfaceEntity من ActivitySpace إلى null. لربط عنصر ببيان المشهد وعرضه بشكل مرئي، على المطوّرين الآن ضبط العنصر الرئيسي بشكل صريح أثناء إنشاء العنصر أو من خلال Entity.parent = ... (Ie7cc1).

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

  • تعمل SceneCore الآن على استرداد مثيلات Entity تلقائيًا عندما تصبح قابلة للوصول بشكل وهمي، ما يغني المطوّرين عن استدعاء dispose() صراحةً لتحرير الموارد. لضمان استرداد مثيل [Entity] بشكل صحيح، على المطوّرين اتّباع ما يلي:
    • افصلها عن الرسم البياني للمشهد من خلال ضبط parent على null.
    • التخلّي عن جميع الإشارات القوية إلى المثيل في الرمز البرمجي
    • ملاحظة حول أنواع الكيانات الخاصة: بالنسبة إلى الكيانات التي لا يمكن أن تكون كيانات أصلية (مثل AnchorEntity)، على المطوّرين الحفاظ على مرجع قوي أثناء استخدام المثيل. إذا تم تحرير جميع المراجع، ستصبح هذه الحالات قابلة للوصول إلى الكائنات الوهمية وسيتم استردادها تلقائيًا. (I83fe4)
  • تم تضييق نطاق قواعد الاحتفاظ في Proguard لجميع مكتبات SceneCore. (I98447)

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

  • سيؤدي ربط PositionalAudioComponent بـ Entity يتضمّن مثيلاً غير نشط من ExoPlayer إلى حدوث عُطل. يُرجى عدم استدعاء setPointSourceParams أو ربط/فصل مكوّنات الصوت المكاني أثناء إيقاف ExoPlayer. سيتم حلّ هذه المشكلة في الإصدار التالي.

الإصدار ‎1.0.0-alpha14

‫6 مايو 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha14. يتضمّن الإصدار ‎1.0.0-alpha14 هذه التعديلات.

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

  • تم نقل TrackingState وVpsAvailabilityResult إلى androidx.xr.arcore package، وأصبحت الأنواع في androidx.xr.runtime متوقفة نهائيًا. (Ic7930، b/480462213)
  • تمت إعادة تسمية "Plane.Type" إلى "PlaneType". (I8c90c، b/482675376)
  • تمت إعادة تسمية "Plane.Label" إلى "PlaneLabel". (Ic6b67، b/482675376)
  • تم إيقاف androidx.xr.runtime.FieldOfView نهائيًا. يمكنك استخدام androidx.xr.runtime.math.FieldOfView كبديل. (Ia01a0، b/480233045)
  • تم تغيير اسم "Matrix4.pose" إلى "Matrix4.toPose()". تم إيقاف السمة "الوضعية" نهائيًا. (I329b4، b/493383490)
  • تمت إعادة تسمية قيم التعداد HandJointType. (Ifbc83، b/482670596)
  • عرض Component.onAttach وonDetach كواجهة برمجة تطبيقات عامة للسماح بتنفيذ Component مخصّص. (I0ca1f)
  • إضافة مكوّنات الصوت المكاني (I39ddd، b/489421980، b/436642086، b/436642499)
  • إزالة الكيان من PointSourceParams بدلاً من ذلك، سيتم استخدام الكيان مباشرةً مع SpatialAudioTrack وSpatialSoundPool وSpatialMediaPlayer (Ib3685 وb/489421980 وb/436634048).
  • تمّت إعادة تسمية DeviceTrackingMode.LAST_KNOWN إلى SPATIAL_LAST_KNOWN (مع خيار احتياطي متوقّف نهائيًا)، وتمّت إضافة INERTIAL_LAST_KNOWN لتتبُّع 3 درجات من الحرية، كما تمّت إضافة TRACKING_DEGRADED إلى TrackingState. (Ie661c، b/445466590)
  • تم إيقاف GroupEntity نهائيًا. للحصول على عنصر Entity يتضمّن وظائف العنصر الأساسية فقط، استدعِ Entity.create الذي سيعرض واجهة العنصر. (I4c450، b/473867483)
  • تمت إضافة واجهة برمجة التطبيقات XrLog. اضبط قيمة XrLog.isEnabled على true لتفعيل التسجيل في JetpackXR، واستخدِم XrLog.Level لضبط مستوى التسجيل. (I76a1f، b/463460895، b/487378441)

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

  • يتم الآن ضبط Scene.keyEntity تلقائيًا على mainPanelEntity. (I6a3ef)

الإصدار ‎1.0.0-alpha13

‫25 مارس 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha13. يتضمّن الإصدار ‎1.0.0-alpha13 هذه التعديلات.

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

  • تمت إزالة علامة unscaledGravityAlignedActivitySpace من Session.create. يتم الآن عرض ActivitySpace دائمًا بدون تغيير حجمه وبمحاذاة الجاذبية. (If6f11، b/458173423)
  • تمت إزالة الدالتَين المتوقّفتَين نهائيًا setMaterialOverride وclearMaterialOverride من GltfModelEntity، ويتم الآن استدعاؤهما في GltfModelNode الفردي. (I2e5d2)
  • تمت إضافة transformPixelCoordinatesToLocalPosition وtransformNormalizedCoordinatesToLocalPosition إلى PanelEntity وإزالة الطرق التجريبية المكافئة التي كانت تعرض وضعيات بدلاً من مواضع Vector3. (Ib6960، b/460123106، b/458333591)
  • تمت إضافة واجهات برمجة التطبيقات GltfAnimation للتحكّم في صور glTF المتحركة في SceneCore. (I2c172 وb/466065486 وb/465819070 وb/465818617)
  • تمت إعادة تسمية ScenePose.activitySpacePose إلى ScenePose.poseInActivitySpace (I8f175، b/427822261)
  • إضافة تنفيذ وقت التشغيل المتوقّع في Scenecore (I9c4ab، b/476440158)
  • عند تغيير حجم عنصر اللوحة الرئيسية، قد يعيد ضبط موضعه إلى نقطة الأصل ActivitySpace. لا يتوفّر حلّ بديل سوى إعادة ضبط موضع اللوحة يدويًا أو آليًا إلى موضعها الأصلي. سيتم إصلاح هذا الخطأ في إصدار مستقبلي. (b/489427007).
  • في بعض الحالات، قد لا يظهر عنصر واجهة المستخدم الخاص بـ MovableComponent لـ SurfaceEntity وأنواع الكيانات الأخرى غير "اللوحة". سيؤدي ضبط MovableComponent.size بشكل صريح إلى ظهور إشارة الإتاحة. سيتم إصلاح هذا الخطأ في إصدار مستقبلي (b/490983469).

الإصدار ‎1.0.0-alpha12

‫25 فبراير 2026

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

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

  • قد تنتقل الكيانات المثبّتة من موضعها المثبّت إلى نقطة بداية مساحة النشاط بعد عدة ثوانٍ.
  • قد تتعطّل التطبيقات عند إنشاء SurfaceEntity مثيل. تم حلّ هذه المشكلة في الإصدار androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 والإصدارات اللاحقة. يجب تحديث التطبيقات المتأثرة إلى أحدث إصداراتها.

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

  • تمت إعادة تسمية "ActivitySpace.addOnSpaceUpdatedListener" و"ActivitySpace.removeOnSpaceUpdatedListener" إلى "addOnOriginChangedListener" و"removeOnOriginChangedListener". تم تغيير اسم "AnchorEntity.setOnSpaceUpdatedListener" إلى "setOnOriginChangedListener". (I5d8fb)
  • تمت إضافة سمة الاسم العام إلى FakeEntity وإتاحة العرض للجميع على FakePanelEntity. (Ifa1f9)

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

  • إصلاح عمليات احتساب كثافة وحدات البكسل في صور النظام الأحدث (I57d04)

الإصدار ‎1.0.0-alpha11

‫28 يناير 2026

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha11. يتضمّن الإصدار ‎1.0.0-alpha11 هذه التعديلات.

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

  • تمت إعادة تسمية PerceivedResolutionResult.InvalidCameraView إلى PerceivedResolutionResult.InvalidRenderViewpoint لأنّ واجهات برمجة التطبيقات getPerceivedResolution تعتمد الآن على واجهة برمجة التطبيقات RenderViewpoint في ARCore بدلاً من CameraViewScenePose. يعكس هذا الاسم بشكل أفضل عملية التنفيذ الجديدة. (I8c967، b/446989745، b/419311998)
  • تتلقّى الطريقتان PanelEntity/SurfaceEntity.getPerceivedResolution الآن RenderViewpoint يقدّمه المطوّر كوسيطة. في السابق، كان وقت التشغيل يختار بشكل عشوائي RenderViewpoint المستخدَم في احتساب الدقة المرئية. (I8c967، b/446989745، b/419311998)
  • تمت إزالة إذنَي SpatialUser وScenePose.Head وScenePose.CameraView. تتوفّر وظائف واجهات برمجة التطبيقات هذه في واجهتَي برمجة التطبيقات ArDevice وRenderViewpoint ضمن ARCore for Jetpack XR. للحصول على ScenePose يتوافق مع رأس المستخدم أو عينه اليسرى أو اليمنى، يمكن للمطوّرين استخدام PerceptionSpace.getScenePoseFromPerceptionPose مع الوضع المناسب الذي تم الحصول عليه باستخدام واجهات برمجة تطبيقات ARCore. (I2f69c، b/446989745)

الإصدار ‎1.0.0-alpha10

‫3 ديسمبر 2025

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha10. يتضمّن الإصدار ‎1.0.0-alpha10 هذه التعديلات.

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

  • تمّت إضافة "transformPixelCoordinatesToPose" و"transformNormalizedCoordinatesToPose" إلى "PanelEntity" (I462b3)
  • تمت إضافة فئة مساعدة، Utils، إلى SceneCore Runtime استنادًا إلى المنطق في SceneCore (I570b9)

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

  • تم إصلاح عُطل محتمل يمكن أن يحدث عند إيقاف الجلسة وتلقّي SpatialModeChangeEvent (If44e8)
  • تم إصلاح خطأ كان يمكن أن يؤدي إلى ظهور IllegalStateException عند مغادرة نشاط أو إعادة الدخول إليه. (Ibff1c)

الإصدار ‎1.0.0-alpha09

‫19 نوفمبر 2025

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha09. يتضمّن الإصدار ‎1.0.0-alpha09 هذه التعديلات.

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

  • تضيف هذه السمة واجهة برمجة تطبيقات لاسترداد ScenePose يمثّل تركيبة وضعية مصدر مساحة الإدراك ووضعية بالنسبة إلى مصدر مساحة الإدراك. (I5b50a)
  • تمت إضافة الدالة getGravityAlignedPose. يتجاهل الوضع المحاذي للجاذبية الميل والانحراف في الدوران. (I5ae21)
  • تم تغيير أنواع الثوابت AnchorEntity.State من أعداد صحيحة إلى أنواع فرعية من الحالة. (Ib0c49)
  • تمت إضافة getChildren() إلى واجهة Entity. تم تعديل مراحل النشاط في ‎MainPanelEntity. (Ia69d6)

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

  • تم تغيير أنواع الثوابت PointerCaptureComponent.PointerCaptureState من Ints إلى الأنواع الفرعية PointerCaptureState. (Ic888a)
  • أصبح Scene.spatialCapabilities الآن من النوع Set<SpatialCapability> بدلاً من حقل Int. تمت إعادة تسمية الثوابت SpatialCapability. (I9c109)
  • تمت إعادة تسمية أنواع الثوابت SurfaceEntity وتغييرها من أعداد صحيحة إلى أنواع فرعية من SurfaceEntity. (I419ed)
  • تمت إعادة تسمية أنواع الثوابت SpatializerConstant وتغييرها من أعداد صحيحة إلى أنواع فرعية من SpatializerConstant. (Ia0e18)
  • تمت إعادة تسمية أنواع الثوابت TextureSampler وتغييرها من أعداد صحيحة إلى أنواع فرعية من TextureSampler. (I44078)
  • تم تغيير أنواع الثوابت SpatialVisibility من Ints إلى الأنواع الفرعية SpatialVisibility. (I70739)
  • تمت إعادة تسمية الأنواع الثابتة ResizeEvent.ResizeState وتغييرها من أعداد صحيحة إلى أنواع فرعية ResizeState. (I384d5)
  • تمت إعادة تسمية أنواع الثوابت InputEvent وتغييرها من Ints إلى أنواع موروثة من النوع المحيط بكل منها. (I82817)
  • تم تغيير أنواع الثوابت GltfModelEntity.AnimationState من Ints إلى الأنواع الفرعية AnimationState. (I24f4e)
  • تمت إعادة تسمية أنواع الثوابت AlphaMode وتغييرها من أعداد صحيحة إلى أنواع فرعية من AlphaMode. (I27b56)
  • تم تغيير أنواع الثوابت Space من أعداد صحيحة إلى أنواع فرعية من المساحة. (I9255b)
  • تعرِض الدالة ScenePose.hitTest والطُرق ذات الصلة الآن null إذا لم يتم العثور على أي تقاطع، بدلاً من HitTestResult مع قيمة فارغة hitPosition. لم يعُد HitTestResult.hitPosition يقبل القيمة الخالية. (I1400a)
  • تم تغيير مراجع ActivityPose إلى ScenePose. (I7fe43)

الإصدار ‎1.0.0-alpha08

‫22 أكتوبر 2025

تم طرح androidx.xr.scenecore:scenecore-*:1.0.0-alpha08. يتضمّن الإصدار ‎1.0.0-alpha08 هذه التعديلات.

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

  • تغيير اسم ActivityPanelEntity.moveActivity إلى transferActivity (I273c5، b/430332856)

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

  • تمت إضافة :xr:scenecore:scenecore-spatial-rendering و:xr:scenecore:scenecore-spatial-core كمتطلبات تنفيذ :xr:scenecore:scenecore (I6ab65، b/447000520)
  • يتم عرض استثناء إذا تم الوصول إلى session.scene بعد إيقاف الجلسة. (I77e6f)

الإصدار ‎1.0.0-alpha07

‫24 سبتمبر 2025

تم إصدار "androidx.xr.scenecore:scenecore:1.0.0-alpha07" و"androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07" و"androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07". يتضمّن الإصدار ‎1.0.0-alpha07 هذه التعديلات.

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

  • تمت إعادة تسمية fixedAspectRatio إلى isFixedAspectRatioEnabled وتم تحويلها إلى سمة منطقية (I5c4e8، b/440588971)
  • تتوفّر الآن الفئات الوهمية Scenecore في الوحدة xr:scenecore:scenecore-testing. (Idd951)
  • تمت إعادة تسمية shouldAutoHideContent إلى isAutoHideContentWhileResizingEnabled وshouldAlwaysShowOverlay إلى isAlwaysShowOverlayEnabled (I97c36، b/432335421)
  • تم تعديل الثوابت SceneCore TextureSampler لتسهيل قراءتها، مثلاً أصبح TextureSampler.MinFilter.LINEAR الآن TextureSampler.MIN_FILTER_LINEAR (Ib159c)
  • تم دمج أداة ضبط setKeyEntity الخاصة بالمشهد في المتغير keyEntity. سيؤدي ضبط keyEntity على كيان غير قابل للنقل، مثل AnchorEntity، إلى طرح IllegalArgumentException بدلاً من عرض القيمة المنطقية "خطأ". (I62080، b/428721695، b/422215745)
  • تم استبدال المتغيّر SpatialModeChangeListener الخاص بالمشهد بـ setSpatialModeChangedListener. تتلقّى هذه الدالة قيمة Consumer<SpatialModeChangeEvent> بدلاً من SpatialModeChangedListener. يمكن أن يقبل setSpatialModeChangedListener الآن بشكل اختياري Executor. (I62080، b/428721695، b/422215745)
  • تمت إزالة المَعلمة bundle من ActivityPanelEntity.startActivity (I64344، b/430332856، b/430333040)
  • تمت إعادة تسمية "SpatializerConstants.SOURCE_TYPE_BYPASS" إلى "SpatializerConstants.SOURCE_TYPE_DEFAULT". (Ifc7fe، b/422215565)
  • تمت إضافة الثابت SpatialSoundPool.PLAY_FAILED. (Ifc7fe، b/422215565)
  • تمت إضافة وسيطات تلقائية إلى طرق SpatialSoundPool.play. (Ifc7fe، b/422215565)
  • تمت إزالة قيمة الإرجاع الخاصة بالدوال الضابطة في SpatialAudioTrackBuilder. (Ifc7fe، b/422215565)
  • التغييرات في SurfaceEntity
    • تمت إعادة تسمية "SurfaceEntity.CanvasShape" إلى "Shape"
    • تمت إعادة تسمية "SurfaceEntity.CanvasShape.Vr180Hemisphere" إلى "Hemisphere"
    • تمت إعادة تسمية "SurfaceEntity.CanvasShape.Vr360Sphere" إلى "Sphere"
    • تمت إعادة تسمية "SurfaceEntity.EdgeFeatheringParams.SmoothFeather" إلى "RectangleFeather"
    • تمت إعادة تسمية "SurfaceEntity.EdgeFeathingParams.SolidEdge" إلى "NoFeathering"
    • تمت إعادة تسمية "SurfaceEntity.ContentSecurityLevel" إلى "SurfaceProtection"
    • أضاف SurfaceEntity.ContentSecurityLevel.{values} البادئة SURFACE_PROTECTION_.
    • تمت إضافة البادئة "SUPER_SAMPLING_" من قِبل "SurfaceEntity.SuperSampling.{$values}"
    • تمت إضافة البادئة "STEREO_MODE_" من قِبل "SurfaceEntity.StereoMode.{values}"
    • تمت إعادة تسمية SurfaceEntity.ContentColorMetadata.maxCLLmaxContentLightLevel (I7eb5f وb/422216050 وb/427529950)
  • تمت إعادة تسمية launchActivity إلى startActivity (I7db90، b/430332856)
  • تمت إزالة جهة الاتصال "Scene.activitySpaceRoot". يمكنك استخدام Scene.activitySpace كبديل. (I05ee8، b/378706624، b/422215745)
  • تمت إعادة تسمية configureBundleForFullSpaceModeLaunch وconfigureBundleForFullSpaceModeLaunchWithEnvironmentInherited إلى createBundleForFullSpaceModeLaunch وcreateBundleForFullSpaceModeLaunchWithEnvironmentInherited على التوالي، وتم نقلهما إلى ملف LaunchUtils.kt كطُرق من المستوى الأعلى، كما تم ضبطهما على استخدام Session كمعلَمة أولى (I64a2c وb/437186050)
  • يعرض مصنع GroupEntity الآن النوع GroupEntity بدلاً من Entity. (I66042)

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

الإصدار ‎1.0.0-alpha06

‫13 أغسطس 2025

تم إصدار "androidx.xr.scenecore:scenecore:1.0.0-alpha06" و"androidx.xr.scenecore:scenecore-guava:1.0.0-alpha06" و"androidx.xr.scenecore:scenecore-testing:1.0.0-alpha06". يتضمّن الإصدار ‎1.0.0-alpha06 هذه التعديلات.

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

  • إزالة القيود عن واجهات برمجة التطبيقات SceneCore وBaseEntity وBaseScenePose (88c0ff6)

الإصدار ‎1.0.0-alpha05

‫30 يوليو 2025

تم إصدار "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha05" و"androidx.xr.scenecore:scenecore-testing:1.0.0-alpha05" و"androidx.xr.scenecore:scenecore:1.0.0-alpha05". يتضمّن الإصدار ‎1.0.0-alpha05 هذه التعديلات.

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

  • تمت إضافة واجهة برمجة التطبيقات Perceived Resolution API إلى "كيانات اللوحة" وSurfaceEntities. (I118f6)
  • PerceivedResolution تمت إضافة طرق معاودة الاتصال إلى Scene.kt لمراقبة الدقة المدرَكة للّوحة الرئيسية للنشاط في "خدمة إدارة أمان الأجهزة" (HSM). (I58084)
  • SurfaceEntity - تمت إضافة إمكانية طلب أخذ عينات فائقة عند إنشاء التطبيق. تسمح هذه السمة للتطبيقات باستخدام فلتر أخذ العينات الفائق لتنعيم الحواف. (I06913)
  • تمت إضافة السمة recommendedContentBoxInFullSpace إلى ActivitySpace. تعرض هذه السمة مربّعًا مقترَحًا لوضع المحتوى فيه عند استخدام "وضع المساحة الكاملة". (I4cd6f)
  • تم توفير أداة إنشاء محمّلة بشكل زائد لمعدِّل قابل للنقل يتيح التثبيت. (Ic0c70)

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

تم إجراء تغييرات شاملة على واجهة برمجة التطبيقات SceneCore لهذا الإصدار. تمت إعادة تسمية العديد من الفئات و/أو نقلها إلى وحدات مختلفة، وتم استبدال معظم طرق getter/setter بخصائص Kotlin. مع أنّنا نتوقّع إجراء تغييرات غير متوافقة مع الإصدارات السابقة في واجهة برمجة التطبيقات في المستقبل إلى حين إصدار أول إصدار تجريبي، لن تكون هذه التغييرات مزعجة أو عديدة.

  • تمت إعادة تسمية و/أو نقل الفئات والواجهات التالية: androidx.xr.scenecore.PixelDimensions إلى androidx.xr.runtime.math.IntSize2d، وandroidx.xr.scenecore.Dimensions إلى androidx.xr.runtime.math.FloatSize3d، وandroidx.xr.scenecore.ActivityPose إلى ScenePose، وandroidx.xr.scenecore.ContentlessEntity إلى GroupEntity، وandroidx.xr.scenecore.PlaneType إلى PlaneOrientation، وandroidx.xr.scenecore.PlaneSemantic إلى PlaneSemanticType. (Ifd405)(I3b622) (If534d)
  • تمت إتاحة عدد من أدوات الضبط لسمات Scene بشكل خاص، ولم يكن من المفترض أن يتم تغييرها من قِبل عملاء SceneCore: activitySpace وactivitySpaceRoot وmainPanelEntity وperceptionSpace وspatialCapabilities وspatialEnvironment وspatialUser. (I2f506)
  • في الكيان: تم تغيير ما يلي إلى سمات: get/setParent() وsetContentDescription. تم إيقاف Entity.is/setHidden() نهائيًا، يُرجى استخدام Entity.is/setEnabled بدلاً من ذلك. (Ibc4c6)
  • تمت إزالة الفئة androidx.xr.scenecore.BasePanelEntity، لذا يُرجى استخدام PanelEntity مباشرةً بدلاً منها. تم استبدال دوال الجلب والضبط الخاصة بـ PanelEntity بالسمات. تم تغيير السمة PanelEntity.size من Float3dSize إلى Float2dSize. تمت إزالة الطريقة المتوقّفة نهائيًا androidx.xr.scenecore.PanelEntity.getPixelDimensions، يُرجى استخدام getSizeInPixels بدلاً منها. (Icc174)
  • تم استبدال androidx.xr.scenecore.OnSpaceUpdatedListener بـ Runnable. (I19308)
  • تم استبدال SpatialUser.getCameraViews() بسمة. (Ib0cc5) بالنسبة إلى ExrImage وGltfModel:، تم تغيير طرق create لتصبح دوال تعليق، وتم تعديل مَعلمات الإنشاء لقبول Uri أو Path بدلاً من String. (Id8883) (I0d247)، (I25706)
  • تم نقل SpatialEnvironment.requestFullSpaceMode وSpatialEnvironment.requestHomeSpaceMode إلى "المشهد"، مثلاً استخدِم session.scene.requestFullSpaceMode() بدلاً من session.scene.spatialEnvironment.requestFullSpaceMode(). يتضمّن كل من addOnPassthroughOpacityChangedListener وaddOnSpatialEnvironmentChangedListener الآن عمليات إلغاء تقبل عمليات تنفيذ اختيارية. (I12fe0) (I6b21e)
  • تمت إزالة طرق SpatialEnvironment التالية المتوقّفة نهائيًا: togglePassthrough وsetPassthrough وsetPassthroughOpacity وgetPassthroughMode وgetPassthroughOpacity وsetSkybox وsetGeometry. تمت أيضًا إزالة الفئة المتوقّفة نهائيًا SpatialEnvironment.PassthroughMode (I927bd) (I927bd) (I927bd)
  • تم استبدال دوال الجلب والتعديل التالية SpatialEnvironment بخصائص Kotlin: getCurrentPassthroughOpacity() وget/setPassthroughOpacityPreference() وget/setSpatialEnvironmentPreference() وisSpatialEnvironmentPreferenceActive() (I33a7b) (Ie06e2) (Ie06e2)
  • تم تغيير نوع SpatialEnvironmentPreference.preferredPassthroughOpacity من Float? إلى Float. لم يعُد يقبل القيم الفارغة. بدلاً من ذلك، يتم استخدام SpatialEnvironment.NO_PASSTHROUGH_OPACITY_PREFERENCE للإشارة إلى عدم توفّر أي إعداد مفضّل للشفافية. (I40107)
  • تم تعديل المَعلمة windowBoundsPx إلى pixelDimensions وتغيير نوعها من Rect إلى IntSize2d في طريقة الإنشاء. (I1926e)
  • أصبح منشئ SpatialEnvironment داخليًا الآن (I75a51)
  • تم استبدال الفئتين SpatialPointerIconNone وSpatialPointerIconCircle بفئتين مصاحبتين SpatialPointerIcon.NONE وSpatialPointerIcon.CIRCLE (I416d2)
  • لم يعُد الحقل SpatialPointerIcon في SpatialPointerComponent يقبل القيم الخالية. استخدِم SpatialPointerIcon.DEFAULT بدلاً من القيمة الفارغة للإشارة إلى أنّه يجب استخدام رمز المؤشر التلقائي للنظام. (I416d2)
  • تم استبدال androidx.xr.scenecore.AnchorEntity.getState() بسمة للقراءة فقط. تمت إعادة تسمية المَعلمات في الطريقة AnchorEntity.create() لتوضيحها. في طرق AnchorEntity لضبط أدوات معالجة الأحداث وإضافتها، تم نقل أداة معالجة الأحداث إلى الوسيطة الأخيرة لتفعيل تعبيرات lambda اللاحقة. تم استبدال androidx.xr.scenecore.OnStateChangedListener بـ AnchorEntity بـ Consumer<AnchorEntity.State>. (I472e0)
  • أصبح GltfModelEntity.getAnimationState() الآن موقعًا. (I10b29)
  • تم استبدال ActivitySpace.getBounds() بسمة. تمت إعادة تسمية "ActivitySpace.addBoundsChangedListener" إلى "ActivitySpace.addOnBoundsChangedListener". تم استبدال ActivitySpace.setOnSpaceUpdatedListener بطرق الإضافة والإزالة. (I4c956)
  • تمت إعادة تسمية AnchorPlacement: planeTypeFilter إلى anchorablePlaneOrientations، وتمت إعادة تسمية planeSemanticFilter إلى anchorablePlaneSemanticTypes. ستعرض إضافة MovableComponent إلى AnchorEntity أو ActivitySpace القيمة false، وتمت إعادة تسمية MoveListener إلى EntityMoveListener shouldDisposeParentAnchor، ثم إلى disposeParentOnReAnchor systemMovable، وتمت إزالة disposeParentOnReAnchor systemMovable من الدالة create لصالح creeateCustomMovable وcreateSystemMovable وcreateAnchorable (If11c4)
  • تمت إزالة SurfaceEntity.featherRadiusX/Y وإضافة مفهوم الفئة EdgeFeatheringParams. (Ic78fc)
  • تم استبدال الطريقة PanelEntity.enablePanelDepthTest() بالسمة panelClippingConfig. اضبط Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true) لتفعيل اختبار العمق أو اضبطه على PanelClippingConfig(isDepthTestEnabled = false) لإيقافه. (I0cbe0)
  • أصبح نوع السمة "Scene.mainPanelEntity" الآن MainPanelEntity بدلاً من PanelEntity (I7125a)
  • تمت إعادة تسمية طريقة setFullSpaceMode في Scene إلى configureBundleForFullSpaceModeLaunch وطريقة setFullSpaceModeWithEnvironmentInherited إلى configureBundleForFullSpaceModeLaunchWithEnvironmentInherited. (I0cbe0) (I0cbe0)
  • تمت إعادة تسمية القيم UNKNOWN وOUTSIDE_FOV وPARTIALLY_WITHIN_FOV وWITHIN_FOV في SpatialVisibility إلى SPATIAL_VISIBILITY_UNKNOWN وSPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW وSPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW وSPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW على التوالي (Ie7e8c)
  • تم استبدال الفئة SpatialVisibility بكائن عام يتضمّن قيمًا ثابتة من النوع Int. تقبل setSpatialVisibilityChangedListener الآن Consumer<Int> بدلاً من Consumer<SpatialVisibility> (Ie7e8c)
  • تمت إعادة تسمية الثوابت PointerCaptureComponent ونقلها إلى العنصر PointerCaptureComponent.PointerCaptureState (I9c7ac)
  • تم استبدال PointerCaptureComponents' StateListener بـ Consumer<Int>. (I9c7ac)
  • تمّ استبدال InputEventListener بـ Consumer<InputEvent> (I9c7ac)
  • تم نقل setPreferredAspectRatio من فئة Scene إلى العنصر SpatialWindow، ويتم إدخال Session كمعلَمة أولى. (I7b717)
  • تم استبدال Entity.setHidden() بـ Entity.setEnabled()، وتم استبدال Entity.isHidden() بـ Entity.isEnabled(). setHidden(false) تساوي setEnabled(true) وisHidden() == !isEnabled(). (Icf0de)
  • تم تغيير نوع Entity.contentDescription من "سلسلة" إلى CharSequence. (Ie59be)
  • تعرض الدالتان Session.create وSession.configure الآن الخطأ SecurityException عند عدم منح أذونات كافية بدلاً من عرض SessionCreatePermissionsNotGranted أو SessionConfigurePermissionsNotGranted. (I7c488)
  • يتطلّب ResizableComponent.create الآن Consumer<ResizeEvent> ResizeEventListener تم استبداله بـ Consumer<ResizeEvent> ResizableComponent.size تمت إعادة تسميته إلى ResizableComponent.affordanceSize ResizableComponent.minimumSize تمت إعادة تسميته إلى ResizableComponent.minimumEntitySize ResizableComponent.maximumSize تمت إعادة تسميته إلى ResizableComponent.maximumEntitySize، تمت إعادة تسمية ResizableComponent.autoHideContent إلى ResizableComponent.shouldAutoHideContent تمت إعادة تسمية ResizableComponent.forceShowResizeOverlay إلى ResizableComponent.shouldAlwaysShowOverlay (I97a2d)
  • تم خفض minSDK إلى 24 في androidx.xr.scenecore وandroidx.xr.compose. لا تزال حِزم XR تتطلّب المستوى 34 لواجهة برمجة التطبيقات في وقت التشغيل. (I17224)
  • تمت إزالة القيود المفروضة على RequiresApi(34) في جميع حِزم Jetpack XR. كان هذا القيد غير ضروري لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8)
  • سيحتوي العنصر الرئيسي SceneCore (xr:scenecore:scenecore) على واجهات برمجة تطبيقات غير متزامنة بنمط Kotlin فقط. يمكن لمطوّري Java الاعتماد على مكتبة xr:scenecore:scenecore-guava للوصول إلى واجهات برمجة التطبيقات المتوافقة. (If221b)
  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)
  • تستخدم هذه المكتبة الآن تعليقات توضيحية بشأن إمكانية القيم الفارغة في JSpecify، وهي تعليقات توضيحية خاصة باستخدام النوع. على مطوّري Kotlin استخدام وسيطة المترجم البرمجي التالية لفرض الاستخدام الصحيح: -Xjspecify-annotations=strict (هذا هو الإعداد التلقائي بدءًا من الإصدار 2.1.0 من المترجم البرمجي للغة Kotlin) (Ia8420)
  • تم استبدال جميع الطرق غير المتزامنة التي تعرض ListenableFuture بدوال تعليق في Kotlin. على مطوّري Java الذين يريدون استخدام طرق غير متزامنة مستندة إلى ListenableFuture بدلاً من دوال التعليق في Kotlin استخدام دوال الإضافة في :xr:scenecore-scenecore-guava. على سبيل المثال، يحتوي GuavaExrImage على دوال ExrImage غير المتزامنة المكافئة لـ Guava، ويحتوي GuavaScenePose على دوال ScenePose غير المتزامنة المكافئة لـ Guava، ويحتوي GuavaGltfModel على دوال Guava-equivalent GltfModel غير المتزامنة، وما إلى ذلك. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)

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

  • تم تعديل قاعدة Jetpack XR Scenecore ProGuard لمنع AbstractMethodError للعملاء المصغّرين. (I91a01)
  • إصلاحات إضافية لتوفير إمكانية تصغير Proguard في Jetpack XR SceneCore (I4f47e)
  • تم إصلاح الخطأ الذي قد يتسبّب فيه InteractableComponent في حدوث عُطل إذا كان hitPosition في HitInfo الخاص بـ InputEvent قد يتعطّل إذا كانت قيمة hitPosition التي تم إرجاعها من النظام فارغة (I7a695)
  • تمت إعادة تسمية قيم *الوضع في ملف الإعداد لتعكس سلوكها. (I6d247)
  • تم حلّ المشاكل المتعلّقة بمجال الرؤية وHitTest في SceneCore TestApp. (I2c51e)
  • تم إصلاح الخطأ في SpatialCapabilities.hasCapability() الذي كان يعرض القيمة "صحيح" إذا كانت أي من الإمكانات التي تم تمريرها باستخدام OR على مستوى البت صحيحًا بدلاً من عرض القيمة "صحيح" فقط إذا كانت جميعها صحيحة. (I2cd40)
  • تم تعديل SurfaceEntity.StereoMode.TOP_BOTTOM لتعرض الخريطة العلوية للعين اليسرى والخريطة السفلية للعين اليمنى. (I4ae68)

الإصدار ‎1.0.0-alpha04

‫7 مايو 2025

تم طرح androidx.xr.scenecore:scenecore:1.0.0-alpha04 وandroidx.xr.scenecore:scenecore-testing:1.0.0-alpha04. يتضمّن الإصدار ‎1.0.0-alpha04 هذه التعديلات.

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

  • ستعمل ميزة "التعامل مع الرجوع" الآن على عناصر اللوحة بدون أنشطة مضمّنة. لكي يعمل معالج الرجوع، عليك تحديد android:enableOnBackInvokedCallback= "true" في ملف البيان لنظام التشغيل Android.
  • يتيح StereoSurfaceEntity الآن تشغيل فيديوهات MV-HEVC من خلال قيمتَين جديدتَين في StereoMode هما MULTIVIEW_LEFT_PRIMARY وMULTIVIEW_RIGHT_PRIMARY.
  • تعرض السمتان PanelEntity.setSize وPanelEntity.getSize الآن الأحجام في المساحة الرئيسية.
  • تتلقّى الآن Entity.setPose وEntity.getPose وEntity.setScale وEntity.getScale وEntity.setAlpha وEntity.getAlpha مَعلمة جديدة relativeTo، ما يتيح الحصول على القيم أو ضبطها بالنسبة إلى مساحات مختلفة. القيم المسموح بها هي "مساحات الوالدين" و"النشاط" و"العالم الحقيقي"، والقيمة التلقائية لهذه المَعلمة هي "مساحات الوالدين".
  • تمت إضافة طرق ملحقة لـ Spatial Visibility Callback إلى SessionExt.kt لتتبُّع وقت انتقال محتوى المشهد إلى داخل مجال رؤية المستخدم أو خارجه.
  • تمت إضافة setPointSourceParams إلى SpatialAudioTrack، ما يتيح تعديل المَعلمات بعد إنشاء المسار.
  • تمت إضافة فئة جديدة، Scene، مع مراجع إلى واجهات برمجة التطبيقات Scenecore. سيكون المشهد متاحًا كسمة إضافية للجلسة. تم نقل الدوال داخل SessionExt إلى "المشهد"، لذا يجب تعديل عمليات الاستيراد، مثل SessionExt.getScene(session).‫"addSpatialCapababilitiesChangedListener" مقابل "SessionExt.addSpatialCapabilitiesChangedListener".
  • تمت إضافة ActivityPose.hitTestAsync، ما يتيح تقديم hitTest ضد المحتوى الافتراضي.
  • تمت إضافة نوع "المكوّن" الجديد SpatialPointerComponent، ما يتيح للعملاء تحديد الرمز المعروض للمؤشر أو إيقاف الرمز. يمكن حاليًا إرفاق هذا المكوّن بنسخ PanelEntity فقط.
  • نقدّم PanelEntity جديدًا يأخذ أبعاد اللوحة بالمتر أو بالبكسل. تمت إزالة المصنع القديم PanelEntity الذي يتلقّى مَعلمتَين من نوع السمة للوحة.

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

  • تمت إزالة القيود المفروضة على RequiresApi(34) في جميع حِزم Jetpack XR. كان هذا القيد غير ضروري لأنّ Jetpack XR لا يتوفّر حاليًا إلا على الأجهزة التي تعمل بالمستوى 34 من واجهة برمجة التطبيقات أو الإصدارات الأحدث. (Iae0f8)
  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)
  • تمت إزالة الصف PermissionHelper.
  • تم إيقاف PanelEntity.getPixelDensity نهائيًا.
  • تمت إزالة PanelEntity.setPixelDimensions وPanelEntity.getPixelDimension واستبدالهما بـ setSizeInPixels وgetSizeInPixels.
  • تمت إزالة Entity.getActivitySpaceAlpha. يمكن استبدالها بـ Entity.getAlpha(Space.Activity).
  • تمت إزالة Entity.getWorldSpaceScale. يمكن استبدالها بـ Entity.getScale(Space.REAL\_WORLD).
  • تم حذف فئة Session في SceneCore لصالح Session في XR Runtime.
  • تم تغيير اسم "StereoSurfaceEntity" إلى "SurfaceEntity".
  • تمت إزالة Entity.setSize وEntity.getSize، وتمت إضافة الطرق نفسها إلى PanelEntity.
  • تم تغيير اسم "PointSourceAttributes" إلى "PointSourceParams".
  • تم تغيير اسم "SpatializerConstants.SOURCE\_TYPE\_BYPASS" إلى "SpatializerConstants.SOURCE\_TYPE\_DEFAULT".
  • تم تعديل العنصر PointSourceParams من إذن الوصول العام إلى إذن الوصول الداخلي.
  • يتطلّب تطبيق AnchorEntity.create الآن ضبط PlaneTrackingMode في Session.configure().
  • تتطلّب واجهات برمجة التطبيقات SpatialUser الآن ضبط HeadTrackingMode في Session.configure().
  • في حال عدم إرفاق ResizableComponent، سيتم عرض سجلّ على مستوى INFO بدلاً من سجلّ على مستوى ERROR.
  • أصبح فئة Fov الآن فئة Kotlin عادية.
  • قسِّم Entity.kt لوضع كل نوع من أنواع العناصر الملموسة في ملف منفصل.
  • عند إنشاء PanelEntity جديد، سيتمّ إعادة ربط معظم "طرق العرض" بـ FrameLayout. يسهّل ذلك استخدام LayoutInspector مع "اللوحات المكانية".
  • تم الآن تسجيل مثيل XrExtensions المستخدَم حاليًا في المنصة بأقصى جهد ممكن للمساعدة في تصحيح أخطاء التطبيق.

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

  • تمت إضافة إصلاح لمنع حدوث تعطُّل قد يحدث عند نقل PanelEntity يحتوي على MovableComponent وAnchorPlacement
  • تم إصلاح مشكلة كانت تتسبّب في أن يقدّم ResizableComponent أحجامًا قديمة في معاودة الاتصال onResizeStart.
  • تم إصلاح عُطل كان يحدث عند استدعاء dispose() في JxrPlatformAdapterAxr عدة مرات.

الإصدار ‎1.0.0-alpha03

‫26 فبراير 2025

تم طرح androidx.xr.scenecore:scenecore:1.0.0-alpha03 وandroidx.xr.scenecore:scenecore-testing:1.0.0-alpha03. يتضمّن الإصدار ‎1.0.0-alpha03 هذه التعديلات.

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

  • أصبحت ميزة التصغير باستخدام Proguard متاحة الآن لرمز Jetpack XR

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

  • إصلاحات إضافية لدعم تصغير Proguard في Jetpack XR SceneCore (I4f47e)
  • تم تعديل قاعدة Jetpack XR Scenecore ProGuard لمنع AbstractMethodError للعملاء المصغّرين. (I91a01)

الإصدار ‎1.0.0-alpha02

‫12 فبراير 2025

تم طرح androidx.xr.scenecore:scenecore:1.0.0-alpha02 وandroidx.xr.scenecore:scenecore-testing:1.0.0-alpha02. يتضمّن الإصدار ‎1.0.0-alpha02 هذه التعديلات.

تغيير غير متوافق قادم سيؤثر في التطبيقات التي تم إنشاؤها قبل الإصدار ‎1.0.0-alpha02

  • تم نقل طرق الإنشاء من الفئة Session إلى طريقة مصاحبة لكل نوع على حدة:
    • تم حذف Session.createActivityPanelEntity(Dimensions, String, Activity, Pose) واستبداله بـ ActivityPanelEntity.create(Session, Dimensions, String, Pose)
    • تم حذف Session.createAnchorEntity(Anchor) واستبداله بـ AnchorEntity.create(Session, Anchor)
    • تم حذف Session.createAnchorEntity(Dimensions, Int, Int, Duration) واستبداله بـ AnchorEntity.create(Session, Dimensions, Int, Int, Duration)
    • تم حذف Session.createEntity(String, Pose) واستبداله بـ ContentlessEntity.create(Session, String, Pose)
    • تم حذف Session.createExrImageResource(String) واستبداله بـ ExrImage.create(Session, String)
    • تم حذف Session.createGltfEntity(GltfModel, Pose) واستبداله بـ GltfModelEntity.create(Session, GltfModel, Pose)
    • تم حذف Session.createGltfModelResource(String) واستبداله بـ GltfModel.create(Session, String)
    • تم حذف Session.createInteractableComponent(Executor, InputEventListener) واستبداله بـ InteractableComponent.create(Session, Executor, InputEventListener)
    • تم حذف Session.createMovableComponent(Boolean, Boolean, Set<AnchorPlacement>, Boolean) واستبداله بـ MovableComponent.create(Session, Boolean, Boolean, Set<AnchorPlacement>, Boolean)
    • تم حذف Session.createPanelEntity(View, Dimensions, Dimensions, String, Pose) واستبداله بـ PanelEntity.create(Session, View, Dimensions, Dimensions, String, Pose)
    • تم حذف Session.createResizableComponent(Dimensions, Dimensions) واستبداله بـ ResizableComponent.create(Session, Dimensions, Dimensions)
    • تم حذف Session.createStereoSurfaceEntity(Int, Dimensions, Pose) واستبداله بـ StereoSurface.create(Session, Int, Dimensions, Pose)
  • تمت إزالة الطرق المتوقّفة نهائيًا التالية:
    • تم حذف Session.canEmbedActivityPanel(Activity). يمكنك استخدام getSpatialCapabilities.hasCapabilility(SPATIAL_CAPABILITY_EMBED_ACTIVITY) كبديل.
    • تم حذف Session.hasSpatialCapability(Int). تم استبدالها باستخدام getSpatialCapabilities().hasCapability() كطريقة أكثر تجزئة للتحقّق من توفّر إمكانات مكانية، لأنّ getSpatialCapabilities() تعرض الكائن SpatialCapabilities.
    • تم حذف Session.requestFullSpaceMode() واستبداله بـ SpatialEnvironment.requestFullSpaceMode()
    • تم حذف Session.requestHomeSpaceMode() واستبداله بـ SpatialEnvironment.requestHomeSpaceMode()
  • تم نقل Session.setFullSpaceMode(Bundle) وSession.setFullSpaceModeWithEnvironmentInherited(Bundle) إلى دوال الإضافة. يجب أن تضيف ملفات المطوّر عمليات الاستيراد الجديدة للحصول على إذن الوصول:
    • import androidx.xr.scenecore.setFullSpaceMode
    • import androidx.xr.scenecore.setFullSpaceModeWithEnvironmentInherited
  • تم نقل Session.setPreferredAspectRatio(Activity, Float) إلى دالة إضافة. يجب أن تضيف ملفات المطوّر عملية الاستيراد الجديدة للوصول إلى:
    • import androidx.xr.scenecore.setPreferredAspectRatio
  • تم نقل Session.getEntitiesOfType(Class<out T>) وSession.getEntityForRtEntity(RtEntity) إلى دوال الإضافة. يجب أن تضيف ملفات المطوّر عمليات الاستيراد الجديدة للحصول على إذن الوصول:
    • import androidx.xr.scenecore.getEntitiesOfType
    • import androidx.xr.scenecore.getEntityForRtEntity
  • تم حذف Session.unpersistAnchor(Anchor).
  • تم حذف Session.createPersistedAnchorEntity(UUID).

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

  • قد لا يصبح PanelEntity.setCornerRadius() وActivityPanelEntity.setCornerRadius() ساريَين إلا عند نقل اللوحة في المرة التالية، ويمكن التخفيف من ذلك عن طريق نقل اللوحة إلى موضعها الحالي.
  • عند استدعاء BoundsChanged على ActivitySpace، قد لا يتم تعديل بعض ActivityPose بشكل صحيح. سيتم تعديلها في مكالمة OnSpaceUpdated التالية في ‎ActivitySpace

التغييرات التي قد تؤدي إلى أعطال والتغييرات السلوكية

  • سيكون لكل من PanelEntity وActivityPanelEntity نصف قطر تلقائي للزاوية يبلغ 32 بكسل غير مرتبط بالكثافة أو أقل إذا كان عرض اللوحة أو ارتفاعها أقل من 32 بكسل غير مرتبط بالكثافة.

واجهات برمجة التطبيقات والإمكانات الجديدة

  • يقدّم StereoSurface.CanvasShape، ما يتيح إنشاء لوحات عرض Spherical وHemispherical لعرض الوسائط الغامرة.
  • تقبل StereoSurfaceEntity.create() الآن المَعلمة CanvasShape. (يتم تجاهل هذه المَعلمة حاليًا، ولكن سيتم استخدامها في إصدار مستقبلي)
  • لم تعُد StereoSurfaceEntity.create() تقبل المَعلمة Dimensions. يجب أن تتحكّم التطبيقات في حجم لوحة الرسم من خلال ضبط CanvasShape
  • يحتوي StereoSurfaceEntity على عنصر CanvasShape يمكن ضبطه ديناميكيًا.
  • أصبحت StereoSurfaceEntity.dimensions سمة للقراءة فقط، ويجب أن تضبط التطبيقات CanvasShape لتغيير الأبعاد.
  • تسمح السمة StereoSurfaceEntity الآن بإعادة ضبط StereoMode بعد الإنشاء.

التغييرات الأخرى

  • تم خفض الحد الأدنى لـ minSDK في وقت التجميع إلى 24. ستظل جميع واجهات برمجة تطبيقات Jetpack XR تتطلّب المستوى 34 لواجهة برمجة التطبيقات في وقت التشغيل.
  • لم يعُد مصنع الجلسات (Session.create) في SceneCore يطلق هدفًا للحصول على إذن SCENE_UNDERSTANDING. بدلاً من ذلك، يجب أن يطلب تطبيق العميل الأذونات من المستخدم بشكل صريح قبل محاولة إنشاء نقاط الارتكاز. ستتعذّر عملية إنشاء نقاط الارتكاز إذا لم يمنح المستخدم الإذن.

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

  • تم إصلاح getActivitySpacePose() لاحتساب مقياس ActivitySpace من خلال عرض قيم الترجمة بالمترات المعدَّلة بدلاً من عرض المترات غير المعدَّلة دائمًا. يستخدم transformPoseTo الآن أيضًا الوحدات الصحيحة لاحتساب تغييرات الإحداثيات عندما يكون ActivitySpace متضمّنًا في المصدر أو الوجهة.
  • سيتم الآن ضبط skybox على skybox أسود بالكامل كلما تم تمرير الإعدادات المفضَّلة لـ skybox بقيمة فارغة باستخدام setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)). للتراجع إلى إعدادات skybox والهندسة التلقائية للنظام، استخدِم setSpatialEnvironmentPreference(null).

الإصدار ‎1.0.0-alpha01

‫12 ديسمبر 2024

تم طرح androidx.xr.scenecore:scenecore-* 1.0.0-alpha01.

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

  • SpatialEnvironment: يمكنك إنشاء تجارب غامرة بالكامل باستخدام صورة skybox و/أو هندسة نموذج ثلاثي الأبعاد كخلفية لمشهد الواقع الممتد في بيئتك. يمكنك أيضًا تفعيل ميزة "الرؤية من خلال سماعة الرأس" لدمج المشهد الافتراضي مع محيط المستخدم في العالم الحقيقي.
  • ‫PanelEntity: يمكنك إضافة محتوى ثنائي الأبعاد إلى مشاهدك الثلاثية الأبعاد من خلال تضمين تصميمات وأنشطة Android العادية في لوحات مكانية يمكن أن تطفو أو يتم تثبيتها على أسطح في العالم الحقيقي.
  • GltfModelEntity: يمكنك وضع تصاميم ثلاثية الأبعاد وتحريكها والتفاعل معها في المشهد. تتوافق SceneCore مع تنسيق ملف glTF لتسهيل الدمج مع التصاميم الحالية.
  • SpatialAudio: يمكنك إضافة مصادر صوتية محيطة وموضعية إلى المشهد الثلاثي الأبعاد للحصول على صوت مكاني غامر تمامًا.
  • StereoSurfaceEntity: تتيح SceneCore توجيه المحتوى المعروض على مساحة عرض Android إلى العين اليسرى أو اليمنى. يمكن استخدام هذه السمة لعرض محتوى مجسّم بتنسيق جنبًا إلى جنب أو من أعلى إلى أسفل، مثل الصور المجسّمة أو الفيديو الثلاثي الأبعاد أو واجهات المستخدم الأخرى التي يتم عرضها بشكل ديناميكي. يجب أن تستخدم التطبيقات MediaPlayer أو ExoPlayer لفك ترميز الفيديو.
  • نظام المكوّنات: يوفّر SceneCore نظام مكوّنات قويًا ومرنًا لإضافة إمكانات إلى محتوى الواقع الممتد، بما في ذلك وسائل مساعدة للمستخدمين لنقل النماذج واللوحات وتغيير حجمها والتفاعل معها.
  • نقطة الربط: عند تفعيل ميزة "المرور"، يمكنك ربط اللوحات والنماذج بالأسطح الفعلية، ما يتيح للمستخدمين دمج المحتوى الافتراضي بسلاسة في بيئتهم الواقعية.
  • وضعية المستخدم: الوصول إلى الموقع الجغرافي للمستخدم في المشهد الافتراضي لتوجيه المحتوى حول موضع المستخدم
  • SpatialCapabilities: يمكنك إنشاء تطبيقات قابلة للتكيّف بالكامل تستفيد من الإمكانات المكانية عند توفّرها، مثل تحديد موضع المحتوى ثلاثي الأبعاد لواجهة المستخدم. بالإضافة إلى ذلك، يمكن لتطبيقك مراقبة التغييرات في الإمكانات أثناء تنفيذه، وذلك لتعديل التجربة استنادًا إلى طريقة استخدام المستخدم لجهاز Android XR.

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

  • يجب حاليًا استخدام الإصدار 30 من minSDK لاستخدام Jetpack SceneCore. كحلّ بديل، أضِف إدخال البيان التالي <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> لتتمكّن من الإنشاء والتشغيل باستخدام minSDK 23.
  • يمكن أن تصبح الجلسة غير صالحة في مواقف مختلفة تؤدي إلى إعادة إنشاء النشاط تلقائيًا، بما في ذلك تغيير حجم لوحة رئيسية، وتوصيل الأجهزة الطرفية، والتبديل بين الوضعَين الفاتح والداكن. إذا واجهت مشاكل في إبطال الجلسة، تتضمّن الحلول البديلة عدم إمكانية تغيير حجم اللوحة الرئيسية، أو استخدام عنصر لوحة ديناميكية، أو إيقاف إعادة إنشاء النشاط لتغييرات إعدادات معيّنة، أو إيقاف تغييرات سمات الوضع الداكن/الفاتح.
  • لا تتوافق المكوّنات القابلة للنقل وتغيير الحجم مع GltfEntity.
  • لا يمكن استخدام Entity.getSize() على GltfEntity.
  • يجب أن تطلب تطبيقات Jetpack XR الإذن android.permission.SCENE_UNDERSTANDING في ملف AndroidManifest.
  • لا يمكن إنشاء جلسة إلا على جهاز Android XR. في الوقت الحالي، إذا أنشأت جلسة وحاولت استخدامها على جهاز Android XR غير متوافق، سيظهر لك الخطأ RuntimeException.
  • لا يؤدي ضبط skybox على القيمة null من خلال ‎ `SpatialEnvironment.setSpatialEnvironmentPreference() إلى إنشاء skybox أسود ثابت كما هو موضّح في المستندات. وقد يؤدي ذلك إلى استخدام skybox التلقائي للنظام أو عدم إجراء أي تغيير على skybox الحالي.
  • على عملاء SceneCore إضافة implementation(“com.google.guava:listenablefuture-1.0”) إلى إعدادات Gradle لتبعيات التطبيق. في إصدار مستقبلي، ستتضمّن حزمة scenecore هذه المكتبة كعنصر تابع api، وبالتالي لن يحتاج العملاء إلى تعريفها بشكل صريح.
  • تتضمّن SceneCore بشكل خاطئ com.google.guava:guava-31.1-android وcom.google.protobuf:protobuf-javalite كاعتمادات متعدية. إذا نتج عن ذلك أخطاء مكرّرة في الفئة في الإصدار، يمكن استبعاد هذين العنصرَين التابعَين بأمان.
  • إذا كان تطبيقك يستخدم SceneCore وفعّلت ProGuard، سيتعطّل التطبيق عند إنشاء Session. كحلّ بديل، يمكنك إيقاف ProGuard. يمكنك الاطّلاع على هذا الدليل لمعرفة المزيد من المعلومات حول كيفية تفعيل ProGuard.