अपने ऐप्लिकेशन की सेटिंग कॉन्फ़िगर करें, ताकि वह Geospatial API का इस्तेमाल कर सके.
ज़रूरी शर्तें
आगे बढ़ने से पहले, पक्का करें कि आपने एआर के बुनियादी कॉन्सेप्ट और ARCore सेशन को कॉन्फ़िगर करने का तरीका समझ लिया हो.
सैंपल ऐप्लिकेशन और कोडलैब
इस वीडियो में, ऐसा ऐप्लिकेशन बनाने का तरीका बताया गया है जो Geospatial API का इस्तेमाल करके, भौगोलिक डेटा दिखाता है और कॉन्टेंट को असल जगहों पर दिखाता है.
यह तरीका अपनाने के लिए, Geospatial codelab के दस्तावेज़ों का पालन भी किया जा सकता है. वीडियो में बनाए गए सैंपल ऐप्लिकेशन को चलाने के लिए, ARCore Geospatial Quickstart देखें.
Geospatial API के बारे में ज़्यादा जानकारी के लिए, Geospatial API के बारे में जानकारी देखें.
अगर आपने ARCore का इस्तेमाल करके ऐप्लिकेशन बनाने की शुरुआत अभी-अभी की है, तो सॉफ़्टवेयर और हार्डवेयर की ज़रूरी शर्तों, ज़रूरी शर्तों, और इस्तेमाल किए जा रहे प्लैटफ़ॉर्म के बारे में अन्य जानकारी के लिए, शुरू करना देखें.
पक्का करें कि आपका डेवलपमेंट एनवायरमेंट, क्विकस्टार्ट में बताई गई ARCore SDK टूल की ज़रूरी शर्तों को पूरा करता हो.
ARCore API चालू करना
अपने ऐप्लिकेशन में विज़ुअल पोज़िशनिंग सिस्टम (वीपीएस) का इस्तेमाल करने से पहले, आपको किसी नए या मौजूदा Google Cloud प्रोजेक्ट में ARCore API को चालू करना होगा. यह सेवा, जियोस्पेशल ऐंकर को होस्ट करने, सेव करने, और रिज़ॉल्व करने के लिए ज़िम्मेदार है.
बिना पासकोड के अनुमति देने की सुविधा को प्राथमिकता दी जाती है. हालांकि, एपीआई पासकोड की मदद से अनुमति देने की सुविधा भी काम करती है.
अपने ऐप्लिकेशन में ज़रूरी लाइब्रेरी जोड़ना
अपने ऐप्लिकेशन को ARCore API को कॉल करने की अनुमति देने के बाद, आपको अपने ऐप्लिकेशन में जियोस्पेशल सुविधाएं चालू करने के लिए लाइब्रेरी जोड़नी होंगी.
अपने ऐप्लिकेशन की 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
में बदलें:
Config config = session.getConfig(); config.setGeospatialMode(Config.GeospatialMode.ENABLED); session.configure(config);
// 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 की सुविधा उपलब्ध है या नहीं.
जियोस्पेशल एपीआई का इस्तेमाल उन इलाकों में भी किया जा सकता है जहां वीपीएस की सुविधा उपलब्ध नहीं है. अगर आप किसी ऐसे आउटडोर लोकेशन पर हैं जहां ऊपर से कोई रुकावट नहीं है या बहुत कम रुकावटें हैं, तो जीपीएस की मदद से, पोज़ को सटीक तरीके से जनरेट किया जा सकता है.
आगे क्या करना है
- डिवाइस के कैमरे की जियोस्पेशल पोज़िशन की जानकारी पाना, ताकि असल दुनिया में उपयोगकर्ता के डिवाइस की सटीक जगह की जानकारी मिल सके.
- किसी डिवाइस की दी गई जगह पर वीपीएस की उपलब्धता देखना.