Jetpack SceneCore
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
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
को कॉल करने पर, हो सकता है कि कुछActivityPose
s को सही तरीके से अपडेट न किया गया हो. इसे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 को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.