इस पेज पर, Google Maps टेंप्लेट का इस्तेमाल किए बिना, Android के लिए Maps SDK का इस्तेमाल करने के लिए, Android Studio प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है. Google Maps टेंप्लेट के बारे में ज़्यादा जानकारी, क्विकस्टार्ट में दी गई है.
Google Maps का टेंप्लेट, Android Studio के नए प्रोजेक्ट में बुनियादी मैप को अपने-आप कॉन्फ़िगर करता है और उसे जोड़ता है. हालांकि, किसी ऐसे Android प्रोजेक्ट में भी मैप जोड़ा जा सकता है जो Android Studio के किसी दूसरे टेंप्लेट का इस्तेमाल करता है. इसके लिए, आपको मैन्युअल तरीके से अपना प्रोजेक्ट कॉन्फ़िगर करना होगा. इसके बाद, मैप जोड़ें.
पहला चरण: Android Studio सेट अप करना
इस दस्तावेज़ में, Android Studio Hedgehog और Android Gradle प्लगिन के वर्शन 8.2 का इस्तेमाल करके डेवलपमेंट एनवायरमेंट के बारे में बताया गया है.
दूसरा चरण. एसडीके टूल सेट अप करना
Maps SDK for Android लाइब्रेरी, Google की Maven रिपॉज़िटरी के ज़रिए उपलब्ध है. अपने ऐप्लिकेशन में SDK टूल जोड़ने के लिए, यह तरीका अपनाएं:
- अपनी टॉप-लेवल
settings.gradle.kts
फ़ाइल में,pluginManagement
ब्लॉक के तहत Gradle प्लगिन पोर्टल, Google Maven रिपॉज़िटरी, और Maven Central रिपॉज़िटरी को शामिल करें.pluginManagement
ब्लॉक, स्क्रिप्ट में मौजूद किसी भी अन्य स्टेटमेंट से पहले दिखना चाहिए.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- अपनी टॉप-लेवल
settings.gradle.kts
फ़ाइल में,dependencyResolutionManagement
ब्लॉक के नीचे Google की Maven रिपॉज़िटरी और Maven Central रिपॉज़िटरी शामिल करें:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- अपने मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल में, Android के लिए Maps SDK टूल के लिए Google Play services डिपेंडेंसी जोड़ें.Kotlin
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:19.0.0") }
ग्रूवी
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:19.0.0" }
- अपने मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल में,compileSdk
औरminSdk
को इन वैल्यू पर सेट करें:Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 21 // ... } }
ग्रूवी
android { compileSdk 34 defaultConfig { minSdk 21 // ... } }
- अपने मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल केbuildFeatures
सेक्शन में,BuildConfig
क्लास जोड़ें. इसका इस्तेमाल, इस तरीके में बाद में तय की गई मेटाडेटा वैल्यू को ऐक्सेस करने के लिए किया जा सकता है:Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
ग्रूवी
android { // ... buildFeatures { buildConfig true // ... } }
तीसरा चरण: प्रोजेक्ट में अपनी एपीआई कुंजी जोड़ना
इस सेक्शन में, एपीआई पासकोड को सेव करने का तरीका बताया गया है, ताकि आपका ऐप्लिकेशन इसे सुरक्षित तरीके से रेफ़र कर सके. आपको अपने वर्शन कंट्रोल सिस्टम में एपीआई पासकोड की जांच नहीं करनी चाहिए. इसलिए, हम इसे secrets.properties
फ़ाइल में सेव करने का सुझाव देते हैं. यह फ़ाइल, आपके प्रोजेक्ट की रूट डायरेक्ट्री में मौजूद होती है. secrets.properties
फ़ाइल के बारे में ज़्यादा जानने के लिए, Gradle प्रॉपर्टी फ़ाइलें देखें.
हमारा सुझाव है कि इस काम को आसान बनाने के लिए, Android के लिए सीक्रेट ग्रेडल प्लग इन का इस्तेमाल करें.
अपने Google Maps प्रोजेक्ट में, Android के लिए Secrets Gradle Plugin इंस्टॉल करने के लिए:
-
Android Studio में, टॉप-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल खोलें. इसके बाद,buildscript
में मौजूदdependencies
एलिमेंट में यह कोड जोड़ें.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
ग्रूवी
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
अपने मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल खोलें औरplugins
एलिमेंट में यह कोड जोड़ें.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
ग्रूवी
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- अपने मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल में, पक्का करें किtargetSdk
औरcompileSdk
को 34 पर सेट किया गया हो. - अपने प्रोजेक्ट को Gradle के साथ सिंक करें.
-
अपनी टॉप-लेवल डायरेक्ट्री में
secrets.properties
फ़ाइल खोलें. इसके बाद, यह कोड जोड़ें.YOUR_API_KEY
को अपने एपीआई पासकोड से बदलें. अपनी कुंजी को इस फ़ाइल में सेव करें, क्योंकिsecrets.properties
को वर्शन कंट्रोल सिस्टम में शामिल नहीं किया जाता.MAPS_API_KEY=YOUR_API_KEY
-
अपनी टॉप-लेवल डायरेक्ट्री में
local.defaults.properties
फ़ाइल बनाएं. यह फ़ाइल,secrets.properties
फ़ाइल वाले फ़ोल्डर में ही होनी चाहिए. इसके बाद, यह कोड जोड़ें.MAPS_API_KEY=DEFAULT_API_KEY
इस फ़ाइल का मकसद, एपीआई पासकोड के लिए बैकअप की जगह उपलब्ध कराना है. ऐसा तब किया जाता है, जब
secrets.properties
फ़ाइल नहीं मिलती है, ताकि बिल्ड फ़ेल न हों. ऐसा तब हो सकता है, जब आपने वर्शन कंट्रोल सिस्टम से ऐप्लिकेशन को क्लोन किया हो, जिसमेंsecrets.properties
शामिल न हो और आपने एपीआई पासकोड देने के लिए, अब तक स्थानीय तौर परsecrets.properties
फ़ाइल न बनाई हो. -
अपनी
AndroidManifest.xml
फ़ाइल में,com.google.android.geo.API_KEY
पर जाएं औरandroid:value attribute
अपडेट करें. अगर<meta-data>
टैग मौजूद नहीं है, तो इसे<application>
टैग के चाइल्ड के तौर पर बनाएं.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
ध्यान दें: एपीआई कुंजी के लिए,
com.google.android.geo.API_KEY
मेटाडेटा का नाम इस्तेमाल करने का सुझाव दिया जाता है. इस नाम वाली कुंजी का इस्तेमाल, Android प्लैटफ़ॉर्म पर Google Maps पर आधारित कई एपीआई के लिए पुष्टि करने के लिए किया जा सकता है. इनमें Maps SDK for Android भी शामिल है. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, एपीआईcom.google.android.maps.v2.API_KEY
नाम का इस्तेमाल भी किया जा सकता है. इस लेगसी नाम से, सिर्फ़ Android Maps API v2 को पुष्टि करने की अनुमति मिलती है. कोई ऐप्लिकेशन, एपीआई कुंजी के मेटाडेटा के नामों में से सिर्फ़ एक नाम तय कर सकता है. अगर दोनों को तय किया जाता है, तो एपीआई एक अपवाद दिखाता है. -
Android Studio में, मॉड्यूल-लेवल की
build.gradle.kts
याbuild.gradle
फ़ाइल खोलें औरsecrets
प्रॉपर्टी में बदलाव करें. अगरsecrets
प्रॉपर्टी मौजूद नहीं है, तो उसे जोड़ें.propertiesFileName
कोsecrets.properties
पर सेट करने के लिए, प्लगिन की प्रॉपर्टी में बदलाव करें. साथ ही,defaultPropertiesFileName
कोlocal.defaults.properties
पर सेट करें और अन्य प्रॉपर्टी सेट करें.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
ग्रूवी
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
चौथा चरण: ऐप्लिकेशन मेनिफ़ेस्ट अपडेट करना
इस सेक्शन में, AndroidManifest.xml
फ़ाइल में जोड़ने के लिए सेटिंग के बारे में बताया गया है.
Google Play services का वर्शन नंबर
application
एलिमेंट में यह एलान जोड़ें. इससे Google Play services का वह वर्शन एम्बेड होता है जिसके साथ ऐप्लिकेशन को कंपाइल किया गया था.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
जगह की जानकारी की अनुमति
अगर आपके ऐप्लिकेशन को उपयोगकर्ता की जगह की जानकारी ऐक्सेस करनी है, तो आपको अपनी AndroidManifest.xml
फ़ाइल में जगह की जानकारी ऐक्सेस करने की अनुमति का अनुरोध करना होगा. इसके दो विकल्प हैं:
ACCESS_FINE_LOCATION
, जो डिवाइस की सटीक जगह की जानकारी देता है और
ACCESS_COARSE_LOCATION
, जो कम सटीक जानकारी देता है. ज़्यादा जानकारी के लिए, जगह की जानकारी का डेटा गाइड देखें.
ACCESS_FINE_LOCATION
अनुमति का अनुरोध करने के लिए, इस कोड को manifest
एलिमेंट में जोड़ें:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
बाहरी स्टोरेज की अनुमति
अगर आपको Google Play services SDK के वर्शन 8.3 या इसके बाद के वर्शन को टारगेट करना है, तो आपको WRITE_EXTERNAL_STORAGE
अनुमति की ज़रूरत नहीं है. अगर आपको Google Play services SDK के पुराने वर्शन को टारगेट करना है, तो आपको manifest
एलिमेंट में WRITE_EXTERNAL_STORAGE अनुमति का अनुरोध करना होगा.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Apache HTTP लेगसी लाइब्रेरी
अगर com.google.android.gms:play-services-maps:16.0.0
या इससे पहले के वर्शन का इस्तेमाल किया जा रहा है और आपका ऐप्लिकेशन एपीआई लेवल 28 (Android 9.0) या इसके बाद के लेवल को टारगेट कर रहा है, तो आपको AndroidManifest.xml
के <application>
एलिमेंट में यह एलान शामिल करना होगा. अगर ऐसा नहीं है, तो इस एलान को छोड़ दें.
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
पांचवां चरण: Android डिवाइस सेट अप करना
Maps SDK for Android का इस्तेमाल करने वाले ऐप्लिकेशन को चलाने के लिए, आपको उसे Android डिवाइस या Android एम्युलेटर पर डिप्लॉय करना होगा. यह Android 5.0 या इसके बाद के वर्शन पर आधारित होना चाहिए और इसमें Google API शामिल होने चाहिए.
- Android डिवाइस का इस्तेमाल करने के लिए, हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाना पर दिए गए निर्देशों का पालन करें.
- Android एम्युलेटर का इस्तेमाल करने के लिए, वर्चुअल डिवाइस बनाया जा सकता है. साथ ही, Android Studio के साथ आने वाले Android वर्चुअल डिवाइस (AVD) मैनेजर का इस्तेमाल करके, एम्युलेटर इंस्टॉल किया जा सकता है.
छठा चरण: Play सेवा के साथ काम करने की सुविधा की जांच करना (ज़रूरी नहीं)
Maps SDK for Android के लिए ज़रूरी है कि जिस डिवाइस पर आपका ऐप्लिकेशन डिप्लॉय किया जा रहा है उस पर Google Play services इंस्टॉल हो. Google एक ऐसा तरीका उपलब्ध कराता है जिसका इस्तेमाल करके, अपने ऐप्लिकेशन से कॉल किया जा सकता है. ज़्यादा जानकारी के लिए, देखें कि Google Play services इंस्टॉल है या नहीं.
अगले चरण
प्रोजेक्ट कॉन्फ़िगर हो जाने के बाद, कोई मैप जोड़ा जा सकता है.