इमर्सिव अनुभव बनाने की सुविधा का इस्तेमाल शुरू करना

एक्सआर की सुविधा वाले डिवाइस
इस गाइड की मदद से, इन तरह के एक्सआर डिवाइसों के लिए अनुभव बनाए जा सकते हैं.
एक्सआर हेडसेट
वायर्ड एक्सआर ग्लास

Android Studio इंस्टॉल और कॉन्फ़िगर करने, प्रोजेक्ट बनाने, और Jetpack XR SDK सेट अप करने के बाद, इमर्सिव अनुभव बनाना शुरू किया जा सकता है.

इमर्सिव एक्सआर ऐप्लिकेशन बनाने के सभी तरीके एक्सप्लोर करने से पहले, यहां दी गई जानकारी पढ़ें और इन सेक्शन में दिए गए सभी टास्क पूरे करें. इससे यह पक्का किया जा सकेगा कि आपका ऐप्लिकेशन, इमर्सिव एक्सआर ऐप्लिकेशन बनाने के लिए कॉन्फ़िगर किया गया है.

अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल को कॉन्फ़िगर करना

अन्य Android ऐप्लिकेशन प्रोजेक्ट की तरह, आपके Android XR ऐप्लिकेशन में भी एक AndroidManifest.xml फ़ाइल होनी चाहिए. इसमें मेनिफ़ेस्ट की सेटिंग तय की जाती हैं. मेनिफ़ेस्ट फ़ाइल, Android बिल्ड टूल, Android ऑपरेटिंग सिस्टम, और Google Play को आपके ऐप्लिकेशन के बारे में ज़रूरी जानकारी देती है. ज़्यादा जानकारी के लिए, ऐप्लिकेशन मेनिफ़ेस्ट की खास जानकारी वाली गाइड देखें.

XR की सुविधाओं वाले ऐप्लिकेशन के लिए, आपकी मेनिफ़ेस्ट फ़ाइल में ये एलिमेंट और एट्रिब्यूट होने चाहिए:

PROPERTY_XR_ACTIVITY_START_MODE प्रॉपर्टी

android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE" प्रॉपर्टी की मदद से, सिस्टम को यह जानकारी मिलती है कि किसी गतिविधि को शुरू करते समय, उसे किसी खास मोड में लॉन्च किया जाना चाहिए.

इस प्रॉपर्टी की ये वैल्यू हैं:

  • XR_ACTIVITY_START_MODE_HOME_SPACE (सिर्फ़ Jetpack XR SDK के लिए)
  • XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED (सिर्फ़ Jetpack XR SDK के लिए)

XR_ACTIVITY_START_MODE_HOME_SPACE

होम स्पेस में अपना ऐप्लिकेशन लॉन्च करने के लिए, इस स्टार्ट मोड का इस्तेमाल करें. होम स्पेस में, एक साथ कई ऐप्लिकेशन चलाए जा सकते हैं. इससे उपयोगकर्ता एक साथ कई काम कर सकते हैं. होम स्पेस में, मोबाइल या बड़ी स्क्रीन वाले किसी भी Android ऐप्लिकेशन का इस्तेमाल किया जा सकता है. साथ ही, Jetpack XR SDK का इस्तेमाल करके बनाए गए XR ऐप्लिकेशन भी इस्तेमाल किए जा सकते हैं.

<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
           android:value="XR_ACTIVITY_START_MODE_HOME_SPACE" />
       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED

इस स्टार्ट मोड का इस्तेमाल करके, अपने ऐप्लिकेशन को फ़ुल स्पेस में लॉन्च करें. फ़ुल स्पेस में, एक बार में सिर्फ़ एक ऐप्लिकेशन चलता है. इसमें स्पेस की कोई सीमा नहीं होती और अन्य सभी ऐप्लिकेशन छिपे होते हैं.


<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_ACTIVITY_START_MODE"
           android:value="XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED" />
       <activity
           android:name="com.example.myapp.MainActivity" ... >

           <intent-filter>
               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
       </activity>
   </application>
</manifest>

android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED" प्रॉपर्टी से पता चलता है कि ऐप्लिकेशन को किस तरह की बाउंड्री के साथ लॉन्च किया जाना चाहिए. आपके ऐप्लिकेशन को यह बताना होगा कि XR_BOUNDARY_TYPE_LARGE क्या इसे लोगों को उनके आस-पास की जगहों पर घूमने-फिरने की सुविधा देने के लिए डिज़ाइन किया गया है. XR_BOUNDARY_TYPE_NO_RECOMMENDATION को चुनने पर, सुरक्षा सीमा के टाइप के लिए कोई सुझाव नहीं मिलता है. इसलिए, सिस्टम उस टाइप का इस्तेमाल करता है जो पहले से इस्तेमाल किया जा रहा है.

<manifest ... >

   <application ... >
       <property
           android:name="android.window.PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED"
           android:value="XR_BOUNDARY_TYPE_LARGE" />
   </application>
