Jetpack XR के लिए ARCore
| नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
|---|---|---|---|---|
| 30 जुलाई, 2025 | - | - | - | 1.0.0-alpha05 |
डिपेंडेंसी का एलान करना
Jetpack XR के लिए ARCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha05" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha05") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.
ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.
वर्शन 1.0
वर्शन 1.0.0-alpha05
30 जुलाई, 2025
androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05, और androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha05 में ये कमिट शामिल हैं.
नई सुविधाएं
getPrimaryHandSideजोड़ें, ताकि डेवलपर को दाईं ओर की जानकारी (I270bd) मिल सके- जियोस्पेशल चेक वीपीएस की उपलब्धता एपीआई (I58573) जोड़ें
checkVpsAvailability(Idbded) के लिए ARCore API जोड़ें- Java डेवलपर के इस्तेमाल के लिए,
:xr:arcore:arcore-rxjava3मेंstateFlowableएक्सटेंशन फ़ंक्शन जोड़े गए. (I083aa, b/427247794)
एपीआई में हुए बदलाव
- कॉन्फ़िगरेशन
*Modeवैल्यू के नाम बदल दिए गए हैं, ताकि उनके काम करने के तरीके के बारे में पता चल सके. (I6d247, b/414648065) - मुख्य ARCore आर्टफ़ैक्ट (xr:arcore:arcore) में सिर्फ़ Kotlin-स्टाइल वाले एसिंक एपीआई शामिल होंगे. Java डेवलपर,
xr:arcore:arcore-rxjava3लाइब्रेरी पर भरोसा कर सकते हैं. इससे उन्हें काम करने वाले एपीआई को ऐक्सेस करने में मदद मिलती है. (Ia525e, b/422794329) - मुख्य ARCore आर्टफ़ैक्ट (
xr:scenecore:scenecore) में सिर्फ़ Kotlin-स्टाइल वाले एसिंक्रोनस एपीआई शामिल होंगे. Java डेवलपर,xr:arcore:arcore-guavaलाइब्रेरी पर भरोसा कर सकते हैं. इससे उन्हें काम करने वाले एपीआई को ऐक्सेस करने में मदद मिलती है. (Iffcb4, b/422773524) - Java डेवलपर के इस्तेमाल के लिए,
AnchorGuavaकोAnchorGuavaमें जोड़ा गया.Anchor.persistAsync()(I4af1c, b/425984631) - Java डेवलपर के इस्तेमाल के लिए,
EarthGuavaकोEarthGuavaमें जोड़ा गया.Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)(I66357, b/425992992) - Java डेवलपर,
GltfModel.ktमेंGltfModel.ktके लिए एक्सटेंशन फ़ंक्शन का इस्तेमाल करेंगे.GltfModel.createAsyncGltfModelमें मौजूद एसिंक फ़ंक्शन मिटा दिए जाएंगे. (I0af60) - यह लाइब्रेरी अब JSpecify nullness annotations का इस्तेमाल करती है. ये टाइप-यूज़ होते हैं. Kotlin डेवलपर को सही इस्तेमाल लागू करने के लिए, कंपाइलर के इस आर्ग्युमेंट का इस्तेमाल करना चाहिए:
-Xjspecify-annotations=strict(यह Kotlin कंपाइलर के 2.1.0 वर्शन से डिफ़ॉल्ट रूप से उपलब्ध है) (Ia8420, b/326456246) - Java डेवलपर के इस्तेमाल के लिए,
:xr:arcore:arcore-rxjava3मेंsubscribeAsFlowableएक्सटेंशन फ़ंक्शन जोड़े गए. (Id3e49, b/427277298)
वर्शन 1.0.0-alpha04
7 मई, 2025
androidx.xr.arcore:arcore:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है. (Idb6b5)
TrackingStateऔरHandJointTypeको ARCore से Runtime में ले जाया गया है.Hand.State.isActive (boolean)को बदलकरHand.State.trackingState (androidx.xr.runtime.TrackingState)कर दिया गया है.- अगर यूयूआईडी अमान्य है, तो
Anchor.load,Anchor.AnchorLoadInvalidUuidदिखाता है.
वर्शन 1.0.0-alpha03
26 फ़रवरी, 2025
androidx.xr.arcore:arcore:1.0.0-alpha03 को रिलीज़ कर दिया गया है. इसमें पिछले ऐल्फ़ा वर्शन के बाद कोई खास बदलाव नहीं किया गया है. वर्शन 1.0.0-alpha03 में ये कमिट शामिल हैं.
वर्शन 1.0.0-alpha02
12 फ़रवरी, 2025
androidx.xr.arcore:arcore:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये कमिट शामिल हैं.
नई सुविधाएं
- हाथों को ट्रैक करने की सुविधा जोड़ी गई. ट्रैकिंग की जानकारी ऐक्सेस करने के लिए,
Hand.leftऔरHand.rightका इस्तेमाल करें. - एंकर जनरेट करने वाले एपीआई (
Anchor.create,Anchor.load,Plane.createAnchor) अब सभीAnchorCreateResultदिखाते हैं औरAnchorCreateResourcesExhaustedको सही तरीके से लागू करते हैं.
गड़बड़ियां ठीक की गईं
Anchor.detachअब सेशन अपडेट थ्रेड के साथ रेस कंडीशन की वजह से क्रैश नहीं होता है.Anchor.createएम्युलेटर पर ज़्यादा बेहतर तरीके से काम करता है
वर्शन 1.0.0-alpha01
12 दिसंबर, 2024
androidx.xr.arcore:arcore-* 1.0.0-alpha01 रिलीज़ हो गया है.
शुरुआती रिलीज़ की सुविधाएं
ARCore की मौजूदा लाइब्रेरी से प्रेरणा लेकर, ARCore for Jetpack XR लाइब्रेरी को बनाया गया है. यह लाइब्रेरी, डिजिटल कॉन्टेंट को असल दुनिया के साथ ब्लेंड करने की सुविधाएं देती है. इस लाइब्रेरी में मोशन ट्रैकिंग, परसिस्टेंट ऐंकर, हिट टेस्टिंग, और सिमैंटिक लेबलिंग के साथ प्लेन की पहचान करने की सुविधा शामिल है. जैसे, फ़र्श, दीवारें, और टेबलटॉप. Jetpack XR के लिए ARCore का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, डेवलपर गाइड देखें.
Session: ARCore for Jetpack XR, Jetpack XR Runtime का इस्तेमाल करता है, ताकि इसकी सुविधाओं को बेहतर बनाया जा सके. आपको Jetpack XR के ज़्यादातर ARCore API के साथ इंटरैक्ट करने के लिए, सेशन का इस्तेमाल करना होगा. इसलिए, कृपया इसके दस्तावेज़ देखें.Plane: अपने आस-पास की दुनिया को समझने के लिए, प्लेन का इस्तेमाल करें. हर प्लैन में एकLabelहोता है, जो उसके बारे में बताता है.subscribeका इस्तेमाल करके, हाल ही में पता लगाए गए विमानों के बारे में सूचनाएं पाई जा सकती हैं. इसके अलावा,stateका इस्तेमाल करके, किसी विमान में हुए बदलावों के बारे में सूचनाएं पाई जा सकती हैं.Anchor: यह वर्चुअल ऑब्जेक्ट और असल दुनिया की किसी जगह के बीच का लिंक होता है. ऐंकर को स्पेस में किसी खास जगह (createका इस्तेमाल करके) या किसीTrackable(createAnchorका इस्तेमाल करके) से जोड़ा जा सकता है.एंकर का इस्तेमाल, सभी सेशन में फिर से किया जा सकता है. इन्हें सेव करने के लिए
persist, इनकी गिनती करने के लिएgetPersistedAnchorUuids, और इन्हें वापस पाने के लिएloadका इस्तेमाल किया जा सकता है. जब इनका इस्तेमाल न हो रहा हो, तब इन्हेंunpersistकरना न भूलें.एंकर, ARCore for Jetpack XR और Jetpack SceneCore के बीच इंटरऑपरेबल होते हैं. ऐंकर का इस्तेमाल करके
AnchorEntityबनाया जा सकता है. इसके अलावा, अगर आपके पास कोई मौजूदा AnchorEntity है, तोgetAnchorका इस्तेमाल करके, उसके साथ जुड़ा ऐंकर वापस पाया जा सकता है.hitTestका इस्तेमाल करके, लोगों को स्वाभाविक तरीके से इंटरैक्ट करने का विकल्प दें. हिटटेस्ट,Rayका इस्तेमाल करके यह पता लगाता है कि वह किस कॉन्टेंट से इंटरसेक्ट करता है. साथ ही, उस जगह सेAnchorबनाता है.InputEventसे hitTest करें.
ऐसी समस्याएं जिनके बारे में जानकारी पहले से है
unpersistको कॉल करने औरgetPersistedAnchorUuidsसे मिले नतीजों से इसके यूयूआईडी को हटाने में कुछ समय लग सकता है.createयह पुष्टि नहीं करेगा कि सिस्टम के पास नए ऐंकर वापस लाने के लिए ज़रूरी संसाधन हैं या नहीं. बहुत ज़्यादा ऐंकर बनाने से, ऐप्लिकेशन क्रैश हो सकता है.फ़िलहाल, ऐसे ऐंकर को सेव करने की सुविधा उपलब्ध नहीं है जिसे पहले सेव किया गया था और फिर सेव नहीं किया गया था.
एम्युलेटर में इसका इस्तेमाल किया जा सकता है. हालांकि, हो सकता है कि यह किसी असली डिवाइस पर इस्तेमाल करने जितना स्थिर न हो. खास तौर पर,
createको किए गए कॉल, नेटिव कोड की गड़बड़ी की वजह से पूरे नहीं हो सकते. साथ ही, गतिविधि तुरंत बंद हो सकती है.कुछ मामलों में,
persistको कॉल करते समय, “ऐंकर सेव नहीं किया गया” मैसेज के साथRuntimeExceptionगड़बड़ी दिख सकती है. हालांकि, ऐसे मामलों में फ़ंक्शन अब भी काम करेगा और ऐंकर सेव हो जाएगा. हमारा सुझाव है कि इस समस्या को हल करने के लिए,persistकोtryब्लॉक में रैप करें.