इस पेज पर, Android Studio प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया गया है. इससे, Android के लिए Maps SDK का इस्तेमाल किया जा सकता है. इसके लिए, Google Maps टेंप्लेट का इस्तेमाल करने की ज़रूरत नहीं है. इस टेंप्लेट के बारे में, क्विकस्टार्ट में बताया गया है.
Google Maps टेंप्लेट, Android Studio के नए प्रोजेक्ट में बुनियादी मैप को अपने-आप कॉन्फ़िगर करता है और जोड़ता है. हालांकि, किसी ऐसे Android प्रोजेक्ट में भी मैप जोड़ा जा सकता है जिसमें Android Studio के किसी दूसरे टेंप्लेट का इस्तेमाल किया गया हो. इसके लिए, आपको मैन्युअल तरीके से अपना प्रोजेक्ट कॉन्फ़िगर करना होगा. इसके बाद, मैप जोड़ना होगा.
पहला चरण: Android Studio सेट अप करना
इस दस्तावेज़ में, Android Studio Hedgehog और Android Gradle प्लगिन के वर्शन 8.2 का इस्तेमाल करके, डेवलपमेंट एनवायरमेंट के बारे में बताया गया है.
दूसरा चरण. एसडीके टूल सेट अप करना
Android के लिए Maps SDK लाइब्रेरी, Google की Maven रिपॉज़िटरी पर उपलब्ध है. अपने ऐप्लिकेशन में SDK टूल जोड़ने के लिए, यह तरीका अपनाएं:
- अपनी टॉप-लेवल
settings.gradle.ktsफ़ाइल में,pluginManagementब्लॉक के तहत Gradle प्लग इन पोर्टल, Google Maven रिपॉज़िटरी, और Maven सेंट्रल रिपॉज़िटरी को शामिल करें.pluginManagementब्लॉक, स्क्रिप्ट में मौजूद अन्य स्टेटमेंट से पहले दिखना चाहिए.pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } }
- अपनी टॉप-लेवल
settings.gradle.ktsफ़ाइल में,dependencyResolutionManagementब्लॉक के तहत Google की Maven रिपॉज़िटरी और Maven सेंट्रल रिपॉज़िटरी को शामिल करें:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() } }
- अपनी मॉड्यूल-लेवल
build.gradle.ktsयाbuild.gradleफ़ाइल में, Android के लिए Maps SDK के लिए Google Play services डिपेंडेंसी जोड़ें.Kotlin
dependencies { // Maps SDK for Android implementation(libs.play.services.maps) }
ग्रूवी
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:20.1.0" }
- मॉड्यूल-लेवल की
build.gradle.ktsयाbuild.gradleफ़ाइल में,compileSdkऔरminSdkको इन वैल्यू पर सेट करें:Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 23 // ... } }
ग्रूवी
android { compileSdk 34 defaultConfig { minSdk 23 // ... } }
- अपने मॉड्यूल-लेवल की
build.gradle.ktsयाbuild.gradleफ़ाइल केbuildFeaturesसेक्शन में,BuildConfigक्लास जोड़ें. इसका इस्तेमाल करके, इस प्रोसेस में बाद में तय की गई मेटाडेटा वैल्यू को ऐक्सेस किया जा सकता है:Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
ग्रूवी
android { // ... buildFeatures { buildConfig true // ... } }
- अपनी
libs.versions.tomlफ़ाइल में, यह जोड़ें:[versions] play-services-maps = "20.1.0" [libraries] play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
तीसरा चरण: प्रोजेक्ट में अपना एपीआई पासकोड जोड़ना
इस सेक्शन में, एपीआई पासकोड को सेव करने का तरीका बताया गया है, ताकि आपका ऐप्लिकेशन उसे सुरक्षित तरीके से रेफ़र कर सके. आपको अपने वर्शन कंट्रोल सिस्टम में एपीआई पासकोड की जांच नहीं करनी चाहिए. इसलिए, हमारा सुझाव है कि आप इसे अपने प्रोजेक्ट की रूट डायरेक्ट्री में मौजूद secrets.properties फ़ाइल में सेव करें और उस फ़ाइल को वर्शन कंट्रोल से बाहर रखें. Gradle प्रॉपर्टी फ़ाइलों के बारे में ज़्यादा जानने के लिए, Gradle प्रॉपर्टी फ़ाइलें देखें.
इस टास्क को आसान बनाने के लिए, हमारा सुझाव है कि आप Android के लिए सीक्रेट ग्रेडल प्लग इन का इस्तेमाल करें.
Android के लिए Secrets Gradle Plugin इंस्टॉल करने और अपना एपीआई पासकोड सेव करने के लिए:
-
Android Studio में, अपनी टॉप-लेवल
build.gradle.ktsयाbuild.gradleफ़ाइल खोलें औरpluginsब्लॉक में यह कोड जोड़ें.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
ग्रूवी
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
मॉड्यूल-लेवल की
build.gradle.ktsयाbuild.gradleफ़ाइल खोलें औरpluginsएलिमेंट में यह कोड जोड़ें.Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
ग्रूवी
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- अगर Android Studio का इस्तेमाल किया जा रहा है, तो अपने प्रोजेक्ट को Gradle के साथ सिंक करें.
-
अपनी टॉप-लेवल डायरेक्ट्री में
secrets.propertiesफ़ाइल खोलें. इसके बाद, यह कोड जोड़ें.YOUR_API_KEYको अपने एपीआई पासकोड से बदलें.secrets.propertiesको अपनी.gitignoreफ़ाइल में जोड़ना न भूलें. इसके अलावा, इसे अपने वर्शन कंट्रोल सिस्टम से बाहर रखें, ताकि आप वर्शन कंट्रोल में अपना एपीआई पासकोड न डालें.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एट्रिब्यूट को इस तरह अपडेट करें:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />ध्यान दें: एपीआई पासकोड के लिए, मेटाडेटा के नाम के तौर पर
com.google.android.geo.API_KEYका सुझाव दिया जाता है. इस नाम वाली कुंजी का इस्तेमाल, Android प्लैटफ़ॉर्म पर Google Maps पर आधारित कई एपीआई की पुष्टि करने के लिए किया जा सकता है. इनमें Android के लिए Maps SDK भी शामिल है. पुराने सिस्टम के साथ काम करने की सुविधा के लिए, एपीआई में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 root directory (the same folder as the root 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 root directory (the same folder as the root 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 6.0 या इसके बाद के वर्शन पर आधारित हो और जिसमें Google API शामिल हों.
- Android डिवाइस का इस्तेमाल करने के लिए, हार्डवेयर डिवाइस पर ऐप्लिकेशन चलाएं में दिए गए निर्देशों का पालन करें.
- Android Emulator का इस्तेमाल करने के लिए, वर्चुअल डिवाइस बनाया जा सकता है. इसके बाद, Android Studio के साथ मिलने वाले डिवाइस मैनेजर का इस्तेमाल करके, एम्युलेटर को इंस्टॉल किया जा सकता है.
छठा चरण: Play services के साथ काम करने की सुविधा की जांच करना (ज़रूरी नहीं)
Android के लिए Maps SDK के लिए ज़रूरी है कि जिस डिवाइस पर आपका ऐप्लिकेशन डिप्लॉय किया गया है उस पर Google Play services इंस्टॉल हो. Google एक ऐसा तरीका उपलब्ध कराता है जिसे अपने ऐप्लिकेशन से कॉल करके, यह पता लगाया जा सकता है कि उपयोगकर्ता ने सदस्यता ली है या नहीं. ज़्यादा जानकारी के लिए, देखें कि Google Play services इंस्टॉल है या नहीं.
अगले चरण
प्रोजेक्ट कॉन्फ़िगर होने के बाद, मैप जोड़ा जा सकता है.