</manifest>

एक्सआर ऐप्लिकेशन के लिए PackageManager की सुविधाएं

Google Play Store के ज़रिए ऐप्लिकेशन डिस्ट्रिब्यूट करते समय, ऐप्लिकेशन मेनिफ़ेस्ट में ज़रूरी हार्डवेयर या सॉफ़्टवेयर सुविधाओं के बारे में बताया जा सकता है. uses-feature एलिमेंट की मदद से, Play Store पर लोगों को दिखाए जाने वाले ऐप्लिकेशन को सही तरीके से फ़िल्टर किया जा सकता है.

नीचे दी गई सुविधाएं, XR की सुविधा वाले ऐप्लिकेशन के लिए खास तौर पर उपलब्ध हैं.

android.software.xr.api.spatial

Jetpack XR SDK का इस्तेमाल करके बनाए गए ऐप्लिकेशन में, यह सुविधा शामिल होनी चाहिए. android:required एट्रिब्यूट के लिए सेट की गई वैल्यू, आपके ऐप्लिकेशन के रिलीज़ ट्रैक पर निर्भर करती है.

अगर आपके ऐप्लिकेशन बंडलों में, XR की अलग-अलग सुविधाएं या कॉन्टेंट को मौजूदा मोबाइल APK में शामिल किया गया है और उसे मोबाइल रिलीज़ ट्रैक पर पब्लिश किया गया है, तो android:required एट्रिब्यूट को false पर सेट करें:

<!-- If you are publishing an existing mobile APK using the mobile release track, set android:required to false.-->
<uses-feature android:name="android.software.xr.api.spatial" android:required="false" />

अगर आपका ऐप्लिकेशन, XR की सुविधा वाले डिवाइसों के लिए बनाया गया है और उसे Android XR के लिए खास तौर पर बनाए गए रिलीज़ ट्रैक पर पब्लिश किया गया है, तो android:required एट्रिब्यूट को true पर सेट करें:

<!-- If you are publishing a separate APK for XR using the dedicated Android XR release track, set android:required to true.-->
<uses-feature android:name="android.software.xr.api.spatial" android:required="true" />

android.hardware.xr.input.controller

इस सुविधा से पता चलता है कि ऐप्लिकेशन को ठीक से काम करने के लिए, ज़्यादा सटीक और 6DoF (डिग्री ऑफ़ फ़्रीडम) मोशन कंट्रोलर से इनपुट की ज़रूरत होती है. अगर आपका ऐप्लिकेशन कंट्रोलर के साथ काम करता है और उनके बिना काम नहीं कर सकता, तो वैल्यू को true पर सेट करें. अगर आपका ऐप्लिकेशन कंट्रोलर के साथ काम करता है, लेकिन कंट्रोलर के बिना भी इस्तेमाल किया जा सकता है, तो इसे false पर सेट करें.

<!-- Sets android:required to true, indicating that your app can't function on devices without controllers. -->
<uses-feature android:name="android.hardware.xr.input.controller" android:required="true" />

android.hardware.xr.input.hand_tracking

इस फ़्लैग से पता चलता है कि ऐप्लिकेशन को सही तरीके से काम करने के लिए, हाथ की सटीक ट्रैकिंग की ज़रूरत होती है. इसमें उपयोगकर्ता के हाथ की पोज़िशन, ओरिएंटेशन, और जोड़ों की वेलोसिटी शामिल है. अगर आपका ऐप्लिकेशन हाथ के मूवमेंट को ट्रैक करने की सुविधा के साथ काम करता है और इसके बिना काम नहीं कर सकता, तो वैल्यू को true पर सेट करें. अगर आपका ऐप्लिकेशन हाथ के मूवमेंट को ट्रैक करने की सुविधा के साथ काम करता है, लेकिन इसके बिना भी काम कर सकता है, तो इसे false पर सेट करें.

<!-- Sets android:required to true, indicating that your app can't function on devices without hand tracking. -->
<uses-feature android:name="android.hardware.xr.input.hand_tracking" android:required="true" />

android.hardware.xr.input.eye_tracking

इस फ़्लैग से पता चलता है कि ऐप्लिकेशन को इनपुट देने के लिए, हाई-फ़िडेलिटी आई ट्रैकिंग की ज़रूरत होती है, ताकि वह ठीक से काम कर सके. अगर आपका ऐप्लिकेशन, इनपुट के लिए आंखों की गतिविधियों को ट्रैक करने की सुविधा के साथ काम करता है और इसके बिना काम नहीं कर सकता, तो वैल्यू को true पर सेट करें. अगर आपका ऐप्लिकेशन, इनपुट के लिए आंखों को ट्रैक करने की सुविधा के साथ काम करता है, लेकिन इसके बिना भी काम कर सकता है, तो इसे false पर सेट करें.

