अपने Android ऐप्लिकेशन (Kotlin/Java) के लिए जियोस्पेशियल एपीआई चालू करना

अपने ऐप्लिकेशन की सेटिंग कॉन्फ़िगर करें, ताकि वह Geospatial API का इस्तेमाल कर सके.

ज़रूरी शर्तें

आगे बढ़ने से पहले, पक्का करें कि आपने एआर के बुनियादी कॉन्सेप्ट और ARCore सेशन को कॉन्फ़िगर करने का तरीका समझ लिया हो.

सैंपल ऐप्लिकेशन और कोडलैब

इस वीडियो में, ऐसा ऐप्लिकेशन बनाने का तरीका बताया गया है जो Geospatial API का इस्तेमाल करके, भौगोलिक डेटा दिखाता है और कॉन्टेंट को असल जगहों पर दिखाता है.

इन चरणों के लिए, जियोस्पेशियल कोडलैब दस्तावेज़ का भी पालन किया जा सकता है. वीडियो में बनाए गए सैंपल ऐप्लिकेशन को चलाने के लिए, ARCore Geospatial Quickstart देखें.

Geospatial API के बारे में ज़्यादा जानकारी के लिए, Geospatial API के बारे में जानकारी देखें.

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

पक्का करें कि आपका डेवलपमेंट एनवायरमेंट, क्विकस्टार्ट में बताई गई ARCore SDK टूल की ज़रूरी शर्तों को पूरा करता हो.

ARCore API चालू करना

अपने ऐप्लिकेशन में विज़ुअल पोज़िशनिंग सिस्टम (वीपीएस) का इस्तेमाल करने से पहले, आपको किसी नए या मौजूदा Google Cloud प्रोजेक्ट में ARCore API को चालू करना होगा. यह सेवा, जियोस्पेशल ऐंकर को होस्ट करने, सेव करने, और रिज़ॉल्व करने के लिए ज़िम्मेदार है.

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

अपने ऐप्लिकेशन में ज़रूरी लाइब्रेरी जोड़ना

अपने ऐप्लिकेशन को ARCore एपीआई को कॉल करने की अनुमति देने के बाद, आपको अपने ऐप्लिकेशन में भौगोलिक डेटा से जुड़ी सुविधाएं चालू करने के लिए लाइब्रेरी जोड़नी होंगी.

अपने ऐप्लिकेशन की build.gradle फ़ाइल में, Google Play services सेट अप करें, ताकि Play services की जगह की जानकारी वाली लाइब्रेरी शामिल की जा सके.

dependencies {
  // Apps must declare play-services-location version >= 16.
  // In the following line, substitute `16 (or later)` with the latest version.
  implementation 'com.google.android.gms:play-services-location:16 (or later)'
}

सेशन कॉन्फ़िगरेशन में, भौगोलिक डेटा से जुड़ी सुविधाएं चालू करना

सेशन बनाने से पहले, अपने सेशन कॉन्फ़िगरेशन में GeospatialMode को ENABLED में बदलें:

Java

Config config = session.getConfig();
config.setGeospatialMode(Config.GeospatialMode.ENABLED);
session.configure(config);

Kotlin

// Enable the Geospatial API.
session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })

जब जियोस्पेशियल मोड ENABLED पर सेट होता है, तब ऐप्लिकेशन को विज़ुअल पोज़िशनिंग सिस्टम (वीपीएस) से भौगोलिक जानकारी हासिल करने की अनुमति होती है.

उपयोगकर्ता को डिवाइस का डेटा इस्तेमाल करने की अनुमति देने का अनुरोध करें

ARCore Geospatial API का इस्तेमाल करने वाले ऐप्लिकेशन को उपयोगकर्ता को एक प्रॉम्प्ट दिखाना होगा, ताकि वह अपने डिवाइस के डेटा का इस्तेमाल करने की अनुमति दे सके. ज़्यादा जानकारी के लिए, उपयोगकर्ता की निजता से जुड़ी ज़रूरी शर्तें देखें.

देखें कि यह सुविधा किन डिवाइसों पर काम करती है

शुरुआती जानकारी में बताए गए मुताबिक, ARCore की सुविधा वाले सभी डिवाइसों पर Geospatial API काम नहीं करता.

