Jetpack XR के लिए ARCore

परसेप्शन की सुविधाओं की मदद से, डिजिटल कॉन्टेंट को असल दुनिया में लाएं.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
06 मई, 2026 - - - 1.0.0-alpha13

डिपेंडेंसी का एलान करना

Jetpack XR के लिए ARCore पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha13"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha13")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या आपके पास इस लाइब्रेरी को बेहतर बनाने के लिए सुझाव हैं, तो हमें बताएं. कृपया नई समस्या सबमिट करने से पहले, इस लाइब्रेरी में शामिल मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या दर्ज करने का तरीका

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

संस्करण 1.0

वर्शन 1.0.0-alpha13

06 मई, 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha13 रिलीज़ हो गया है. वर्शन 1.0.0-alpha13 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • TrackingState और VpsAvailabilityResult को androidx.xr.arcore package में ले जाया गया है. साथ ही, androidx.xr.runtime में मौजूद टाइप अब इस्तेमाल नहीं किए जा सकते. (Ic7930, b/480462213)
  • Plane.Type का नाम बदलकर PlaneType कर दिया गया. (I8c90c, b/482675376)
  • Hand.HandSide का नाम बदलकर HandSide कर दिया गया. (Ica562, b/482675376)
  • Plane.Label का नाम बदलकर PlaneLabel कर दिया गया. (Ic6b67, b/482675376)
  • Geospatial.Surface का नाम बदलकर GeospatialSurface कर दिया गया. (I1a8be, b/482675376)
  • Geospatial.State का नाम बदलकर GeospatialState कर दिया गया. (I203fa, b/482675376)
  • NativeData एपीआई को xr:runtime:runtime लाइब्रेरी में ले जाया गया. (I87954, b/494251500)
  • Session.create और Session.configure अब पूरी जानकारी नहीं देते हैं. इसलिए, when स्टेटमेंट में else क्लॉज़ की ज़रूरत होती है. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView का अब इस्तेमाल नहीं किया जा सकता. इसके बजाय, androidx.xr.runtime.math.FieldOfView का इस्तेमाल करें. (Ia01a0, b/480233045)
  • Orbiter में, position, offset, offsetType, alignment, और elevation के बजाय OrbiterAnchorPoint + VolumeOffset या OrbiterPoseProvider का इस्तेमाल किया गया. shouldRenderInNonSpatial पैरामीटर को भी हटा दिया गया है. अगर डेवलपर को ऑर्बिटर को नॉन-स्पेशल में रेंडर नहीं करना है, तो उसे ऑर्बिटर को if स्टेटमेंट में रैप करना चाहिए और SpatialCapabilities की जांच करनी चाहिए. (I9fbb3, b/462428503)
  • मूवेबल मॉडिफ़ायर जोड़े गए. फ़िलहाल, ये मॉडिफ़ायर SpatialPanels और SpatialExternalSurface के लिए सही तरीके से काम करते हैं. ये जल्द ही SpatialGltfModels के लिए भी उपलब्ध होंगे. हालांकि, हमारा मकसद इन सुविधाओं को सभी SubspaceComposables के लिए उपलब्ध कराना है. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • डेवलपर से उम्मीद की जाती है कि वे ArDevice.state फ़्लो का पालन करें, ताकि वे State.trackingState की निगरानी कर सकें. साथ ही, ट्रैकिंग की क्वालिटी के आधार पर, अपने ऐप्लिकेशन की रेंडरिंग या चेतावनियों को अडजस्ट कर सकें. (Ic00f0, b/445466590)
  • HandJointType enum वैल्यू का नाम बदला गया. (Ifbc83, b/482670596)
  • FaceConfidenceRegion कॉन्सटेंट का नाम बदला गया. (Ia62d5, b/482670596)
  • FaceBlendShapeType कॉन्सटेंट का नाम बदला गया. (I33b8b, b/482670596)
  • CreatePoseFromGeospatialPoseErrorInternal और CreateGeospatialPoseFromPoseErrorInternal को जोड़ा गया. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN का नाम बदलकर SPATIAL_LAST_KNOWN कर दिया गया है. हालांकि, अब भी DeviceTrackingMode.LAST_KNOWN का इस्तेमाल किया जा सकता है. साथ ही, 3DoF ट्रैकिंग के लिए INERTIAL_LAST_KNOWN जोड़ा गया है. इसके अलावा, TRACKING_DEGRADED को TrackingState में जोड़ा गया है. (Ie661c, b/445466590)
  • GroupEntity अब काम नहीं करता. अगर आपको सिर्फ़ बुनियादी Entity फ़ंक्शन वाली Entity चाहिए, तो Entity.create को कॉल करें. इससे Entity इंटरफ़ेस वापस आ जाएगा. (I4c450, b/473867483)
  • XrLog API जोड़ा गया. JetpackXR में लॉग इन करने की सुविधा चालू करने के लिए, XrLog.isEnabled को true पर सेट करें. साथ ही, लॉग लेवल सेट करने के लिए XrLog.Level का इस्तेमाल करें. (I76a1f, b/463460895, b/487378441)

