Jetpack SceneCore

3D कॉन्टेंट की मदद से, Android XR के सीन ग्राफ़ को बनाएं और उसमें बदलाव करें.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
24 सितंबर, 2025 - - - 1.0.0-alpha07

डिपेंडेंसी का एलान करना

XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

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

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07"

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

Kotlin

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

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07")

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

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

वर्शन 1.0

वर्शन 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 से बदल दिया गया है. यह SpatialModeChangedListener के बजाय Consumer<SpatialModeChangeEvent> लेता है. setSpatialModeChangedListener अब वैकल्पिक तौर पर, एक्ज़ीक्यूटर को इनपुट के तौर पर ले सकता है. (I62080, b/428721695, b/422215745)
  • ActivityPanelEntity.startActivity (I64344, b/430332856, b/430333040) से bundle पैरामीटर हटाया गया
  • 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_ प्रीफ़िक्स जोड़ा.
    • SurfaceEntity.SuperSampling.{$values} ने SUPER_SAMPLING_ प्रीफ़िक्स जोड़ा
    • SurfaceEntity.StereoMode.{values} ने STEREO_MODE_ प्रीफ़िक्स जोड़ा
    • SurfaceEntity.ContentColorMetadata.maxCLL का नाम बदलकर maxContentLightLevel कर दिया गया (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 फ़ाइल में टॉप-लेवल के तरीकों के तौर पर ले जाया गया है. ये सेशन को पहले पैरामीटर के तौर पर लेते हैं (I64a2c, b/437186050)
  • GroupEntity फ़ैक्ट्री अब Entity के बजाय GroupEntity टाइप दिखाता है. (I66042)

गड़बड़ियां ठीक की गईं

  • जब किसी एंटिटी इंस्टेंस का इस्तेमाल डिस्पोज़ करने के बाद किया जाता है, तब IllegalStateException को थ्रो करें. (I90990, b/427314036, b/432063442)

वर्शन 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 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • पैनल की इकाइयों और SurfaceEntities में, Perceived Resolution API जोड़ा गया. (I118f6)
  • PerceivedResolution HSM में गतिविधि के मुख्य पैनल के रिज़ॉल्यूशन पर नज़र रखने के लिए, Scene.kt में कॉलबैक के तरीके जोड़े गए. (I58084)
  • SurfaceEntity - वीडियो बनाते समय सुपर सैंपलिंग का अनुरोध करने के लिए, ऐप्लिकेशन में सहायता जोड़ी गई. इससे ऐप्लिकेशन, एंटी-एलियासिंग के लिए सुपर सैंपलिंग फ़िल्टर का इस्तेमाल कर पाते हैं. (I06913)
  • ActivitySpace में recommendedContentBoxInFullSpace प्रॉपर्टी जोड़ी गई. यह फ़ुल स्पेस मोड में, कॉन्टेंट को रखने के लिए सुझाया गया बॉक्स दिखाता है. (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 तरीकों को निलंबित किए जा सकने वाले फ़ंक्शन में बदल दिया गया है. साथ ही, String के बजाय Uri या Path स्वीकार करने के लिए, क्रिएट पैरामीटर में बदलाव किया गया है. (Id8883) (I0d247), (I25706)
  • SpatialEnvironment.requestFullSpaceMode और SpatialEnvironment.requestHomeSpaceMode को सीन में ले जाया गया. उदाहरण के लिए, session.scene.spatialEnvironment.requestFullSpaceMode() के बजाय session.scene.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)
  • SpatialPointerComponent में SpatialPointerIcon अब नल नहीं है. सिस्टम के डिफ़ॉल्ट पॉइंटर आइकॉन का इस्तेमाल करने के लिए, शून्य के बजाय SpatialPointerIcon.DEFAULT का इस्तेमाल करें. (I416d2)
  • androidx.xr.scenecore.AnchorEntity.getState() को सिर्फ़ देखने की अनुमति वाली प्रॉपर्टी से बदल दिया गया है. AnchorEntity.create() तरीके के पैरामीटर के नाम बदले गए हैं, ताकि उन्हें आसानी से समझा जा सके. लिसनर को सेट करने और जोड़ने के लिए, AnchorEntity के तरीकों में, लिसनर को आखिरी आर्ग्युमेंट में ले जाया गया है, ताकि ट्रेलिंग लैम्डा चालू किए जा सकें. AnchorEntity के लिए androidx.xr.scenecore.OnStateChangedListener को Consumer<AnchorEntity.State> से बदला गया. (I472e0)
  • GltfModelEntity.getAnimationState() अब एक प्रॉपर्टी है. (I10b29)
  • ActivitySpace.getBounds() को प्रॉपर्टी से बदला गया. ActivitySpace.addBoundsChangedListener का नाम बदलकर ActivitySpace.addOnBoundsChangedListener कर दिया गया. ActivitySpace.setOnSpaceUpdatedListener को add/remove तरीकों से बदल दिया गया है. (I4c956)
  • AnchorPlacement: planeTypeFilter का नाम बदलकर anchorablePlaneOrientations कर दिया गया है. साथ ही, planeSemanticFilter का नाम बदलकर anchorablePlaneSemanticTypes कर दिया गया है. AnchorEntity या ActivitySpace में MovableComponent जोड़ने पर, गलत वैल्यू मिलेगी. MoveListener का नाम बदलकर EntityMoveListener shouldDisposeParentAnchor कर दिया गया है. EntityMoveListener shouldDisposeParentAnchor का नाम बदलकर disposeParentOnReAnchor systemMovable कर दिया गया है. create फ़ंक्शन से disposeParentOnReAnchor systemMovable को हटा दिया गया है. अब इसकी जगह creeateCustomMovable, createSystemMovable, और createAnchorable का इस्तेमाल किया जाता है (If11c4)
  • SurfaceEntity.featherRadiusX/Y को हटा दिया गया है और EdgeFeatheringParams क्लास कॉन्सेप्ट को जोड़ दिया गया है. (Ic78fc)
  • PanelEntity.enablePanelDepthTest() तरीके को panelClippingConfig प्रॉपर्टी से बदल दिया गया है. डेप्थ-टेस्टिंग की सुविधा चालू करने के लिए, Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true) पर सेट करें या इसे बंद करने के लिए, PanelClippingConfig(isDepthTestEnabled = false) पर सेट करें. (I0cbe0)
  • Scene.mainPanelEntity अब PanelEntity के बजाय MainPanelEntity टाइप का है (I7125a)
  • Scene के setFullSpaceMode तरीके का नाम बदलकर configureBundleForFullSpaceModeLaunch और setFullSpaceModeWithEnvironmentInherited तरीके का नाम बदलकर configureBundleForFullSpaceModeLaunchWithEnvironmentInherited कर दिया गया है. (I0cbe0) (I0cbe0)
  • SpatialVisibility की UNKNOWN, OUTSIDE_FOV, PARTIALLY_WITHIN_FOV, और WITHIN_FOV वैल्यू के नाम बदलकर, SPATIAL_VISIBILITY_UNKNOWN, SPATIAL_VISIBILITY_OUTSIDE_FIELD_OF_VIEW, SPATIAL_VISIBILITY_PARTIALLY_WITHIN_FIELD_OF_VIEW, और SPATIAL_VISIBILITY_WITHIN_FIELD_OF_VIEW कर दिए गए हैं (Ie7e8c)
  • SpatialVisibility क्लास को सार्वजनिक ऑब्जेक्ट से बदल दिया गया है. इसमें कॉन्स्ट इंट वैल्यू हैं. setSpatialVisibilityChangedListener अब Consumer<SpatialVisibility> के बजाय Consumer<Int> स्वीकार करता है (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 टाइप को String से बदलकर CharSequence कर दिया गया है. (Ie59be)
  • Session.create और Session.configure अब ज़रूरी अनुमतियां न मिलने पर, SessionCreatePermissionsNotGranted या SessionConfigurePermissionsNotGranted के बजाय SecurityException दिखाता है. (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)
  • androidx.xr.scenecore और androidx.xr.compose के लिए, minSDK को घटाकर 24 कर दिया गया है. XR पैकेज के लिए, अब भी रनटाइम में API 34 की ज़रूरत होती है. (I17224)
  • Jetpack XR के सभी पैकेज पर लगी RequiresApi(34) पाबंदी हटा दी गई है. यह पाबंदी ज़रूरी नहीं थी, क्योंकि फ़िलहाल Jetpack XR सिर्फ़ उन डिवाइसों पर उपलब्ध है जिनमें एपीआई लेवल 34 या उसके बाद का वर्शन है. (Iae0f8)
  • मुख्य SceneCore आर्टफ़ैक्ट (xr:scenecore:scenecore) में सिर्फ़ Kotlin-स्टाइल वाले एसिंक एपीआई शामिल होंगे. Java डेवलपर, xr:scenecore:scenecore-guava लाइब्रेरी पर भरोसा कर सकते हैं, ताकि वे काम करने वाले एपीआई को ऐक्सेस कर सकें. (If221b)
  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट इस्तेमाल करने के लिए, KGP 2.0.0 या इसके बाद के वर्शन की ज़रूरत होती है (Idb6b5)
  • यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही तरीके से इस्तेमाल करने के लिए, कंपाइलर के इस तर्क का इस्तेमाल करना चाहिए: -Xjspecify-annotations=strict (यह Kotlin कंपाइलर के वर्शन 2.1.0 से डिफ़ॉल्ट रूप से शुरू होता है) (Ia8420)
  • ListenableFuture वैल्यू देने वाले सभी एसिंक मैथड को, Kotlin के सस्पेंड फ़ंक्शन से बदल दिया गया है. Java डेवलपर जो Kotlin के सस्पेंड फ़ंक्शन के बजाय, ListenableFuture पर आधारित एसिंक तरीकों का इस्तेमाल करना चाहते हैं उन्हें अब :xr:scenecore-scenecore-guava में एक्सटेंशन फ़ंक्शन का इस्तेमाल करना होगा. उदाहरण के लिए, GuavaExrImage में Guava के बराबर ExrImage एसिंक फ़ंक्शन, GuavaScenePose में Guava के बराबर ScenePose एसिंक फ़ंक्शन, GuavaGltfModel में Guava-equivalent GltfModel एसिंक फ़ंक्शन वगैरह शामिल हैं. (If7283) (I0af60) (If7283) (Ia8515) (I4efdf) (I54bbf) (I3467a) (I82a33)

गड़बड़ियां ठीक की गईं

  • Jetpack XR Scenecore ProGuard के नियम को अपडेट किया गया है, ताकि छोटे किए गए क्लाइंट के लिए AbstractMethodError को रोका जा सके. (I91a01)
  • Jetpack XR SceneCore के लिए Proguard minification की सुविधा को बेहतर बनाने के लिए, कुछ और सुधार किए गए हैं (I4f47e)
  • उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, InteractableComponent के hitPosition पर मौजूद HitInfo के InputEvent पर hitPosition के क्रैश होने की वजह से क्रैश हो सकता था. ऐसा तब होता था, जब सिस्टम से मिला hitPosition शून्य होता था (I7a695)
  • कॉन्फ़िगरेशन *मोड वैल्यू के नाम बदल दिए गए हैं, ताकि उनके काम करने के तरीके के बारे में पता चल सके. (I6d247)
  • SceneCore TestApp में, FOV और HitTest से जुड़ी समस्याएं ठीक की गईं. (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 मेनिफ़ेस्ट में android:enableOnBackInvokedCallback= "true" तय करना होगा.
  • StereoSurfaceEntity अब दो नई StereoMode वैल्यू: MULTIVIEW_LEFT_PRIMARY और MULTIVIEW_RIGHT_PRIMARY के ज़रिए, MV-HEVC फ़ॉर्मैट में वीडियो चलाने की सुविधा देता है.
  • PanelEntity.setSize और PanelEntity.getSize अब पैरंट स्पेस में साइज़ दिखाते हैं.
  • Entity.setPose, Entity.getPose, Entity.setScale, Entity.getScale, Entity.setAlpha, और Entity.getAlpha अब नया पैरामीटर relativeTo लेते हैं. इससे अलग-अलग स्पेस के हिसाब से वैल्यू को पाने/सेट करने की अनुमति मिलती है. इसके लिए, Parent, Activity, और Real World spaces वैल्यू का इस्तेमाल किया जा सकता है. इस पैरामीटर की डिफ़ॉल्ट वैल्यू Parent होती है.
  • SessionExt.kt में जोड़े गए Spatial Visibility Callback एक्सटेंशन के तरीके. इनका इस्तेमाल यह मॉनिटर करने के लिए किया जाता है कि सीन का कॉन्टेंट, उपयोगकर्ता के फ़ील्ड ऑफ़ व्यू में कब आता है और कब बाहर जाता है.
  • setPointSourceParams को SpatialAudioTrack में जोड़ दिया गया है. इससे ट्रैक बनने के बाद भी पैरामीटर अपडेट किए जा सकते हैं.
  • Scenecore एपीआई के रेफ़रंस के साथ एक नई क्लास, सीन जोड़ी गई है. सीन को सेशन की एक्सटेंशन प्रॉपर्टी के तौर पर ऐक्सेस किया जा सकेगा. SessionExt के अंदर मौजूद फ़ंक्शन को सीन में ले जाया गया है. इसलिए, इंपोर्ट को अडजस्ट करना होगा. उदाहरण के लिए, SessionExt.getScene(session).addSpatialCapababilitiesChangedListener बनाम SessionExt.addSpatialCapabilitiesChangedListener.
  • ActivityPose.hitTestAsync को जोड़ा गया है. इससे वर्चुअल कॉन्टेंट के ख़िलाफ़ hitTest को चालू किया जा सकेगा.
  • नया कॉम्पोनेंट टाइप SpatialPointerComponent जोड़ा गया है. इससे क्लाइंट, पॉइंटर के लिए रेंडर किए गए आइकॉन के बारे में बता सकते हैं या आइकॉन को बंद कर सकते हैं. फ़िलहाल, इस कॉम्पोनेंट को सिर्फ़ PanelEntity इंस्टेंस से जोड़ा जा सकता है.
  • पेश है नया PanelEntity फ़ैक्ट्री, जो पैनल के डाइमेंशन को मीटर या पिक्सल में लेता है. पैनल के लिए, डाइमेंशन टाइप के दो पैरामीटर लेने वाली पुरानी PanelEntity फ़ैक्ट्री को हटाया गया.

एपीआई में हुए बदलाव

  • Jetpack XR के सभी पैकेज पर लगी RequiresApi(34) पाबंदी हटा दी गई है. यह पाबंदी ज़रूरी नहीं थी, क्योंकि फ़िलहाल Jetpack XR सिर्फ़ उन डिवाइसों पर उपलब्ध है जिनमें एपीआई लेवल 34 या उसके बाद का वर्शन है. (Iae0f8)
  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट इस्तेमाल करने के लिए, KGP 2.0.0 या इसके बाद के वर्शन की ज़रूरत होती है (Idb6b5)
  • PermissionHelper क्लास को हटा दिया गया है.
  • PanelEntity.getPixelDensity का अब इस्तेमाल नहीं किया जा सकता.
  • PanelEntity.setPixelDimensions और PanelEntity.getPixelDimension को हटा दिया गया है. इनकी जगह setSizeInPixels और getSizeInPixels का इस्तेमाल किया जा रहा है.
  • Entity.getActivitySpaceAlpha के भाषा पैक को हटाया गया. इसे Entity.getAlpha(Space.Activity) से बदला जा सकता है.
  • Entity.getWorldSpaceScale के भाषा पैक को हटाया गया. इसे Entity.getScale(Space.REAL\_WORLD) से बदला जा सकता है.
  • SceneCore में मौजूद Session क्लास को मिटा दिया गया है. अब इसकी जगह XR Runtime में मौजूद Session क्लास का इस्तेमाल किया जाएगा.
  • StereoSurfaceEntity का नाम बदलकर SurfaceEntity कर दिया गया है.
  • Entity.setSize और Entity.getSize को हटा दिया गया है. साथ ही, इन दोनों के तरीके PanelEntity में जोड़ दिए गए हैं.
  • PointSourceAttributes का नाम बदलकर PointSourceParams कर दिया गया है.
  • SpatializerConstants.SOURCE\_TYPE\_BYPASS का नाम बदलकर SpatializerConstants.SOURCE\_TYPE\_DEFAULT कर दिया गया है.
  • PointSourceParams इकाई के ऐक्सेस लेवल को सार्वजनिक से बदलकर, संगठन के लिए उपलब्ध कर दिया गया है.
  • AnchorEntity.create के लिए, अब Session.configure() में PlaneTrackingMode को कॉन्फ़िगर करना ज़रूरी है.
  • SpatialUser एपीआई के लिए, अब Session.configure() में HeadTrackingMode को कॉन्फ़िगर करना ज़रूरी है.
  • ResizableComponent अटैच न होने पर, यह गड़बड़ी के लेवल के लॉग के बजाय सूचना के लेवल का लॉग देगा.
  • Fov क्लास अब एक सामान्य Kotlin क्लास है.
  • हर कॉन्क्रीट इकाई के टाइप को उसकी अपनी फ़ाइल में रखने के लिए, Entity.kt को अलग करें.
  • नया PanelEntity बनाते समय, ज़्यादातर व्यू को FrameLayout के साथ फिर से जोड़ा जाएगा. इससे, Spatial Panels के साथ LayoutInspector का इस्तेमाल करना आसान हो जाता है.
  • फ़िलहाल इस्तेमाल किया जा रहा XrExtensions इंस्टेंस, अब प्लैटफ़ॉर्म पर रजिस्टर हो गया है. इससे ऐप्लिकेशन को डीबग करने में मदद मिलेगी.

गड़बड़ियां ठीक की गईं

  • ऐसी समस्या को ठीक किया गया है जिसकी वजह से, MovableComponent और AnchorPlacement वाले PanelEntity को दूसरी जगह ले जाने पर वह क्रैश हो जाता था
  • उस समस्या को ठीक कर दिया गया है जिसमें ResizableComponent, onResizeStart कॉलबैक में पुराने साइज़ दिखा रहा था.
  • JxrPlatformAdapterAxr के dispose() को कई बार कॉल करने पर होने वाली क्रैश की समस्या को ठीक किया गया.

वर्शन 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 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • Jetpack XR कोड के लिए, Proguard minification की सुविधा अब उपलब्ध है

गड़बड़ियां ठीक की गईं

  • Jetpack XR SceneCore के लिए Proguard minification की सुविधा को बेहतर बनाने के लिए, कुछ और गड़बड़ियां ठीक की गई हैं (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() तब तक लागू नहीं हो सकते, जब तक पैनल को अगली बार मूव नहीं किया जाता. पैनल को उसकी मौजूदा जगह पर ले जाकर, इस समस्या को कम किया जा सकता है
  • ActivitySpace पर BoundsChanged को कॉल करने पर, हो सकता है कि कुछ ActivityPoses को सही तरीके से अपडेट न किया गया हो. इसे ActivitySpace को होने वाली OnSpaceUpdated कॉल में अपडेट किया जाएगा

नियमों का उल्लंघन और व्यवहार में बदलाव

  • अगर पैनल की चौड़ाई या ऊंचाई 32dp से कम है, तो PanelEntity और ActivityPanelEntity का डिफ़ॉल्ट कॉर्नर रेडियस 32dp या इससे कम होगा

नए एपीआई और सुविधाएँ

  • StereoSurface.CanvasShape पेश किया गया है. इससे इमर्सिव मीडिया रेंडर करने के लिए, Spherical और Hemispherical कैनवस बनाए जा सकते हैं.
  • StereoSurfaceEntity.create() अब CanvasShape पैरामीटर स्वीकार करता है. (फ़िलहाल, इस पैरामीटर को अनदेखा किया जाता है. हालांकि, आने वाली रिलीज़ में इसका इस्तेमाल किया जाएगा)
  • StereoSurfaceEntity.create() अब Dimensions पैरामीटर नहीं लेता है. ऐप्लिकेशन को CanvasShape सेट करके, कैनवस के साइज़ को कंट्रोल करना चाहिए
  • StereoSurfaceEntity में CanvasShape सदस्य होता है, जिसे डाइनैमिक रूप से सेट किया जा सकता है.
  • StereoSurfaceEntity.dimensions अब सिर्फ़ पढ़ने के लिए उपलब्ध प्रॉपर्टी है. ऐप्लिकेशन को डाइमेंशन बदलने के लिए, CanvasShape को सेट करना चाहिए.
  • StereoSurfaceEntity की मदद से, अब StereoMode को निर्माण के बाद फिर से सेट किया जा सकता है.

दूसरे बदलाव

  • कंपाइल-टाइम minSDK को 24 पर सेट किया गया. Jetpack XR के सभी एपीआई के लिए, रनटाइम में एपीआई 34 की ज़रूरत होती है.
  • SceneCore का सेशन फ़ैक्ट्री (Session.create), अब SCENE_UNDERSTANDING की अनुमति पाने के लिए इंटेंट लॉन्च नहीं करता है. इसके बजाय, ऐंकर बनाने की कोशिश करने से पहले, क्लाइंट ऐप्लिकेशन को उपयोगकर्ता से साफ़ तौर पर अनुमतियों का अनुरोध करना होगा. अगर उपयोगकर्ता ने अनुमति नहीं दी है, तो ऐंकर नहीं बनाया जा सकेगा.

गड़बड़ियां ठीक की गईं

  • getActivitySpacePose() को ठीक कर दिया गया है, ताकि ActivitySpace स्केल का हिसाब लगाया जा सके. इसके लिए, अनुवाद की वैल्यू को हमेशा बिना स्केल किए गए मीटर के बजाय, स्केल किए गए मीटर में दिखाया जाता है. transformPoseTo अब सोर्स या डेस्टिनेशन में ActivitySpace शामिल होने पर, कोऑर्डिनेट में हुए बदलावों का हिसाब लगाने के लिए सही यूनिट का इस्तेमाल करता है.
  • setSpatialEnvironmentPreference(new SpatialEnvironmentPreference(null, geom)) का इस्तेमाल करके, स्काईबॉक्स की प्राथमिकता को शून्य पर सेट करने पर, स्काईबॉक्स को पूरी तरह से काले रंग के स्काईबॉक्स पर सेट कर दिया जाएगा. सिस्टम के डिफ़ॉल्ट स्काईबॉक्स और ज्यामिति पर वापस जाने के लिए, setSpatialEnvironmentPreference(null). का इस्तेमाल करें

वर्शन 1.0.0-alpha01

12 दिसंबर, 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 रिलीज़ हो गया है.

शुरुआती रिलीज़ की सुविधाएं डेवलपर के लिए Jetpack SceneCore की शुरुआती रिलीज़. यह 3D सीन ग्राफ़ लाइब्रेरी है. इसका इस्तेमाल, इमर्सिव सीन और एनवायरमेंट बनाने और उनमें बदलाव करने के लिए किया जाता है. इस लाइब्रेरी की मदद से, 3D मॉडल और कॉन्टेंट पैनल को एक-दूसरे के हिसाब से और वर्चुअल या असल दुनिया के एनवायरमेंट के हिसाब से रखा और व्यवस्थित किया जा सकता है.

  • SpatialEnvironment: स्काईबॉक्स इमेज और/या 3D मॉडल की ज्यामिति को अपने एनवायरमेंट के XR सीन के बैकड्रॉप के तौर पर इस्तेमाल करके, पूरी तरह से इमर्सिव अनुभव बनाएँ. इसके अलावा, पासथ्रू मोड चालू करें, ताकि आपका वर्चुअल सीन, उपयोगकर्ता के आस-पास की असली दुनिया के साथ इंटिग्रेट हो सके.
  • PanelEntity: स्टैंडर्ड Android लेआउट और गतिविधियों को, स्पेस के हिसाब से बनाए गए पैनल में एम्बेड करके, अपने 3D सीन में 2D कॉन्टेंट जोड़ें. ये पैनल, तैर सकते हैं या इन्हें असल दुनिया की सतहों पर ऐंकर किया जा सकता है.
  • GltfModelEntity: इसकी मदद से, अपने सीन में 3D मॉडल को रखा जा सकता है, उन्हें ऐनिमेट किया जा सकता है, और उनके साथ इंटरैक्ट किया जा सकता है. SceneCore, glTF फ़ाइल फ़ॉर्मैट के साथ काम करता है, ताकि इसे मौजूदा मॉडल के साथ आसानी से इंटिग्रेट किया जा सके.
  • SpatialAudio: पूरी तरह से इमर्सिव और स्पेशल साउंड के लिए, अपने 3D सीन में आस-पास के और पॉइंट ऑडियो सोर्स जोड़ें.
  • StereoSurfaceEntity: SceneCore, Android Surface पर रेंडर किए गए कॉन्टेंट को बाईं/दाईं आंख के हिसाब से रूट करने की सुविधा देता है. इसका इस्तेमाल, स्टीरियोस्कोपिक कॉन्टेंट को साइड-बाय-साइड या टॉप-बॉटम फ़ॉर्मैट में रेंडर करने के लिए किया जा सकता है. जैसे, स्टीरियो फ़ोटो, 3D वीडियो या डाइनैमिक तौर पर रेंडर किए गए अन्य यूज़र इंटरफ़ेस (यूआई). ऐप्लिकेशन को वीडियो डिकोड करने के लिए, MediaPlayer या ExoPlayer का इस्तेमाल करना चाहिए.
  • कॉम्पोनेंट सिस्टम: SceneCore, XR कॉन्टेंट में सुविधाएं जोड़ने के लिए एक मज़बूत और फ़्लेक्सिबल कॉम्पोनेंट सिस्टम उपलब्ध कराता है. इसमें उपयोगकर्ताओं के लिए, मॉडल और पैनल को मूव करने, उनका साइज़ बदलने, और उनसे इंटरैक्ट करने की सुविधाएं शामिल हैं.
  • ऐंकर करना: पासथ्रू की सुविधा चालू होने पर, पैनल और मॉडल को असल चीज़ों से जोड़ा जा सकता है. इससे उपयोगकर्ताओं को, असल दुनिया के माहौल में वर्चुअल कॉन्टेंट को आसानी से इंटिग्रेट करने में मदद मिलती है.
  • उपयोगकर्ता की पोज़िशन: वर्चुअल सीन में उपयोगकर्ता की जगह की जानकारी ऐक्सेस करता है, ताकि आपके कॉन्टेंट को उपयोगकर्ता की पोज़िशन के हिसाब से दिखाया जा सके.
  • SpatialCapabilities: पूरी तरह से अडैप्टिव ऐप्लिकेशन बनाएं. ये ऐप्लिकेशन, उपलब्ध होने पर स्पेस से जुड़ी सुविधाओं का फ़ायदा उठाते हैं. जैसे, यूज़र इंटरफ़ेस (यूआई) कॉन्टेंट की 3D पोज़िशनिंग. इतना ही नहीं, आपका ऐप्लिकेशन चालू रहने के दौरान, सुविधाओं में होने वाले बदलावों पर नज़र रख सकता है. इससे, उपयोगकर्ता के Android XR डिवाइस इस्तेमाल करने के तरीके के आधार पर, ऐप्लिकेशन के अनुभव में बदलाव किया जा सकता है.

ऐसी समस्याएं जिनके बारे में जानकारी पहले से है

  • फ़िलहाल, Jetpack SceneCore का इस्तेमाल करने के लिए, minSDK 30 की ज़रूरत होती है. इस समस्या को हल करने के लिए, नीचे दी गई मेनिफ़ेस्ट एंट्री <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> जोड़ें, ताकि कम से कम SDK वर्शन 23 के साथ ऐप्लिकेशन बनाया और चलाया जा सके.
  • सेशन कई स्थितियों में अमान्य हो सकता है. इन स्थितियों में गतिविधि अपने-आप फिर से शुरू हो जाती है. जैसे, मुख्य पैनल का साइज़ बदलना, पेरिफ़ेरल कनेक्ट करना, और लाइट और डार्क मोड के बीच स्विच करना. अगर आपको सेशन अमान्य होने से जुड़ी समस्याएं आती हैं, तो इन तरीकों को आज़माएं: मुख्य पैनल का साइज़ बदलने की सुविधा बंद करें, डाइनैमिक पैनल इकाई का इस्तेमाल करें, कॉन्फ़िगरेशन में कुछ बदलावों के लिए गतिविधि फिर से बनाने की सुविधा बंद करें या लाइट/डार्क मोड थीम बदलने की सुविधा बंद करें.
  • GltfEntity पर, मूव किए जा सकने वाले और साइज़ बदलने वाले कॉम्पोनेंट काम नहीं करते.
  • GltfEntity पर Entity.getSize() काम नहीं करता.
  • Jetpack XR ऐप्लिकेशन को AndroidManifest में android.permission.SCENE_UNDERSTANDING अनुमति का अनुरोध करना होगा.
  • सेशन बनाने की सुविधा सिर्फ़ Android XR डिवाइस पर उपलब्ध है. फ़िलहाल, अगर आपने कोई सेशन बनाया है और उसे Android XR डिवाइस के अलावा किसी दूसरे डिवाइस पर इस्तेमाल करने की कोशिश की है, तो आपको RuntimeException मिलेगा.
  • `SpatialEnvironment.setSpatialEnvironmentPreference()` के ज़रिए स्काईबॉक्स को null पर सेट करने से, दस्तावेज़ में बताए गए तरीके के मुताबिक स्काईबॉक्स पूरी तरह से काला नहीं होता. इससे सिस्टम का डिफ़ॉल्ट स्काईबॉक्स लागू हो सकता है या मौजूदा स्काईबॉक्स में कोई बदलाव नहीं होगा.
  • SceneCore क्लाइंट को अपने ऐप्लिकेशन की डिपेंडेंसी के लिए, अपने Gradle कॉन्फ़िगरेशन में implementation(“com.google.guava:listenablefuture-1.0”) जोड़ना चाहिए. आने वाले समय में, scenecore इस लाइब्रेरी को api डिपेंडेंसी के तौर पर शामिल करेगा. इसलिए, क्लाइंट को इसे साफ़ तौर पर बताने की ज़रूरत नहीं होगी.
  • SceneCore, com.google.guava:guava-31.1-android और com.google.protobuf:protobuf-javalite को ट्रांज़िटिव डिपेंडेंसी के तौर पर शामिल करता है. अगर इसकी वजह से आपके बिल्ड में डुप्लीकेट क्लास की गड़बड़ियां होती हैं, तो इन दो डिपेंडेंसी को सुरक्षित तरीके से हटाया जा सकता है.
  • अगर आपका ऐप्लिकेशन SceneCore का इस्तेमाल करता है और ProGuard को चालू करता है, तो सेशन बनाते समय वह क्रैश हो जाएगा. इस समस्या को हल करने के लिए, ProGuard को बंद करें. ProGuard को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.