Jetpack XR के लिए ARCore
नया अपडेट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
30 जुलाई, 2025 | - | - | - | 1.0.0-alpha05 |
डिपेंडेंसी का एलान करना
Jetpack XR के लिए ARCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore: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.createAsync
GltfModel
में मौजूद एसिंक फ़ंक्शन मिटा दिए जाएंगे. (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
ब्लॉक में रैप करें.