<!-- Sets android:required to true, indicating that your app can't function on devices without eye tracking. -->
<uses-feature android:name="android.hardware.xr.input.eye_tracking" android:required="true" />

मोबाइल और बड़ी स्क्रीन वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन मेनिफ़ेस्ट की ज़रूरी शर्तें

XR ऐप्लिकेशन के लिए PackageManager की सुविधाएं सेक्शन में बताया गया है कि ऐप्लिकेशन, किसी सुविधा का इस्तेमाल करने का एलान करते हैं. इसके लिए, वे ऐप्लिकेशन मेनिफ़ेस्ट में <uses-feature> एलिमेंट का इस्तेमाल करते हैं. ऐसा हो सकता है कि टेलीफ़ोनी या जीपीएस जैसी कुछ सुविधाएं, सभी डिवाइसों के साथ काम न करें.

किसी डिवाइस के लिए चालू की गई सुविधाओं की सूची पाने के लिए, adb shell pm list features चलाएं.

ये सुविधाएं, Google Play Books के साथ काम नहीं करतीं

Google Play Store, ऐप्लिकेशन को फ़िल्टर करता है. इससे यह पता चलता है कि किसी डिवाइस पर कौनसे ऐप्लिकेशन इंस्टॉल किए जा सकते हैं. इसके लिए, Android की इन सुविधाओं के बारे में जानकारी दी जाती है.

कैमरे का हार्डवेयर

android.hardware.camera.ar

android.hardware.camera.autofocus

android.hardware.camera.capability.manual_post_processing

android.hardware.camera.capability.manual_sensor

android.hardware.camera.capability.raw

android.hardware.camera.concurrent

android.hardware.camera.external

android.hardware.camera.flash

android.hardware.camera.level.full

कनेक्टिविटी

android.hardware.ethernet

android.hardware.uwb

android.hardware.ipsec_tunnel_migration

डिवाइस कॉन्फ़िगरेशन

android.hardware.ram.low

डिवाइस के नाप या आकार का कॉन्फ़िगरेशन

android.hardware.type.automotive

android.hardware.type.embedded

android.hardware.type.pc

android.hardware.type.television

android.hardware.type.watch

android.software.leanback

android.software.leanback_only

android.software.live_tv

टेक्स्ट लिखो

android.hardware.consumerir

android.software.input_methods

जगह की जानकारी

android.hardware.location.gps

नियर फ़ील्ड कम्यूनिकेशन

android.hardware.nfc

android.hardware.nfc.ese

android.hardware.nfc.hce

android.hardware.nfc.hcef

android.hardware.nfc.uicc

android.hardware.nfc.beam

सुरक्षा कॉन्फ़िगरेशन और हार्डवेयर

android.hardware.se.omapi.ese

android.hardware.se.omapi.sd

android.hardware.se.omapi.uicc

android.hardware.biometrics.face

android.hardware.fingerprint

android.hardware.identity_credential

android.hardware.identity_credential_direct_access

android.hardware.keystore.limited_use_key

android.hardware.keystore.single_use_key

android.hardware.strongbox_keystore

सेंसर

android.hardware.sensor.accelerometer_limited_axes

android.hardware.sensor.accelerometer_limited_axes_uncalibrated

android.hardware.sensor.ambient_temperature

android.hardware.sensor.barometer

android.hardware.sensor.gyroscope_limited_axes

android.hardware.sensor.gyroscope_limited_axes_uncalibrated

android.hardware.sensor.heading

android.hardware.sensor.heartrate

android.hardware.sensor.heartrate.ecg

android.hardware.sensor.hinge_angle

android.hardware.sensor.light

android.hardware.sensor.relative_humidity

android.hardware.sensor.stepcounter

android.hardware.sensor.stepdetector

सॉफ़्टवेयर कॉन्फ़िगरेशन

android.software.backup

android.software.connectionservice

android.software.expanded_picture_in_picture

android.software.live_wallpaper

android.software.picture_in_picture

android.software.telecom

android.software.wallet_location_based_suggestions

टेलीफ़ोनी

android.hardware.telephony

android.hardware.telephony.calling

android.hardware.telephony.cdma

android.hardware.telephony.data

android.hardware.telephony.euicc

android.hardware.telephony.euicc.mep

android.hardware.telephony.gsm

android.hardware.telephony.ims

android.hardware.telephony.mbms

android.hardware.telephony.messaging

android.hardware.telephony.radio.access

android.hardware.telephony.subscription

android.software.sip

android.software.sip.voip

वर्चुअल रिएलिटी (लेगसी)

android.hardware.vr.headtracking

android.hardware.vr.high_performance

android.software.vr.mode

विजेट

android.software.app_widgets

अगले चरण

अब, जबकि आपने अपने ऐप्लिकेशन के मेनिफ़ेस्ट को कॉन्फ़िगर कर लिया है और अहम जानकारी देख ली है, तो इमर्सिव अनुभव बनाने के तरीके जानें: