Jetpack XR के लिए ARCore, आपके ऐप्लिकेशन को कई तरह के एपीआई के ज़रिए असल दुनिया को समझने की बेहतरीन क्षमताएं देता है. इनमें से कुछ एपीआई, एक्सआर हेडसेट और वायर वाले एक्सआर के स्मार्ट ग्लास जैसे डिवाइसों पर इमर्सिव अनुभव को बेहतर बनाने में मदद करते हैं. कुछ एपीआई, एआई वाले स्मार्ट ग्लास जैसे डिवाइसों पर ऑगमेंटेड अनुभव को बेहतर बनाने में मदद करते हैं. वहीं, कुछ एपीआई, Android XR वाले सभी डिवाइसों पर ऐप्लिकेशन इस्तेमाल करने के अनुभव को बेहतर बनाने में मदद करते हैं.
उदाहरण के लिए, Jetpack XR के लिए ARCore का इस्तेमाल करके, प्लेनर डेटा को वापस पाया जा सकता है. साथ ही, कॉन्टेंट को स्पेस में किसी तय जगह पर ऐंकर किया जा सकता है या जियोस्पेशल पोज़ का इस्तेमाल करके, कॉन्टेंट को असल दुनिया की किसी जगह पर ऐंकर किया जा सकता है.
लाइब्रेरी डिपेंडेंसी जोड़ना
अपने एक्सआर ऐप्लिकेशन में परसेप्शन की सुविधाओं का इस्तेमाल करने से पहले, ज़रूरी डिपेंडेंसी जोड़ें. ये डिपेंडेंसी, एआर की मदद से बेहतर बनाए जा रहे ऐप्लिकेशन इस्तेमाल करने के अनुभव के टाइप पर निर्भर करती हैं.
सेशन ऐक्सेस करना
Jetpack XR के लिए ARCore में मौजूद परसेप्शन की सुविधाएं, Session पर निर्भर करती हैं. यह Jetpack XR रनटाइम का इस्तेमाल करता है.
आपके ऐप्लिकेशन को सेशन को कैसे ऐक्सेस करना चाहिए, यह इस बात पर निर्भर करता है कि आपके ऐप्लिकेशन इस्तेमाल करने का अनुभव किस तरह का है. इन अनुभवों को परसेप्शन की सुविधाओं की मदद से बेहतर बनाया जा सकता है:
- अगर आपका ऐप्लिकेशन, Jetpack Compose for XR का इस्तेमाल करके स्पेशल यूआई के साथ इमर्सिव अनुभव को बेहतर बना रहा है, तो Jetpack Compose for XR से कोई सेशन ऐक्सेस करें.
- अन्य सभी स्थितियों के लिए, Jetpack XR रनटाइम का इस्तेमाल करके सेशन बनाया जा सकता है. इसके बारे में इस पेज पर, अगले सेक्शन में बताया गया है.
Jetpack XR रनटाइम का इस्तेमाल करके सेशन बनाना
सेशन बनाने के लिए, create() तरीके में Context पास करें. यह Context, इमर्सिव एक्सआर डिवाइसों या मोबाइल डिवाइसों पर Activity या इंटेलिजेंट आईवियर पर प्रोजेक्ट किया गया कॉन्टेक्स्ट हो सकता है.
ARCore सेशन बनाना एक मुश्किल काम हो सकता है. इसलिए, इसे बैकग्राउंड में प्रोसेस किया जाना चाहिए, जैसा कि इस उदाहरण में दिखाया गया है:
lifecycleScope.launch { when (val result = Session.create(context)) { is SessionCreateSuccess -> { val xrSession = result.session // ... } else -> TODO(/* A different unhandled exception was thrown. */) } }
create() फ़ंक्शन, वैकल्पिक LifecycleOwner पैरामीटर का इस्तेमाल कर सकता है. इससे सेशन की लाइफ़साइकल को किसी दूसरे LifecycleOwner से मैनेज किया जा सकता है. LifecycleOwner को अपनी लाइफ़साइकल, दिए गए कॉन्टेक्स्ट के दायरे में ही शुरू और खत्म करनी चाहिए. ऐसा न होने पर, Session लीक हो सकता है.
सेशन कॉन्फ़िगर करना
ऐसा हो सकता है कि कुछ सुविधाएं डिफ़ॉल्ट रूप से बंद हों. उन्हें इस्तेमाल करने के लिए, आपको उन्हें कॉन्फ़िगर करना होगा. किसी सेशन को कॉन्फ़िगर करने के लिए, configure() का इस्तेमाल करें. साथ ही, कॉन्फ़िगरेशन के वे विकल्प चुनें जिनकी ज़रूरत आपके Session को है. एआर की अलग-अलग सुविधाओं के लिए ज़रूरी कॉन्फ़िगरेशन के बारे में जानने के लिए, एआर की हर सुविधा के लिए उससे जुड़े पेज देखें.
अगले चरण
ऐप्लिकेशन में सेशन शुरू होने के बाद, अलग-अलग एक्सआर डिवाइसों पर ऐप्लिकेशन इस्तेमाल करने के अनुभव को बेहतर बनाने के लिए, इन तरीकों को आज़माएं:
- Jetpack XR के लिए ARCore का इस्तेमाल करके प्लेन का पता लगाना
- Jetpack XR के लिए ARCore की मदद से ऐंकर बनाना
- ARCore for Jetpack XR का इस्तेमाल करके, हाथों से काम करना
- Jetpack XR के लिए ARCore की मदद से, अपने ऐप्लिकेशन में चेहरा ट्रैक करने की सुविधा शामिल करना
- Jetpack XR के लिए ARCore की मदद से, अपने ऐप्लिकेशन में डेप्थ की जानकारी पाना
- Jetpack XR के लिए ARCore का इस्तेमाल करके, डिवाइस के पोज़ को ट्रैक करना