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

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

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

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

ऐप्लिकेशन और कोडलैब का नमूना

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

जियोस्पेशियल कोडलैब (कोड बनाना सीखना) को भी फ़ॉलो किया जा सकता है दस्तावेज़ पढ़ें. वीडियो में बनाए गए सैंपल ऐप्लिकेशन को चलाने के लिए, ARCore जियोस्पेशल क्विकस्टार्ट देखें.

देखें ज़्यादा जानकारी के लिए, 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 में बदलें:

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 काम नहीं करता.

यह देखने के लिए कि उपयोगकर्ता का डिवाइस, इस सुविधा के साथ काम करता है या नहीं, 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_COARSE_LOCATION अनुमति कॉन्फ़िगर की गई. ACCESS_FINE_LOCATION जैसा कि ऊपर दिखाया गया है. आपको जगह की जानकारी की दोनों अनुमतियां कॉन्फ़िगर करनी होंगी.

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

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

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

Geospatial API का इस्तेमाल उन इलाकों में भी किया जा सकता है जहां वीपीएस कवरेज नहीं है. बाहर के वातावरण में बहुत कम या कोई रुकावट नहीं होने पर, जीपीएस को बहुत ज़्यादा सटीक पोज़ देने के लिए काफ़ी मदद मिल सकती है.

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