Jetpack SceneCore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 22 अक्टूबर, 2025 | - | - | - | 1.0.0-alpha08 |
डिपेंडेंसी का एलान करना
XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha08" // Optional dependencies for asynchronous conversions implementation "androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha08") // Optional dependencies for asynchronous conversions implementation("androidx.xr.scenecore:scenecore-guava:1.0.0-alpha08") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha08") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 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)- पढ़ने में आसानी के लिए,
SceneCoreTextureSamplerकॉन्स्टेंट अपडेट किए गए हैं. उदाहरण के लिए,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में, परसीव्ड रिज़ॉल्यूशन एपीआई जोड़ा गया. (I118f6) PerceivedResolutionHSM में गतिविधि के मुख्य पैनल के रिज़ॉल्यूशन पर नज़र रखने के लिए, 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 कर दिया गया है. एक्सआर पैकेज के लिए, अब भी रनटाइम में 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)
SceneCoreTestApp में 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 स्पेस वैल्यू का इस्तेमाल किया जा सकता है. इस पैरामीटर की डिफ़ॉल्ट वैल्यू 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.setFullSpaceModeimport 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.getEntitiesOfTypeimport androidx.xr.scenecore.getEntityForRtEntity
Session.unpersistAnchor(Anchor)को मिटा दिया गया हैSession.createPersistedAnchorEntity(UUID)को मिटा दिया गया है
ऐसी समस्याएं जिनके बारे में जानकारी पहले से है
PanelEntity.setCornerRadius()औरActivityPanelEntity.setCornerRadius()तब तक लागू नहीं हो सकते, जब तक पैनल को अगली बार मूव नहीं किया जाता. पैनल को उसकी मौजूदा जगह पर ले जाकर, इस समस्या को कम किया जा सकता हैActivitySpaceपरBoundsChangedको कॉल करने पर, हो सकता है कि कुछActivityPoseसही तरीके से अपडेट न हुए हों. इसे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 को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.