Jetpack SceneCore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
|---|---|---|---|---|
| 07 अक्टूबर, 2026 | - | 1.0.0-rc02 | - | - |
डिपेंडेंसी का एलान करना
XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-rc02" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-rc02" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-rc02") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-rc02") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
संस्करण 1.0
वर्शन 1.0.0-rc02
07 अक्टूबर, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc02 रिलीज़ हो गया है. वर्शन 1.0.0-rc02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
SessionExtमें मौजूदperceptionRuntimeCacheको हटाकर, मेमोरी लीक की समस्या को ठीक किया गया है. साथ ही,Sessionइंस्टेंस से सीधे तौर परPerceptionRuntimeको वापस पाने के लिए, इसे फिर से फ़ैक्टर किया गया है. (Ie35b1)OpenXRनेटिव हैंडल के लिएapplicationContextका इस्तेमाल करके, कॉन्टेक्स्ट लीक होने की समस्या को ठीक किया गया है. इससे यह पक्का किया जा सकेगा कि नेटिव रनटाइम,Activityकॉन्टेक्स्ट के रेफ़रंस को होल्ड न करे. (Ie35b1)- सही सिंक्रनाइज़ेशन और इनिशियलाइज़ेशन लॉकिंग की सुविधा जोड़कर,
XrInstanceManagerमें रेस कंडीशन की समस्या ठीक की गई. (Ie35b1) ReferenceCleanerको ठीक किया गया है, ताकि क्लीनिंग ऐक्शन के डी-रजिस्ट्रेशन को सपोर्ट किया जा सके. साथ ही, यह पक्का किया गया है किEntityक्लीनअप ऐक्शन,dispose()के दौरान साफ़ तौर पर चलाए जाएं. इससे कचरा इकट्ठा होने पर, डुप्लीकेट एक्ज़ीक्यूशन को रोका जा सकेगा. (Ie35b1)Sceneमें मेमोरी लीक की समस्या को ठीक किया गया है. इसके लिए,SessionExtसेsceneCacheको हटाया गया है. साथ ही,sessionConnectorsसे सीधे तौर पर इंस्टेंस फ़ेच करने के लिए,Sceneको फिर से फ़ैक्टराइज़ किया गया है. (Ie35b1)
वर्शन 1.0.0-rc01
09 सितंबर, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
xr:scenecore:scenecore-openxrलाइब्रेरी में जोड़ा गया. (Ic49f2)- 1.0.0 स्टेबल रिलीज़ से पहले, कई ऐसे एपीआई हटा दिए गए हैं जो अब काम नहीं करते.
गड़बड़ियां ठीक की गईं
- मेमोरी लीक से जुड़ी गड़बड़ी को ठीक किया गया है. इस गड़बड़ी में, ऐक्टिविटी के बंद होने पर भी सिस्टम, ऐक्टिविटी के रेफ़रंस को बनाए रखता था. (I6dcd7)
व्यवहार में बदलाव
- SceneCore से logcat आउटपुट हटाया गया. (I10c3c)
वर्शन 1.0.0-beta02
12 अगस्त, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta02 रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- अगर पैरंट इकाई को ट्रैश में डाल दिया गया है, तो � will return
null.toMoveEvent()(Ia7a1b)
वर्शन 1.0.0-beta01
15 जुलाई, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
GltfAnimationऔरSpatialGltfModelAnimationएपीआई को एक्सपेरिमेंटल के तौर पर मार्क किया गया है. कुछ प्रॉपर्टी को गेटर में बदल दिया गया है. (I8d689, b/524771027)- सार्वजनिक
MovableComponent.createTrackingMovableफ़ैक्ट्री मेथड को हटा दिया गया है. (I00912, b/477169015) - Session.create को suspend फ़ंक्शन में बदल दिया गया है. (I5d27f)
ActivitySpaceऔरAnchorSpace, अब एक हीSpaceEntityक्लास का इस्तेमाल करते हैं. इसमें उन इकाइयों के लिए सामान्य व्यवहार शामिल होता है जिनकी पोज़िशन को सिस्टम कंट्रोल करता है (I506ec, b/513619219)AnchorEntityकोAnchorSpace(Ifa95e, b/513619219) के तौर पर अपडेट किया गया- यह सार्वजनिक टेस्ट एपीआई
SoundEffectPoolComponentTesterउपलब्ध कराता है. (I87df7, b/498104417) SurfaceEntity.Shape.Quadकंस्ट्रक्टर में एक वैकल्पिकcornerRadiusपैरामीटर जोड़ा गया है. साथ ही,cornerRadiusप्रॉपर्टी को सार्वजनिक कर दिया गया है. डेवलपर अब Quad शेप बनाते समय, कॉर्नर रेडियस तय कर सकते हैं. इससे वेSurfaceEntityकैनवस को गोल कोनों के साथ रेंडर कर पाएंगे. साथ ही, मौजूदा Quad के रेडियस के बारे में क्वेरी कर पाएंगे. (Ia7809, b/474681085)- यह सार्वजनिक टेस्ट एपीआई
SpatialAudioTrackBuilderTester,SpatialAudioTrackTester, औरSceneCoreTestRule.getTesterओवरलोड उपलब्ध कराता है. (I378c6, b/496333938) - ARCore के कई टाइप के लिए,
toString()की खास जानकारी को बदलें. इन टाइप का मकसद, डेवलपर को डीबग करने के लिए ज़्यादा जानकारी देना है. इनका इस्तेमाल प्रोडक्शन या शिप किए गए ऐप्लिकेशन में नहीं किया जाना चाहिए.
वर्शन 1.0.0-alpha16
17 जून, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha16 रिलीज़ हो गया है. वर्शन 1.0.0-alpha16 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
CustomMesh.BuilderFromMeshDataऔरCustomMesh.BuilderFromMeshBufferमेंaddVertexData,setIndexData, औरaddSubsetके लिए ओवरलोड जोड़े गए. इन ओवरलोड की मदद से डेवलपर, रॉ डेटा और पैरामीटर को सीधे तौर पर पास कर सकते हैं.जैसे,ByteBuffer,offset,size,topology,indexOffset,indexCount. इसके लिए, उन्हेंByteBufferRegionयाMeshSubsetजैसे इंटरमीडियरी ऑब्जेक्ट में रैप करने की ज़रूरत नहीं होती. (I84d5c)Scene.requestFullSpaceMode()औरScene.requestHomeSpaceMode()का नाम बदलकर, क्रमशःrequestFullSpace()औरrequestHomeSpace()कर दिया गया है. "होम स्पेस मोड" और "फ़ुल स्पेस मोड" से जुड़े अन्य तरीकों और दस्तावेज़ों को भी इसी तरह अपडेट किया गया है. (I45751)- सार्वजनिक टेस्ट एपीआई
PanelEntityTesterऔरMainPanelEntityTester(I961e4) उपलब्ध कराता है SoundEffectPoolComponent(I4a750) मेंpointSourceParamsप्रॉपर्टी जोड़ी जा रही है- यह सार्वजनिक टेस्ट एपीआई
MovableComponentTester(I0c972) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
PointerCaptureComponentTester(Ic0d4f) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
ActivityPanelEntityTester(I837c4) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
ResizableComponentTester(I0a3a4) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
BoundsComponentTester.(Iefd53) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
SpatialMediaPlayerTester(Ia3e09) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
SpatialEnvironmentTester(Icf60f) उपलब्ध कराता है - सार्वजनिक टेस्ट एपीआई
GltfModelTesterऔरSceneCoreTestRule.getGltfModelTesterउपलब्ध कराता है. (I33fcb) - यह सार्वजनिक टेस्ट एपीआई
InteractableComponentTesterउपलब्ध कराता है. (Ia7096) - यह सार्वजनिक टेस्ट एपीआई
SurfaceEntityTesterउपलब्ध कराता है. (Ic0740) - यह
GltfModelEntityTester,TestGltfModelNode, औरTestGltfAnimationके लिए, सार्वजनिक टेस्ट एपीआई उपलब्ध कराता है. (I72c4d) - सार्वजनिक टेस्ट एपीआई
SceneTesterऔरSceneCoreTestRule.sceneTesterउपलब्ध कराता है. (Ib4ec5) - सार्वजनिक टेस्ट एपीआई
PerceptionSpaceTesterऔरSceneCoreTestRule.perceptionSpaceTesterउपलब्ध कराता है. (Icf739) - यह सार्वजनिक टेस्ट एपीआई
MeshEntityTesterउपलब्ध कराता है. (I63801) - यह सार्वजनिक टेस्ट एपीआई
ImageBasedLightingAssetTesterऔरSceneCoreTestRule.getTesterओवरलोड उपलब्ध कराता है. (I57ec4) - यह सार्वजनिक टेस्ट एपीआई
TextureTester(Ia865b) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
PositionalAudioComponentTester(Icd96e) उपलब्ध कराता है - सार्वजनिक टेस्ट एपीआई
SpatialSoundPoolTester(Ia3531) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
SoundEffectPoolTester(If349a) उपलब्ध कराता है - सार्वजनिक टेस्ट एपीआई
ActivitySpaceTesterऔरSceneCoreTestRule.activitySpaceTesterउपलब्ध कराता है. (I2d5c2) - यह सार्वजनिक टेस्ट एपीआई
SpatialWindowTester(I41837) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई
AnchorEntityTester(I68404) उपलब्ध कराता है - यह सार्वजनिक टेस्ट एपीआई इंटरफ़ेस
SceneCoreTestRuleउपलब्ध कराता है. (Ic72d3) PixelDensityक्लास जोड़ा गया है और इसेScene#virtualPixelDensityके ज़रिए दिखाया गया है. इससेActivitySpaceमें सटीक फ़िज़िकल डाइमेंशन मैपिंग के लिए, हार्डवेयर पर आधारित पिक्सल-पर-मीटर का अनुपात मिलता है. (I0e3ac)- कस्टम मेश बनाने और रेंडर करने के लिए, सार्वजनिक एपीआई जोड़े गए. (I7ad2f)
VertexLayoutएपीआई को अपडेट किया गया है, ताकिVertexBufferLayoutकी सूची का इस्तेमाल किया जा सके. इसमें हरVertexBufferLayout, एक वर्टेक्स बफ़र में मौजूद एट्रिब्यूट के बारे में बताता है. इससे वर्टेक्स डेटा को ज़्यादा आसानी से व्यवस्थित किया जा सकता है. इसमें कस्टम स्ट्राइड और ऑफ़सेट के साथ इंटरलीव किए गए एट्रिब्यूट शामिल हैं. (Ic426b)- यह
MovableComponent.createTrackingMovableउपलब्ध कराता है, ताकि ARCore Trackable को गतिविधि की जगह के हिसाब से पोज़ में बदला जा सके. (I12249) Entity.createमें पैरंट की डिफ़ॉल्ट वैल्यू को अपडेट करके, null पर सेट कर दिया गया है. (Ic3145)Entityको इंटरफ़ेस के बजाय क्लास के तौर पर अपडेट किया गया है. अब यह सभी इकाई टाइप के लिए बेसिक क्लास है. इस बदलाव के तहत,BaseEntityको हटा दिया गया है. (I7fbc9)GltfModel,ExrImage, औरImageBasedLightingAssetअबAutoCloseableको लागू करते हैं, ताकि Kotlin केuseब्लॉक का इस्तेमाल करके, संसाधन को मैनेज किया जा सके. (I1ac79)- स्पेशल एनवायरमेंट लाइटिंग को तय करने के लिए,
ExrImageक्लास की जगहImageBasedLightingAssetक्लास को शामिल किया गया है.ExrImageको बंद कर दिया गया है और इसे सार्वजनिक एपीआई से हटा दिया गया है.SpatialEnvironmentPreferenceकोImageBasedLightingAssetका इस्तेमाल करने के लिए अपडेट किया गया है. (I6c92a) SpatialEnvironmentमेंskyboxपैरामीटर का नाम बदलकरimageBasedLightingAssetकर दिया गया है, ताकि इसके मकसद को बेहतर तरीके से दिखाया जा सके. साथ ही, यह साफ़ तौर पर बताया गया है कि विज़ुअल स्काईबॉक्स टेक्सचर को ज्यामिति पैरामीटर में शामिल किया जाना चाहिए. (I24d4a)- स्पेशल एंटिटी अब स्पेशल एपीआई लेवल 1 और 2 पर पिक्सल-टू-मीटर कैलकुलेशन के लिए, डिवाइस की स्टेबल डेंसिटी का इस्तेमाल करती हैं. इससे सिस्टम की डिसप्ले डेंसिटी में बदलाव होने के बावजूद, साइज़ में कोई अंतर नहीं आता. (I37051)
वर्शन 1.0.0-alpha15
19 मई, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha15 रिलीज़ हो गया है. वर्शन 1.0.0-alpha15 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Entity.dispose()को अब सार्वजनिक एपीआई के तौर पर हटा दिया गया है. ऐप्लिकेशन, Entity इंस्टेंस परdispose()को कॉल करने के बजाय, इंस्टेंस को क्लीन किया जा सकता है. इसके लिए,parentकोnullपर सेट करें और उन इंस्टेंस के सभी मज़बूत रेफ़रंस मिटाएं. (I396c9)SoundEffectPoolकेset/clearOnLoadCompleteListenerतरीके मिटा दिए गए हैं. इसके बजाय,add/removeLoadCompleteListenerका इस्तेमाल करें. (Iae78d)- सीन के
set/clearSpatialVisibilityChangedListenerकोadd/removeSpatialVisibilityChangedListenerसे बदल दिया गया है. (I67dff) - SceneCore के सभी
add/removeOnFooListenerतरीकों का नाम बदलकरadd/removeFooListenerकर दिया गया है. साथ ही, नाम सेOnको हटा दिया गया है. (Ibe50b) - एक साथ कई लिसनर को सपोर्ट करने के लिए,
AnchorEntity.setOnOriginChangedListenerऔरAnchorEntity.setOnStateChangedListenerतरीकों कोadd/removeFooListenerतरीकों से बदल दिया गया है. (I13749) AnchorEntity.State.TIMEDOUTका नाम बदलकरState.TIMED_OUTकर दिया गया है. (Id2b8d)- कॉम्पोनेंट एपीआई को फिर से तैयार किया गया है, ताकि इसे ज़्यादा सुरक्षित बनाया जा सके और इसमें ज़्यादा सुविधाएं जोड़ी जा सकें.
Componentअब एक ऐब्स्ट्रैक्ट क्लास है. सीधे तौर पर कॉल करने से रोकने के लिए,onAttach()औरonDetach()तरीकों को अबprotectedकर दिया गया है. कॉम्पोनेंट के लाइफ़साइकल को मैनेज करने के लिए, कृपयाEntity.addComponent()औरEntity.removeComponent()का इस्तेमाल करें. (Id04e8) - SceneCore के
PlaneSemanticTypePlaneOrientationकॉन्स्टेंट को Ints से कस्टम टाइप में माइग्रेट कर दिया गया है. उनकेANYकॉन्स्टेंट हटा दिए जाएंगे. इसके बजाय, क्लाइंट को सभी ज़रूरी कॉन्स्टेंट की सूची बनानी चाहिए या नए.ALLमें बदलाव न किए जा सकने वाले सेट कॉन्स्टेंट का इस्तेमाल करना चाहिए.AnchorEntityफ़ैक्ट्री मेथड अब एक वैल्यू के बजाय, इन टाइप का सेट स्वीकार करता है. (Ib1033) - एक्सपेरिमेंट के तौर पर उपलब्ध Custom Mesh API में, स्केलेटल ऐनिमेशन (स्किनिंग) के लिए सहायता जोड़ी गई. डेवलपर अब कस्टम मेश को ऐनिमेट कर सकते हैं. इसके लिए, उन्हें
MeshEntityबनाते समयboneCountतय करना होगा. साथ ही,MeshEntity.setBoneTransforms()का इस्तेमाल करके, ऐनिमेशन को रीयल-टाइम में अपडेट करना होगा. (Id8ba2, b/496692490) - एक्सपेरिमेंट के तौर पर
CustomMeshएपीआई लॉन्च किया गया. डेवलपर अबCustomMesh,MeshBuffer, औरMeshEntityका इस्तेमाल करके, अपने सीन में प्रोग्राम के हिसाब से 3D ज्यामिति बना सकते हैं और उसे रेंडर कर सकते हैं. (I94617) androidx.xr.scenecore.SpatializerConstants.SourceType.SOURCE_TYPE_SOUND_FIELDको हटाया गया. इसके बजाय,SourceType.SOUND_FIELDका इस्तेमाल करें. (Ia68b9)- स्पेशल ऑडियो कॉम्पोनेंट जोड़े जा रहे हैं:
PositionalAudioComponent,SoundEffectPoolComponent, औरSoundFieldAudioComponent(Ieda89) AnchorEntity.getAnchorकोAnchorEntity.anchorसे बदल दिया गया है. अबAnchorEntityको ARCoreAnchor(I5c7c8) से बनाए जाने पर,AnchorदिखेगाActivityPanelEntity,GltfModelEntity,GroupEntity,PanelEntity, औरSurfaceEntityफ़ैक्ट्री के तरीकों में,parentपैरामीटर की डिफ़ॉल्ट वैल्यू कोActivitySpaceसे बदलकरnullकर दिया गया है. किसी इकाई को सीन ग्राफ़ से अटैच करने और उसे दिखाने के लिए, डेवलपर को अब इंस्टैंटिएशन के दौरान याEntity.parent = ...(Ie7cc1) के ज़रिए, उसके पैरंट को साफ़ तौर पर सेट करना होगा
गड़बड़ियां ठीक की गईं
SceneCoreअब उनEntityइंस्टेंस को अपने-आप वापस ले लेता है जो फ़ैंटम रीचेबल हो जाते हैं. इससे डेवलपर को संसाधनों को खाली करने के लिए,dispose()को साफ़ तौर पर लागू करने की ज़रूरत नहीं होती. यह पक्का करने के लिए कि [Entity] इंस्टेंस को सही तरीके से वापस पाया गया है, डेवलपर को यह करना चाहिए:- इसके
parentकोnullपर सेट करके, इसे सीन ग्राफ़ से अलग करें. - अपने कोड में, इंस्टेंस के सभी मज़बूत रेफ़रंस हटा दें.
- खास इकाई के टाइप के बारे में नोट: जिन इकाइयों को पैरंट नहीं बनाया जा सकता (जैसे कि
AnchorEntity), उनके लिए डेवलपर को एक मज़बूत रेफ़रंस बनाए रखना होगा. ऐसा तब तक करना होगा, जब तक इंस्टेंस का इस्तेमाल किया जा रहा है. अगर सभी रेफ़रंस हटा दिए जाते हैं, तो ये इंस्टेंस फ़ैंटम रीचेबल बन जाएंगे. साथ ही, इन पर अपने-आप दावा कर लिया जाएगा. (I83fe4)
- इसके
- सभी
SceneCoreलाइब्रेरी के लिए, Proguard के कीप नियमों को कम किया गया है. (I98447)
आम समस्याएं
ExoPlayerके बंद इंस्टेंस वालेEntityमेंPositionalAudioComponentको अटैच करने पर, क्रैश हो जाएगा. ExoPlayer के बंद होने पर,setPointSourceParamsको कॉल न करें या स्पेशल ऑडियो कॉम्पोनेंट को अटैच/डिटैच न करें. इस समस्या को अगले वर्शन में ठीक कर दिया जाएगा.
वर्शन 1.0.0-alpha14
6 मई, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha14 रिलीज़ हो गया है. वर्शन 1.0.0-alpha14 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
TrackingStateऔरVpsAvailabilityResultकोandroidx.xr.arcore packageमें ले जाया गया है. साथ ही,androidx.xr.runtimeमें मौजूद टाइप अब इस्तेमाल नहीं किए जा सकते. (Ic7930, b/480462213)Plane.Typeका नाम बदलकरPlaneTypeकर दिया गया है. (I8c90c, b/482675376)Plane.Labelका नाम बदलकरPlaneLabelकर दिया गया है. (Ic6b67, b/482675376)androidx.xr.runtime.FieldOfViewका अब इस्तेमाल नहीं किया जा सकता. इसके बजाय,androidx.xr.runtime.math.FieldOfViewका इस्तेमाल करें. (Ia01a0, b/480233045)Matrix4.poseका नाम बदलकरMatrix4.toPose()कर दिया गया है. pose प्रॉपर्टी अब काम नहीं करती है. (I329b4, b/493383490)HandJointTypeएट्रिब्यूट की enum वैल्यू का नाम बदला गया. (Ifbc83, b/482670596)Componentको पसंद के मुताबिक लागू करने की अनुमति देने के लिए,Component.onAttachऔरonDetachको सार्वजनिक एपीआई के तौर पर उपलब्ध कराएं. (I0ca1f)- स्पेशल ऑडियो कॉम्पोनेंट जोड़े गए (I39ddd, b/489421980, b/436642086, b/436642499)
PointSourceParamsसे इकाई हटाएं. इसके बजाय, इकाई का इस्तेमाल सीधे तौर परSpatialAudioTrack,SpatialSoundPool, औरSpatialMediaPlayerके साथ किया जाएगा (Ib3685, b/489421980, b/436634048)DeviceTrackingMode.LAST_KNOWNका नाम बदलकरSPATIAL_LAST_KNOWNकर दिया गया (इसमें अब काम न करने वाला फ़ॉलबैक शामिल है). साथ ही, 3DoF ट्रैकिंग के लिएINERTIAL_LAST_KNOWNजोड़ा गया है. इसके अलावा,TRACKING_DEGRADEDकोTrackingStateमें जोड़ा गया है. (Ie661c, b/445466590)GroupEntityअब काम नहीं करता. अगर आपको सिर्फ़ बुनियादी Entity फ़ंक्शन वाली Entity चाहिए, तोEntity.createको कॉल करें. इससे आपको Entity इंटरफ़ेस मिलेगा. (I4c450, b/473867483)XrLogएपीआई जोड़ा गया. JetpackXR में लॉगिंग की सुविधा चालू करने के लिए,XrLog.isEnabledकोtrueपर सेट करें. साथ ही, लॉग लेवल सेट करने के लिएXrLog.Levelका इस्तेमाल करें. (I76a1f, b/463460895, b/487378441)
गड़बड़ियां ठीक की गईं
Scene.keyEntityअब डिफ़ॉल्ट रूप सेmainPanelEntityपर सेट है. (I6a3ef)
वर्शन 1.0.0-alpha13
25 मार्च, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha13 रिलीज़ हो गया है. वर्शन 1.0.0-alpha13 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
Session.createसेunscaledGravityAlignedActivitySpaceफ़्लैग हटा दिया गया है.ActivitySpaceअब हमेशा बिना स्केल किए हुए और ग्रेविटी के हिसाब से अलाइन किए जाते हैं. (If6f11, b/458173423)GltfModelEntityसे, बंद किए गएsetMaterialOverrideऔरclearMaterialOverrideफ़ंक्शन हटा दिए गए हैं. अब इन्हें अलग-अलगGltfModelNodeपर कॉल किया जाता है. (I2e5d2)PanelEntityमेंtransformPixelCoordinatesToLocalPositionऔरtransformNormalizedCoordinatesToLocalPositionको जोड़ा गया है. साथ ही, एक्सपेरिमेंट के उन तरीकों को हटाया गया है जोVector3पोज़िशन के बजाय पोज़ की जानकारी देते थे. (Ib6960, b/460123106, b/458333591)SceneCoreमें glTF ऐनिमेशन को कंट्रोल करने के लिए,GltfAnimationएपीआई जोड़े गए हैं. (I2c172, b/466065486, b/465819070, b/465818617)ScenePose.activitySpacePoseका नाम बदलकरScenePose.poseInActivitySpaceकिया गया (I8f175, b/427822261)- Scenecore Projected Runtime Implementation जोड़ा गया (I9c4ab, b/476440158)
- मुख्य पैनल की इकाई का साइज़ बदलते समय, हो सकता है कि वह
ActivitySpaceओरिजन पर अपनी जगह बदल ले. पैनल को उसकी मूल जगह पर वापस लाने के लिए, मैन्युअल तरीके से या प्रोग्राम के हिसाब से पैनल की जगह बदलने के अलावा कोई और तरीका नहीं है. इस बग को आने वाले समय में रिलीज़ होने वाले वर्शन में ठीक कर दिया जाएगा. (b/489427007). - कुछ मामलों में,
SurfaceEntityऔर पैनल के बाहर की अन्य इकाइयों के लिए,MovableComponentका विकल्प नहीं दिखता.MovableComponent.sizeको साफ़ तौर पर सेट करने पर, यह सुविधा दिखेगी. इस बग को आने वाले वर्शन (b/490983469) में ठीक कर दिया जाएगा.
वर्शन 1.0.0-alpha12
25 फ़रवरी, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha12 रिलीज़ हो गया है. वर्शन 1.0.0-alpha12 में ये बदलाव शामिल हैं.
आम समस्याएं
- ऐसा हो सकता है कि ऐंकर की गई इकाइयां, कुछ सेकंड बाद ऐंकर की गई जगह से हटकर गतिविधि वाली जगह पर चली जाएं.
SurfaceEntityइंस्टेंस बनाते समय, ऐप्लिकेशन क्रैश हो सकते हैं. इस समस्या कोandroidx.xr.scenecore:scenecore-*:1.0.0-alpha13और इसके बाद के वर्शन में ठीक कर दिया गया है. जिन ऐप्लिकेशन पर असर पड़ा है उन्हें नए वर्शन पर अपडेट किया जाना चाहिए.
एपीआई में हुए बदलाव
ActivitySpace.addOnSpaceUpdatedListenerऔरActivitySpace.removeOnSpaceUpdatedListenerका नाम बदलकरaddOnOriginChangedListenerऔरremoveOnOriginChangedListenerकर दिया गया है.AnchorEntity.setOnSpaceUpdatedListenerका नाम बदलकरsetOnOriginChangedListenerकर दिया गया है. (I5d8fb)FakeEntityमें सार्वजनिक नाम वाली प्रॉपर्टी जोड़ी गई औरFakePanelEntityपर व्यू को सार्वजनिक किया गया. (Ifa1f9)
गड़बड़ियां ठीक की गईं
- नई सिस्टम इमेज (I57d04) पर पिक्सल डेंसिटी के हिसाब से कैलकुलेशन करने की समस्या ठीक की गई
वर्शन 1.0.0-alpha11
28 जनवरी, 2026
androidx.xr.scenecore:scenecore-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
PerceivedResolutionResult.InvalidCameraViewका नाम बदलकरPerceivedResolutionResult.InvalidRenderViewpointकर दिया गया है, क्योंकि अबgetPerceivedResolutionएपीआई,CameraViewScenePoseके बजाय ARCore केRenderViewpointएपीआई पर काम करते हैं. यह नाम, नए तरीके से लागू किए गए बदलावों को बेहतर तरीके से दिखाता है. (I8c967, b/446989745, b/419311998)PanelEntity/SurfaceEntity.getPerceivedResolutionतरीके अब डेवलपर की ओर से दिए गएRenderViewpointको आर्ग्युमेंट के तौर पर लेते हैं. इससे पहले, रेंडर होने में लगने वाला समय, रिज़ॉल्यूशन के हिसाब से तय होता था.RenderViewpoint(I8c967, b/446989745, b/419311998)SpatialUser,ScenePose.Head, औरScenePose.CameraViewको हटा दिया गया है. इन एपीआई की सुविधाओं को, Jetpack XR के लिए ARCore में मौजूदArDeviceऔरRenderViewpointएपीआई के ज़रिए ऐक्सेस किया जा सकता है. उपयोगकर्ता के सिर या बाईं या दाईं आंख से जुड़ेScenePoseको पाने के लिए, डेवलपर ARCore API का इस्तेमाल करके सही पोज़ पा सकते हैं. इसके बाद, वेPerceptionSpace.getScenePoseFromPerceptionPoseका इस्तेमाल कर सकते हैं. (I2f69c, b/446989745)
वर्शन 1.0.0-alpha10
03 दिसंबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha10 रिलीज़ हो गया है. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
transformPixelCoordinatesToPoseऔरtransformNormalizedCoordinatesToPoseकोPanelEntityमें जोड़ा गया (I462b3)SceneCore(I570b9) में मौजूद लॉजिक के आधार पर,SceneCoreरनटाइम में Utils नाम की हेल्पर क्लास जोड़ी गई
गड़बड़ियां ठीक की गईं
- सेशन बंद होने पर
SpatialModeChangeEventमिलने पर क्रैश होने की समस्या को ठीक किया गया (If44e8) - उस बग को ठीक कर दिया गया है जिसकी वजह से, किसी गतिविधि को छोड़ने या उसमें फिर से शामिल होने पर
IllegalStateExceptionदिख सकता था. (Ibff1c)
वर्शन 1.0.0-alpha09
19 नवंबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.
नई सुविधाएं
- यह एपीआई,
ScenePoseको वापस पाने के लिए एक एपीआई जोड़ता है. यह, परसेप्शन स्पेस ऑरिजिन पोज़ और परसेप्शन स्पेस ऑरिजिन के हिसाब से पोज़ के कंपोज़िशन को दिखाता है. (I5b50a) getGravityAlignedPoseफ़ंक्शन जोड़ा गया. ग्रैविटी के हिसाब से अलाइन की गई पोज़ में, रोटेशन के पिच और रोल को अनदेखा किया जाता है. (I5ae21)AnchorEntity.Stateकॉन्स्टेंट टाइप को Ints से बदलकर State सबटाइप कर दिया गया है. (Ib0c49)- इकाई इंटरफ़ेस में
getChildren()जोड़ा गया. लाइफ़साइकल कोMainPanelEntityको अपडेट किया गया. (Ia69d6)
एपीआई में हुए बदलाव
PointerCaptureComponent.PointerCaptureStateकॉन्स्टेंट टाइप को Ints से बदलकरPointerCaptureStateसबटाइप कर दिया गया है. (Ic888a)Scene.spatialCapabilitiesअब Int फ़ील्ड के बजायSet<SpatialCapability>टाइप का है.SpatialCapabilityकॉन्स्टेंट के नाम बदल दिए गए हैं. (I9c109)SurfaceEntityकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरSurfaceEntityसबटाइप कर दिया गया है. (I419ed)SpatializerConstantकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरSpatializerConstantसबटाइप कर दिया गया है. (Ia0e18)TextureSamplerकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरTextureSamplerसबटाइप कर दिया गया है. (I44078)SpatialVisibilityकॉन्स्टेंट टाइप को Ints से बदलकरSpatialVisibilityसबटाइप कर दिया गया है. (I70739)ResizeEvent.ResizeStateकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरResizeStateसबटाइप कर दिया गया है. (I384d5)InputEventकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकर, इनके संबंधित एनक्लोज़िंग टाइप से इनहेरिट किया गया है. (I82817)GltfModelEntity.AnimationStateकॉन्स्टेंट टाइप को Ints से बदलकरAnimationStateसबटाइप कर दिया गया है. (I24f4e)AlphaModeकॉन्स्टेंट टाइप के नाम बदल दिए गए हैं. साथ ही, इन्हें Ints से बदलकरAlphaModeसबटाइप कर दिया गया है. (I27b56)Spaceकॉन्स्टेंट टाइप को Ints से बदलकर Space के सबटाइप कर दिया गया है. (I9255b)- अगर कोई इंटरसेक्शन नहीं मिलता है, तो
ScenePose.hitTestऔर इससे जुड़े तरीके अबnullदिखाते हैं. इसके बजाय, वे शून्यhitPositionके साथHitTestResultदिखाते थे.HitTestResult.hitPositionअब नल नहीं हो सकता. (I1400a) ActivityPoseके रेफ़रंस कोScenePoseमें बदल दिया गया है. (I7fe43)
वर्शन 1.0.0-alpha08
22 अक्टूबर, 2025
androidx.xr.scenecore:scenecore-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
ActivityPanelEntity.moveActivityका नाम बदलकरtransferActivityकर दिया गया (I273c5, b/430332856)
गड़बड़ियां ठीक की गईं
:xr:scenecore:scenecore-spatial-renderingऔर:xr:scenecore:scenecore-spatial-coreको:xr:scenecore:scenecore(I6ab65, b/447000520) के लागू करने की डिपेंडेंसी के तौर पर जोड़ा गया- अगर सेशन खत्म होने के बाद
session.sceneको ऐक्सेस किया जाता है, तो अपवाद दिखता है. (I77e6f)
वर्शन 1.0.0-alpha07
24 सितंबर, 2025
androidx.xr.scenecore:scenecore:1.0.0-alpha07, androidx.xr.scenecore:scenecore-guava:1.0.0-alpha07, और androidx.xr.scenecore:scenecore-testing:1.0.0-alpha07 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
fixedAspectRatioका नाम बदलकरisFixedAspectRatioEnabledकर दिया गया है. साथ ही, इसे बूलियन प्रॉपर्टी बना दिया गया है (I5c4e8, b/440588971)Scenecoreनकली प्रॉडक्ट अबxr:scenecore:scenecore-testingमॉड्यूल में मौजूद हैं. (Idd951)shouldAutoHideContentका नाम बदलकरisAutoHideContentWhileResizingEnabledऔरshouldAlwaysShowOverlayका नाम बदलकरisAlwaysShowOverlayEnabledकर दिया गया है (I97c36, b/432335421)- पढ़ने में आसानी के लिए,
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सेbundleपैरामीटर हटाया गया (I64344, b/430332856, b/430333040)SpatializerConstants.SOURCE_TYPE_BYPASSका नाम बदलकरSpatializerConstants.SOURCE_TYPE_DEFAULTकर दिया गया है. (Ifc7fe, b/422215565)SpatialSoundPool.PLAY_FAILEDकॉन्स्टेंट जोड़ा गया. (Ifc7fe, b/422215565)SpatialSoundPool.playतरीकों में डिफ़ॉल्ट तर्क जोड़े गए. (Ifc7fe, b/422215565)SpatialAudioTrackBuilderमें, सेटर की रिटर्न वैल्यू हटा दी गई है. (Ifc7fe, b/422215565)- SurfaceEntity में हुए बदलाव
SurfaceEntity.CanvasShapeका नाम बदलकरShapeकिया गयाSurfaceEntity.CanvasShape.Vr180Hemisphereका नाम बदलकरHemisphereकिया गयाSurfaceEntity.CanvasShape.Vr360Sphereका नाम बदलकरSphereकिया गयाSurfaceEntity.EdgeFeatheringParams.SmoothFeatherका नाम बदलकरRectangleFeatherकिया गयाSurfaceEntity.EdgeFeathingParams.SolidEdgeका नाम बदलकरNoFeatheringकिया गयाSurfaceEntity.ContentSecurityLevelका नाम बदलकरSurfaceProtectionकिया गयाSurfaceEntity.ContentSecurityLevel.{values}नेSURFACE_PROTECTION_प्रीफ़िक्स जोड़ा.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)recommendedContentBoxInFullSpaceप्रॉपर्टी कोActivitySpaceमें जोड़ा गया. यह फ़ुल स्पेस मोड में, कॉन्टेंट को रखने के लिए सुझाया गया बॉक्स दिखाता है. (I4cd6f)- मूवेबल मॉडिफ़ायर के लिए ओवरलोड किया गया कंस्ट्रक्टर उपलब्ध कराया गया है. इससे ऐंकर करने की अनुमति मिलती है. (Ic0c70)
एपीआई में हुए बदलाव
इस रिलीज़ के लिए, SceneCore में एपीआई से जुड़े कई बदलाव किए गए हैं. कई क्लास के नाम बदल दिए गए हैं और/या उन्हें अलग-अलग मॉड्यूल में ले जाया गया है. साथ ही, ज़्यादातर गेटर/सेटर तरीकों को 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) - हमने Kotlin प्रॉपर्टी के साथ, इन
SpatialEnvironmentगेटर और सेटर को बदल दिया है: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को बदल दिया गया है. (I4c956)AnchorPlacement: planeTypeFilterका नाम बदलकरanchorablePlaneOrientationsकर दिया गया है. साथ ही,planeSemanticFilterका नाम बदलकरanchorablePlaneSemanticTypesकर दिया गया है.AnchorEntityयाActivitySpaceमेंMovableComponentजोड़ने पर, फ़ॉल्स वैल्यू मिलेगी.MoveListenerका नाम बदलकरEntityMoveListener shouldDisposeParentAnchorकर दिया गया है. का नाम बदलकरdisposeParentOnReAnchor systemMovableकर दिया गया है.createफ़ंक्शन से को हटा दिया गया है. अबcreeateCustomMovable,createSystemMovable, औरcreateAnchorableका इस्तेमाल किया जाता है (If11c4)SurfaceEntity.featherRadiusX/Yको हटाता है औरEdgeFeatheringParamsक्लास कॉन्सेप्ट जोड़ता है. (Ic78fc)PanelEntity.enablePanelDepthTest()तरीके कोpanelClippingConfigप्रॉपर्टी से बदल दिया गया है. डेप्थ-टेस्टिंग की सुविधा चालू करने के लिए,Scene.panelClippingConfig = PanelClippingConfig(isDepthTestEnabled = true)पर सेट करें या इसे बंद करने के लिए,PanelClippingConfig(isDepthTestEnabled = false)पर सेट करें. (I0cbe0)Scene.mainPanelEntityअब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>(Ie7e8c) के बजायConsumer<Int>स्वीकार करता हैPointerCaptureComponentकॉन्स्टेंट का नाम बदला गया है और उन्हेंPointerCaptureComponent.PointerCaptureStateऑब्जेक्ट (I9c7ac) में ले जाया गया हैPointerCaptureComponents' StateListenerकोConsumer<Int>से बदला गया. (I9c7ac)InputEventListenerकोConsumer<InputEvent>(I9c7ac) से बदला गयाsetPreferredAspectRatioको Scene क्लास सेSpatialWindowऑब्जेक्ट में ले जाया गया है. साथ ही, यह Session को पहले पैरामीटर के तौर पर लेता है. (I7b717)Entity.setHidden()कोEntity.setEnabled()से औरEntity.isHidden()कोEntity.isEnabled()से बदल दिया गया है.setHidden(false),setEnabled(true)औरisHidden() == !isEnabled()के बराबर है. (Icf0de)Entity.contentDescriptionटाइप को स्ट्रिंग से बदलकरCharSequenceकर दिया गया है. (Ie59be)Session.createऔरSession.configureअब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 कर दिया गया है. एक्सआर पैकेज के लिए, रनटाइम के दौरान अब भी एपीआई 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 एनोटेशन का इस्तेमाल करती है. ये एनोटेशन, टाइप-यूज़ होते हैं. 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)
गड़बड़ियां ठीक की गईं
- छोटे किए गए क्लाइंट के लिए
AbstractMethodErrorको रोकने के लिए, Jetpack XR ScenecoreProGuardनियम को अपडेट किया गया है. (I91a01) - Jetpack XR
SceneCoreके लिए, Proguard minification की सुविधा को बेहतर बनाने से जुड़ी अतिरिक्त समस्याएं ठीक की गईं I4f47e - उस गड़बड़ी को ठीक किया गया है जिसमें
InteractableComponentकी वजह से क्रैश हो सकता है. ऐसा तब होता है, जब सिस्टम से मिलाhitPosition, HitInfo केInputEventपर मौजूद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 spaces वैल्यू का इस्तेमाल किया जा सकता है. इसकी डिफ़ॉल्ट वैल्यू Parent होती है.SessionExt.ktमें, Spatial Visibility Callback एक्सटेंशन के तरीके जोड़े गए हैं. इनसे यह मॉनिटर किया जा सकता है कि सीन का कॉन्टेंट, उपयोगकर्ता के फ़ील्ड ऑफ़ व्यू में कब आता है और कब बाहर जाता है.setPointSourceParamsकोSpatialAudioTrackमें जोड़ दिया गया है. इससे ट्रैक बनने के बाद भी पैरामीटर अपडेट किए जा सकते हैं.Scenecoreएपीआई के रेफ़रंस के साथ, Scene नाम की नई क्लास जोड़ी गई. सीन को सेशन की एक्सटेंशन प्रॉपर्टी के तौर पर ऐक्सेस किया जा सकेगा.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)
- छोटे किए गए क्लाइंट के लिए
AbstractMethodErrorको रोकने के लिए, Jetpack XR ScenecoreProGuardनियम को अपडेट किया गया है. (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()` का इस्तेमाल करके स्काईबॉक्स को शून्य पर सेट करने से, दस्तावेज़ में बताए गए तरीके के मुताबिक स्काईबॉक्स पूरी तरह से काला नहीं होता. इससे सिस्टम का डिफ़ॉल्ट स्काईबॉक्स सेट हो सकता है या मौजूदा स्काईबॉक्स में कोई बदलाव नहीं होगा.
- 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 को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.