{ } { }
Jetpack SceneCore
नया अपडेट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
7 मई, 2025 | - | - | - | 1.0.0-alpha04 |
डिपेंडेंसी का एलान करना
XR SceneCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha04" // Required for Java implementation "com.google.guava:listenablefuture:1.0" // Required for Kotlin implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0" // Use to write unit tests testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04" }
Kotlin
dependencies { implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha04") // Required for Java implementation("com.google.guava:listenablefuture:1.0") // Required for Kotlin implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0") // Use to write unit tests testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha04") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 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.PanelEntity.setSize
औरPanelEntity.getSize
अब माता-पिता के स्पेस में साइज़ दिखाते हैं.Entity.setPose
,Entity.getPose
,Entity.setScale
,Entity.getScale
,Entity.setAlpha
, औरEntity.getAlpha
में अब एक नया पैरामीटरrelativeTo
है. इसकी मदद से, अलग-अलग स्पेस की वैल्यू को पाने/सेट करने की सुविधा मिलती है. इस एट्रिब्यूट के लिए, पैरंट, गतिविधि, और रीयल वर्ल्ड स्पेस जैसी वैल्यू इस्तेमाल की जा सकती हैं. साथ ही, इस पैरामीटर की डिफ़ॉल्ट वैल्यू 'पैरंट' है.SessionExt.kt
में स्पेस में दिखने की सुविधा के कॉलबैक एक्सटेंशन के तरीके जोड़े गए हैं. इनकी मदद से, यह पता लगाया जा सकता है कि सीन का कॉन्टेंट, उपयोगकर्ता के फ़ील्ड ऑफ़ व्यू में है या नहीं.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
में मौजूद सेशन क्लास को मिटा दिया गया है. इसकी जगह, XR रनटाइम में सेशन का इस्तेमाल किया जाएगा.StereoSurfaceEntity
का नाम बदलकरSurfaceEntity
कर दिया गया है.Entity.setSize
औरEntity.getSize
को हटा दिया गया है औरPanelEntity
में वही तरीके जोड़े गए हैं.PointSourceAttributes
का नाम बदलकरPointSourceParams
कर दिया गया है.SpatializerConstants.SOURCE\_TYPE\_BYPASS
का नाम बदलकरSpatializerConstants.SOURCE\_TYPE\_DEFAULT
कर दिया गया है.PointSourceParams
इकाई के ऐक्सेस लेवल को सार्वजनिक से बदलकर संगठन के अंदर के लोगों के लिए किया गया है.AnchorEntity.create
को अबPlaneTrackingMode
कोSession.configure()
में कॉन्फ़िगर करना होगा.SpatialUser
एपीआई के लिए, अबHeadTrackingMode
कोSession.configure()
में कॉन्फ़िगर करना ज़रूरी है.- अगर
ResizableComponent
अटैच नहीं किया गया है, तो यह गड़बड़ी के लेवल के लॉग के बजाय, जानकारी के लेवल का लॉग देगा. - फ़ील्ड ऑफ़ व्यू (FOV) क्लास अब एक सामान्य Kotlin क्लास है.
- हर तरह की इकाई को उसकी अपनी फ़ाइल में डालने के लिए,
Entity.kt
को अलग-अलग करें. - नया
PanelEntity
बनाते समय, ज़्यादातर व्यू कोFrameLayout
के तौर पर फिर से पैरंट के तौर पर सेट कर दिया जाएगा. इससे स्पेस पैनल के साथ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 में ये कमिट शामिल हैं.
नई सुविधाएं
- Proguard की मदद से कोड को छोटा करने की सुविधा, अब Jetpack XR कोड के लिए उपलब्ध है
गड़बड़ियां ठीक की गईं
- Jetpack XR SceneCore (I4f47e) के लिए, Proguard की मदद से ऐप्लिकेशन को छोटा करने की सुविधा को बेहतर बनाने के लिए अन्य सुधार
- छोटा किया गया क्लाइंट
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()
की जगहgetSpatialCapabilities().hasCapability()
का इस्तेमाल किया जा रहा है, क्योंकिgetSpatialCapabilities()
एकSpatialCapabilities
ऑब्जेक्ट दिखाता है. इससे, स्पेस की जानकारी देने वाली सुविधाओं की मौजूदगी की जांच करने के लिए,getSpatialCapabilities().hasCapability()
का इस्तेमाल ज़्यादा बेहतर तरीके से किया जा सकता है.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
सही तरीके से अपडेट न हुए हों. यह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 API के लिए, रनटाइम के दौरान एपीआई 34 की ज़रूरत होती है.
SceneCore
की सेशन फ़ैक्ट्री (Session.create
), अबSCENE_UNDERSTANDING
की अनुमति पाने के लिए इंटेंट लॉन्च नहीं करती. इसके बजाय, क्लाइंट ऐप्लिकेशन को ऐंकर बनाने की कोशिश करने से पहले, उपयोगकर्ता से साफ़ तौर पर अनुमतियों का अनुरोध करना होगा. अगर उपयोगकर्ता ने अनुमति नहीं दी है, तो ऐंकर नहीं बनाया जा सकेगा.
गड़बड़ियां ठीक की गईं
getActivitySpacePose()
को ठीक कर दिया गया है, ताकिActivitySpace
स्केल का हिसाब लगाया जा सके. इसके लिए, अनुवाद की वैल्यू को स्केल किए गए मीटर में दिखाया जाएगा, न कि बिना स्केल वाले मीटर में. जब सोर्स या डेस्टिनेशन मेंActivitySpace
शामिल होता है, तोtransformPoseTo
अब निर्देशांक में हुए बदलावों का हिसाब लगाने के लिए सही इकाइयों का भी इस्तेमाल करता है.- जब भी
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 मॉडल की ज्यामिति का इस्तेमाल करके, पूरी तरह से इमर्सिव अनुभव बनाएं. इसके अलावा, पासथ्रू की सुविधा चालू करें, ताकि आपका वर्चुअल सीन, उपयोगकर्ता के असल-दुनिया के माहौल के साथ इंटिग्रेट हो सके.
- PanelEntity: अपने 3D सीन में 2D कॉन्टेंट जोड़ें. इसके लिए, स्टैंडर्ड Android लेआउट और गतिविधियों को स्पेसलाइज़ किए गए पैनल में जोड़ें. ये पैनल, रीयल-वर्ल्ड के प्लैटफ़ॉर्म पर फ़्लोट या ऐंकर किए जा सकते हैं.
- GltfModelEntity: अपने सीन में 3D मॉडल डालें, उन्हें ऐनिमेट करें, और उनसे इंटरैक्ट करें. SceneCore, मौजूदा मॉडल के साथ आसानी से इंटिग्रेट करने के लिए, glTF फ़ाइल फ़ॉर्मैट के साथ काम करता है.
- स्पेशल ऑडियो: अपने 3D सीन में ऐंबियंट और पॉइंट ऑडियो सोर्स जोड़ें, ताकि आपको पूरी तरह से इमर्सिव और स्पेसलाइज़ किया गया साउंड मिले.
- StereoSurfaceEntity: SceneCore, Android डिवाइस की स्क्रीन पर रेंडर किए गए कॉन्टेंट को बाईं/दाईं आंख के हिसाब से रूट करने की सुविधा देता है. इसका इस्तेमाल, स्टीरियोस्कोपिक कॉन्टेंट को साइड-बाय-साइड या टॉप-बॉटम फ़ॉर्मैट में रेंडर करने के लिए किया जा सकता है. जैसे, स्टीरियो फ़ोटो, 3D वीडियो या डाइनैमिक तौर पर रेंडर किए गए अन्य यूज़र इंटरफ़ेस (यूआई). ऐप्लिकेशन को वीडियो डिकोड करने के लिए, MediaPlayer या ExoPlayer का इस्तेमाल करना चाहिए.
- कॉम्पोनेंट सिस्टम: SceneCore, आपके XR कॉन्टेंट में सुविधाएं जोड़ने के लिए, एक बेहतर और सुविधाजनक कॉम्पोनेंट सिस्टम उपलब्ध कराता है. इसमें उपयोगकर्ताओं के लिए, मॉडल और पैनल को एक जगह से दूसरी जगह ले जाने, उनका साइज़ बदलने, और उनसे इंटरैक्ट करने की सुविधाएं भी शामिल हैं.
- एंकर: पासथ्रू की सुविधा चालू होने पर, पैनल और मॉडल को असल प्लैटफ़ॉर्म से अटैच किया जा सकता है. इससे, उपयोगकर्ताओं को असल दुनिया के माहौल में वर्चुअल कॉन्टेंट को आसानी से इंटिग्रेट करने में मदद मिलती है.
- उपयोगकर्ता की पोज़िशन: वर्चुअल सीन में उपयोगकर्ता की जगह की जानकारी ऐक्सेस करके, अपने कॉन्टेंट को उपयोगकर्ता की पोज़िशन के हिसाब से दिखाएं.
- SpatialCapabilities: पूरी तरह से अडैप्टिव ऐप्लिकेशन बनाएं, जो उपलब्ध होने पर स्पेसलाइज़ की गई सुविधाओं का फ़ायदा ले सकें. जैसे, यूज़र इंटरफ़ेस (यूआई) कॉन्टेंट की 3D पोज़िशनिंग. इतना ही नहीं, ऐप्लिकेशन के चलने के दौरान, आपका ऐप्लिकेशन सुविधाओं में होने वाले बदलावों को मॉनिटर कर सकता है. इससे, उपयोगकर्ता अपने Android XR डिवाइस का इस्तेमाल कैसे कर रहा है, इसके आधार पर अनुभव में बदलाव किया जा सकता है.
ऐसी समस्याएं जिनकी जानकारी पहले से है
- फ़िलहाल, Jetpack SceneCore का इस्तेमाल करने के लिए, 30 का कम से कम SDK वर्शन ज़रूरी है. इस समस्या को हल करने के लिए, यहां दी गई मेनिफ़ेस्ट एंट्री
<uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/>
जोड़ें. इससे, ऐप्लिकेशन को 23 के मिनिमम SDK के साथ बनाया और चलाया जा सकेगा. - सेशन अमान्य हो सकता है. ऐसा कई स्थितियों में होता है, जब गतिविधि अपने-आप फिर से शुरू हो जाती है. जैसे, मुख्य पैनल का साइज़ बदलना, बाहरी डिवाइसों को कनेक्ट करना, और लाइट और डार्क मोड के बीच स्विच करना. अगर आपको सेशन अमान्य होने से जुड़ी समस्याएं आ रही हैं, तो इन समस्याओं को हल करने के लिए, अपने मुख्य पैनल का साइज़ न बदलें. इसके अलावा, डाइनैमिक पैनल इकाई का इस्तेमाल करें, कॉन्फ़िगरेशन में किए गए खास बदलावों के लिए गतिविधि को फिर से शुरू करने की सुविधा बंद करें या लाइट/डार्क मोड की थीम में किए गए बदलावों को बंद करें.
- 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 को चालू करने के तरीके के बारे में ज़्यादा जानने के लिए, यह गाइड देखें.