यह देखने के लिए कि उपयोगकर्ता का डिवाइस, Hangouts Meet के साथ काम करता है या नहीं, Session.checkGeospatialModeSupported() को कॉल करें. अगर यह फ़ॉल्स दिखाता है, तो सेशन (नीचे) को कॉन्फ़िगर करने की कोशिश न करें. ऐसा करने पर, UnsupportedConfigurationException दिखेगा.

रनटाइम के दौरान, उपयोगकर्ता से जगह की जानकारी की अनुमतियां मांगना

आपके ऐप्लिकेशन को रनटाइम के दौरान जगह की जानकारी की अनुमतियों का अनुरोध करना होगा.

ARCore Geospatial API का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन को ये अतिरिक्त अनुमतियां रजिस्टर करनी होंगी:

  • ACCESS_FINE_LOCATION उपयोगकर्ता की जगह की जानकारी सटीक तौर पर तय करने के लिए.

  • ACCESS_COARSE_LOCATION उपयोगकर्ता की जगह की सटीक जानकारी न देने के लिए और उपयोगकर्ता की निजता से जुड़ी ज़रूरी शर्तों का पालन करने के लिए. हालांकि, Geospatial API को अस्पष्ट जगह की जानकारी के साथ काम करने के लिए कॉन्फ़िगर नहीं किया जा सकता. साथ ही, जब उपयोगकर्ता ने यह अनुमति सेट की होगी, तो एपीआई के अनुरोध काम नहीं करेंगे. ज़्यादा जानकारी के लिए नीचे देखें.

  • ACCESS_INTERNET ARCore Geospatial API सेवा से संपर्क करने के लिए है.

<manifest ... >
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.INTERNET" />
</manifest>

Android 12 या उसके बाद के वर्शन वाले डिवाइसों पर, उपयोगकर्ता अनुरोध कर सकते हैं कि आपके ऐप्लिकेशन के पास सिर्फ़ जगह की अनुमानित जानकारी का ऐक्सेस हो. इस अनुरोध को पूरा करने के लिए, आपके ऐप्लिकेशन में ऊपर दिखाए गए ACCESS_FINE_LOCATION के साथ-साथ, ACCESS_COARSE_LOCATION अनुमति कॉन्फ़िगर की जानी चाहिए. आपको जगह की जानकारी की दोनों अनुमतियों को कॉन्फ़िगर करना होगा.

हालांकि, जब उपयोगकर्ता अनुमानित जगह की जानकारी देते हैं, तो ऐसा करने से Geospatial API को जगह की सटीक जानकारी नहीं मिल पाती. अगर आपका ऐप्लिकेशन, जगह की जानकारी की सटीक जानकारी के बजाय सिर्फ़ अनुमानित जानकारी देता है, तो जियोस्पेशल सेवा खुद को कॉन्फ़िगर नहीं कर पाएगी. आपका ऐप्लिकेशन, जगह की अनुमानित जानकारी के साथ Geospatial API का इस्तेमाल नहीं कर सकता.

डिवाइस की मौजूदा जगह पर जियोस्पेशल डेटा की उपलब्धता देखना

जियोस्पेशल पोज़ का पता लगाने के लिए, Geospatial API VPS और जीपीएस, दोनों का इस्तेमाल करता है. इसलिए, जब तक डिवाइस की जगह की जानकारी का पता चलता है, तब तक एपीआई का इस्तेमाल किया जा सकता है. जिन जगहों पर जीपीएस की सटीक जानकारी नहीं मिलती, जैसे कि इनडोर स्पेस और शहर के घने इलाके, वहां एपीआई वीपीएस कवरेज का इस्तेमाल करके सटीक पोज़ जनरेट करेगा. सामान्य स्थितियों में, वीपीएस से जगह की सटीक जानकारी करीब 5 मीटर और घूमने की सटीक जानकारी 5 डिग्री तक मिल सकती है. Session.checkVpsAvailabilityAsync() का इस्तेमाल करके पता लगाएं कि किसी जगह पर VPS की सुविधा उपलब्ध है या नहीं.

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

आगे क्या करना है