Jetpack XR के लिए ARCore

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

डिपेंडेंसी की जानकारी देना

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

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

ग्रूवी

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

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha13"
    implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13"
}

Kotlin

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

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha13")
    implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13")
}

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

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

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

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

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

वर्शन 1.0

वर्शन 1.0.0-alpha13

6 मई, 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)
  • ऑर्बिटर को अब पोज़िशन, ऑफ़सेट, ऑफ़सेट टाइप, अलाइनमेंट, और एलिवेशन के बजाय, OrbiterAnchorPoint + VolumeOffset या OrbiterPoseProvider का इस्तेमाल करने के लिए बदला गया है. साथ ही, shouldRenderInNonSpatial पैरामीटर को भी हटा दिया गया है. अगर डेवलपर नहीं चाहते कि ऑर्बिटर, नॉन-स्पेशल में रेंडर हो, तो उन्हें ऑर्बिटर को if स्टेटमेंट में रैप करना चाहिए और SpatialCapabilities की जांच करनी चाहिए. (I9fbb3, b/462428503)
  • मूवेबल मॉडिफ़ायर जोड़े गए. फ़िलहाल, ये मॉडिफ़ायर SpatialPanels और SpatialExternalSurface के लिए अच्छी तरह काम करते हैं. जल्द ही, इन्हें SpatialGltfModels के लिए भी इस्तेमाल किया जा सकेगा. हालांकि, हमारा मकसद है कि ये सभी SubspaceComposables के लिए अच्छी तरह काम करें. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • डेवलपर से उम्मीद की जाती है कि वे State.trackingState को मॉनिटर करने के लिए, ArDevice.state फ़्लो को देखें. साथ ही, ट्रैकिंग की फ़िडेलिटी के आधार पर, अपने ऐप्लिकेशन की रेंडरिंग या चेतावनियों को अडजस्ट करें. (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 कर दिया गया है. साथ ही, इसके लिए अब फ़ॉल बैक की सुविधा उपलब्ध नहीं है. इसके अलावा, 3DoF ट्रैकिंग के लिए INERTIAL_LAST_KNOWN जोड़ा गया है. साथ ही, TrackingState में TRACKING_DEGRADED जोड़ा गया है. (Ie661c, b/445466590)
  • GroupEntity अब काम नहीं करता. सिर्फ़ बेस एंटिटी की सुविधा वाली एंटिटी पाने के लिए, Entity.create को कॉल करें. इससे एंटिटी इंटरफ़ेस मिलेगा. (I4c450, b/473867483)
  • XrLog एपीआई जोड़ा गया. 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 कॉन्टेक्स्ट पास करने की अनुमति देने के लिए, Session.create ओवरलोड जोड़ा गया. (I7d3fe, b/415805990, b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT को बदलकर FakeRuntimeAnchor.anchorResourceLimit किया गया. (I90841, b/431992235)
  • TiltGesture एपीआई को एक्सपेरिमेंटल बनाया गया है, क्योंकि इसे आने वाले समय में बदला या हटाया जा सकता है. इस एपीआई का इस्तेमाल करने के लिए, @ExperimentalGesturesApi को ऑप्ट-इन करें (Ic9858)
  • कॉन्फ़िगरेशन में, AugmentedObject ट्रैकिंग के लिए कैटगरी सेट करने की सुविधा जोड़ी गई (I1f6e4, b/480220930)

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

  • PerceptionRuntimeFactory की असल जगह की जानकारी के साथ META-INF/services/ फ़ाइल को अपडेट करके, 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 लॉगिंग के तरीके का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, androidx.xr.runtime.Log देखें. (l52735, b/448697662)

एपीआई में किए गए बदलाव

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

वर्शन 1.0.0-alpha09

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

नई सुविधाएं

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

वर्शन 1.0.0-alpha07

22 अक्टूबर, 2025

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

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

  • :xr:arcore:arcore में, :xr:arcore:arcore-openxr को लागू करने के लिए डिपेंडेंसी के तौर पर जोड़ा गया (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 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 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • getPrimaryHandSide जोड़ा गया, ताकि डेवलपर को हाथ की साइड की जानकारी मिल सके (I270bd)
  • वीपीएस की उपलब्धता की जांच करने के लिए, Geospatial API जोड़ा गया (I58573)
  • checkVpsAvailability के लिए, ARCore API जोड़ा गया (Idbded)
  • Java डेवलपर के इस्तेमाल के लिए, :xr:arcore:arcore-rxjava3 में stateFlowable एक्सटेंशन फ़ंक्शन जोड़े गए. (I083aa, b/427247794)

एपीआई में किए गए बदलाव

  • कॉन्फ़िगरेशन *Mode vals के नाम बदलकर, उनके काम करने के तरीके के हिसाब से रखे गए हैं. (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 में Anchor.persistAsync() जोड़ा गया. (I4af1c, b/425984631)
  • Java डेवलपर के इस्तेमाल के लिए, EarthGuava में Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) जोड़ा गया. (I66357, b/425992992)
  • Java डेवलपर, GltfModel.kt में GltfModel.createAsync के लिए, एक्सटेंशन फ़ंक्शन का इस्तेमाल करेंगे. GltfModel में मौजूद एसिंक फ़ंक्शन मिटा दिए जाएंगे. (I0af60)
  • इस लाइब्रेरी में अब JSpecify की नलनेस एनोटेशन का इस्तेमाल किया जाता है. ये टाइप-यूज़ एनोटेशन हैं. 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 लाइब्रेरी से प्रेरणा लेकर, Jetpack XR के लिए ARCore लाइब्रेरी, डिजिटल कॉन्टेंट को असल दुनिया के साथ ब्लेंड करने की सुविधाएं उपलब्ध कराती है. इस लाइब्रेरी में मोशन ट्रैकिंग, परसिस्टेंट ऐंकर, हिट टेस्टिंग, और सिमेंटिक लेबलिंग (उदाहरण के लिए, फ़्लोर, दीवारें, और टेबलटॉप) के साथ प्लेन की पहचान करने की सुविधाएं शामिल हैं. Jetpack XR के लिए ARCore के साथ काम करने के बारे में ज़्यादा जानने के लिए, डेवलपर गाइड देखें.

  • Session: Jetpack XR के लिए ARCore, अपनी सुविधाओं को बेहतर बनाने के लिए, बैकग्राउंड में Jetpack XR Runtime का इस्तेमाल करता है. Jetpack XR के लिए ARCore के ज़्यादातर एपीआई के साथ इंटरैक्ट करने के लिए, आपको सेशन का इस्तेमाल करना होगा. इसलिए, कृपया इसका दस्तावेज़ देखें.

  • Plane: अपने आस-पास की दुनिया को समझने के लिए, प्लेन का इस्तेमाल करें. हर प्लेन में एक Label होता है, जो सिमेंटिक तौर पर उसका ब्यौरा देता है. हाल ही में पता लगाए गए प्लेन के बारे में सूचना पाने के लिए, subscribe का इस्तेमाल किया जा सकता है. वहीं, किसी खास प्लेन में किए गए बदलावों के बारे में सूचना पाने के लिए, state का इस्तेमाल किया जा सकता है.

  • Anchor: वर्चुअल ऑब्जेक्ट और असल दुनिया की जगह के बीच का लिंक. एंकर को स्पेस में किसी खास जगह (create का इस्तेमाल करके) या Trackable (createAnchor का इस्तेमाल करके) से जोड़ा जा सकता है.

    • एंकर का फिर से इस्तेमाल किया जा सकता है. इन्हें सेव करने के लिए persist, इनकी गिनती करने के लिए getPersistedAnchorUuids, और इन्हें वापस पाने के लिए load का इस्तेमाल किया जा सकता है. पक्का करें कि इस्तेमाल में न होने पर, इन्हें unpersist कर दिया जाए.

    • एंकर, Jetpack XR के लिए ARCore और Jetpack SceneCore के बीच इंटरऑपरेबल होते हैं. एंकर का इस्तेमाल करके, AnchorEntity बनाया जा सकता है. इसके अलावा, अगर आपके पास पहले से कोई AnchorEntity है, तो इसके बैकअप ऐंकर को वापस पाने के लिए, getAnchor का इस्तेमाल किया जा सकता है.

    • hitTest का इस्तेमाल करके, उपयोगकर्ता के साथ स्वाभाविक इंटरैक्शन उपलब्ध कराएं. hitTest, Ray का इस्तेमाल करके यह पता लगाता है कि यह किन कॉन्टेंट को इंटरसेक्ट करता है. साथ ही, उस जगह से Anchor बनाता है. InputEvent से hitTest करने पर विचार करें.

पहले से मालूम समस्याएं

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

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

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

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

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