गड़बड़ियां ठीक की गईं

  • OpenXR डिवाइसों में, डिवाइस की ट्रैकिंग की स्थिति की जानकारी देने की सुविधा जोड़ी गई है. (I91485, b/445466590)

वर्शन 1.0.0-alpha12

25 मार्च, 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha12 रिलीज़ हो गया है. वर्शन 1.0.0-alpha12 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • Config.augmentedObjectCategories को सूची से सेट में बदला गया. (I25a64, b/487376359)
  • androidx.xr.arcore.Eye और androidx.xr.arcore.Hand टाइप. (I42438, b/449032900)
  • संसाधन के दायरे को तय करने के लिए, Android Context को पास करने की अनुमति देने के लिए, Session.create ओवरलोड जोड़ा गया. (I7d3fe, b/415805990, b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT को FakeRuntimeAnchor.anchorResourceLimit में बदलता है. (I90841, b/431992235)
  • TiltGesture API को एक्सपेरिमेंट के तौर पर उपलब्ध कराया जा रहा है, क्योंकि आने वाले समय में इसमें बदलाव किया जा सकता है या इसे हटाया जा सकता है. इस एपीआई का इस्तेमाल करने के लिए, @ExperimentalGesturesApi (Ic9858) में ऑप्ट इन करें
  • कॉन्फ़िगरेशन में AugmentedObject ट्रैकिंग के लिए कैटगरी सेट करने की सुविधा जोड़ी गई (I1f6e4, b/480220930)

गड़बड़ियां ठीक की गईं

  • META-INF/services/ फ़ाइल को PerceptionRuntimeFactory की मौजूदा जगह की जानकारी के साथ अपडेट करके, Chrome के बिल्ड से जुड़ी समस्या ठीक की गई. (I7a801, b/481288291)

वर्शन 1.0.0-alpha11

25 फ़रवरी, 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha11 रिलीज़ हो गया है. वर्शन 1.0.0-alpha11 में ये बदलाव शामिल हैं.

वर्शन 1.0.0-alpha10

28 जनवरी, 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha10 रिलीज़ हो गया है. वर्शन 1.0.0-alpha10 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • TiltGesture एपीआई लॉन्च किया गया है. यह डिवाइस के झुकाव (ऊपर/नीचे) की स्थिति का पता लगाने के लिए, ट्रांज़िशन प्रोग्रेस के साथ एक रिएक्टिव Flow उपलब्ध कराता है. (Ic269f, b/448152779)
  • Jetpack XR के लिए ARCore, अब XR Runtime Logging मेकेनिज़्म का इस्तेमाल करता है. ज़्यादा जानकारी के लिए androidx.xr.runtime.Log देखें. (l52735, b/448697662)

एपीआई में हुए बदलाव

  • Geospatial.createPoseFromGeospatialPose अब OpenXR की सुविधा वाले डिवाइसों पर काम करता है. (l362c6)

वर्शन 1.0.0-alpha09

03 दिसंबर, 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha09 रिलीज़ हो गया है. वर्शन 1.0.0-alpha09 में ये बदलाव शामिल हैं.

वर्शन 1.0.0-alpha08

19 नवंबर, 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha08 रिलीज़ हो गया है. वर्शन 1.0.0-alpha08 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • ARCore अब उन डिवाइसों के साथ काम करता है जिन पर Google Play Services for AR उपलब्ध है.
  • VPS की उपलब्धता और पोज़ कन्वर्ज़न (I144dc) के लिए, Geospatial API जोड़े गए

वर्शन 1.0.0-alpha07

22 अक्टूबर, 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.

गड़बड़ियां ठीक की गईं

  • :xr:arcore:arcore-openxr को :xr:arcore:arcore (I47315, b/446999229) में लागू करने की डिपेंडेंसी के तौर पर जोड़ा गया

वर्शन 1.0.0-alpha06

24 सितंबर, 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha06 रिलीज़ हो गया है. वर्शन 1.0.0-alpha06 में ये बदलाव शामिल हैं.

एपीआई में हुए बदलाव

  • ARCore के लिए टेस्टिंग की सुविधा, xr:arcore:arcore-testing मॉड्यूल पर माइग्रेट हो गई है. (I25469)
  • ऐप्लिकेशन को डिवाइस की पोज़िशन और डिसप्ले कॉन्फ़िगरेशन को रेंडर करने के लिए, ArDevice और RenderViewpoint को जोड़ा गया है. (Ib7e3f)
  • HandJointType प्रीफ़िक्स के साथ HandJointType enum का नाम बदलें.HAND_JOINT_TYPE_ (I3f7cd)
  • HandJointType को xr:runtime:runtime से xr:arcore:arcore में ले जाया गया है. (Iadb9c, b/409058039)
  • Hand.State अब java.nio.FloatBuffer को ऐसे फ़ॉर्मैट में दिखाता है जिसमें जॉइंट पोज़ होते हैं. इससे परफ़ॉर्मेंस पर फ़ोकस करने वाले ऐप्लिकेशन को आसानी से ऐक्सेस किया जा सकता है. (I55e27)

वर्शन 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 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • डेवलपर को दाईं ओर की जानकारी (I270bd) मिल सके, इसके लिए getPrimaryHandSide जोड़ें
  • जियोस्पेशल जांच के लिए, वीपीएस की उपलब्धता की जानकारी देने वाला एपीआई (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 एनोटेशन का इस्तेमाल करती है. ये एनोटेशन, टाइप-यूज़ होते हैं. 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 से हिटटेस्ट करें.

मौजूदा समस्याएं

  • unpersist को कॉल करने और getPersistedAnchorUuids से मिले नतीजों से इसके यूयूआईडी को हटाने में कुछ समय लग सकता है.

  • create यह पुष्टि नहीं करेगा कि सिस्टम के पास नए ऐंकर वापस लाने के लिए ज़रूरी संसाधन हैं या नहीं. बहुत ज़्यादा ऐंकर बनाने से, ऐप्लिकेशन क्रैश हो सकता है.

  • फ़िलहाल, ऐसे ऐंकर को सेव करने की सुविधा उपलब्ध नहीं है जिसे पहले सेव किया गया था और फिर सेव नहीं किया गया था.

  • एम्युलेटर में इसका इस्तेमाल किया जा सकता है. हालांकि, हो सकता है कि यह किसी असली डिवाइस पर इस्तेमाल करने जितना स्थिर न हो. खास तौर पर, create को कॉल करने पर, नेटिव कोड की गड़बड़ी हो सकती है और गतिविधि तुरंत बंद हो सकती है.

  • कुछ मामलों में, persist को कॉल करते समय, “ऐंकर सेव नहीं किया गया” मैसेज के साथ RuntimeException गड़बड़ी दिख सकती है. हालांकि, ऐसे मामलों में फ़ंक्शन अब भी काम करेगा और ऐंकर सेव हो जाएगा. हमारा सुझाव है कि इस समस्या को हल करने के लिए, persist को try ब्लॉक में रैप करें.