בדף הזה מוסבר איך להגדיר פרויקט ב-Android Studio כך שישתמש ב-Maps SDK for Android בלי להשתמש בתבנית של מפות Google שמפורטת במדריך למתחילים.
התבנית של מפות Google מגדירה ומוסיפה באופן אוטומטי מפה בסיסית לפרויקט חדש ב-Android Studio. עם זאת, אפשר גם להוסיף מפה לפרויקט Android שמשתמש בתבנית אחרת של Android Studio. לשם כך, צריך להגדיר את הפרויקט באופן ידני ואז להוסיף את המפה.
שלב 1: מגדירים את Android Studio
במסמך הזה מתוארת סביבת פיתוח באמצעות Android Studio Hedgehog ו-Android Gradle plugin בגרסה 8.2.
שלב 2. הגדרת ה-SDK
הספרייה של SDK של מפות ל-Android זמינה דרך מאגר Maven של Google. כדי להוסיף את ה-SDK לאפליקציה:
- בקובץ
settings.gradle.kts
ברמה העליונה, כוללים את פורטל הפלאגינים של Gradle, את מאגר Maven של Google ואת מאגר Maven המרכזי בתוך הבלוקpluginManagement
. הבלוקpluginManagement
חייב להופיע לפני כל הצהרות אחרות בסקריפט.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- בקובץ
settings.gradle.kts
ברמה העליונה, צריך לכלול את מאגר Maven של Google ואת מאגר Maven המרכזי בתוך הבלוקdependencyResolutionManagement
:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- בקובץ
build.gradle.kts
אוbuild.gradle
ברמת המודול, מוסיפים את התלות ב-Google Play Services ל-Maps SDK for Android.Kotlin
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:19.0.0") }
Groovy
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 // ... } }
Groovy
android { compileSdk 34 defaultConfig { minSdk 21 // ... } }
- בקטע
buildFeatures
בקובץbuild.gradle.kts
אוbuild.gradle
ברמת המודול, מוסיפים את הכיתהBuildConfig
, שבאמצעותה אפשר לגשת לערכים של המטא-נתונים שמוגדרים בהמשך התהליך:Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
Groovy
android { // ... buildFeatures { buildConfig true // ... } }
שלב 3: מוסיפים את מפתח ה-API לפרויקט
בקטע הזה מוסבר איך לאחסן את מפתח ה-API כך שהאפליקציה תוכל להפנות אליו בצורה מאובטחת. לא מומלץ להוסיף את מפתח ה-API למערכת לניהול גרסאות, לכן מומלץ לאחסן אותו בקובץ secrets.properties
שנמצא בספריית השורש של הפרויקט. מידע נוסף על הקובץ secrets.properties
זמין במאמר קבצי מאפיינים של Gradle.
כדי לייעל את המשימה הזו, מומלץ להשתמש בפלאגין של Secrets Gradle ל-Android.
כדי להתקין את הפלאגין של Secrets Gradle ל-Android בפרויקט של מפות Google:
-
ב-Android Studio, פותחים את הקובץ
build.gradle.kts
אוbuild.gradle
ברמה העליונה ומוסיפים את הקוד הבא לאלמנטdependencies
בקטעbuildscript
.Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Groovy
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") }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- בקובץ
build.gradle.kts
אוbuild.gradle
ברמת המודול, מוודאים שהערך שלtargetSdk
ו-compileSdk
מוגדר ל-34. - שומרים את הקובץ ומסנכרנים את הפרויקט עם Gradle.
-
פותחים את הקובץ
secrets.properties
בתיקיית הרמה העליונה ומוסיפים את הקוד הבא. מחליפים את הערךYOUR_API_KEY
במפתח ה-API שלכם. מומלץ לשמור את המפתח בקובץ הזה כיsecrets.properties
לא נכלל במערכת בקרת הגרסאות.MAPS_API_KEY=YOUR_API_KEY
- שומרים את הקובץ.
-
יוצרים את הקובץ
local.defaults.properties
בספריית הרמה העליונה, באותה תיקייה שבה נמצא הקובץsecrets.properties
, ומוסיפים את הקוד הבא.MAPS_API_KEY=DEFAULT_API_KEY
מטרת הקובץ הזה היא לספק מיקום גיבוי למפתח ה-API, כדי למנוע כשל ב-build אם הקובץ
secrets.properties
לא נמצא. מצב כזה יכול לקרות אם משכפלים את האפליקציה ממערכת בקרת גרסאות שמשמיטה אתsecrets.properties
, ועדיין לא יצרתם קובץsecrets.properties
באופן מקומי כדי לספק את מפתח ה-API. - שומרים את הקובץ.
-
בקובץ
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
הוא שם המטא-נתונים המומלץ למפתח ה-API. אפשר להשתמש במפתח עם השם הזה כדי לבצע אימות במספר ממשקי API שמבוססים על מפות Google בפלטפורמת Android, כולל Maps SDK for Android. מטעמי תאימות לאחור, ה-API תומך גם בשםcom.google.android.maps.v2.API_KEY
. השם הקודם מאפשר אימות רק ל-Android Maps API v2. אפליקציה יכולה לציין רק אחד משמות המטא-נתונים של מפתח ה-API. אם מציינים את שניהם, ה-API יוצר חריגה. -
ב-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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Groovy
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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
שלב 4: מעדכנים את המניפסט של האפליקציה
בקטע הזה מתוארות ההגדרות שצריך להוסיף לקובץ 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"/>
הרשאה לניהול אחסון חיצוני
אם אתם מטרגטים את גרסה 8.3 ואילך של Google Play Services SDK, אתם לא צריכים את ההרשאה WRITE_EXTERNAL_STORAGE
. אם אתם מטרגטים גרסאות קודמות של Google Play Services SDK, עליכם לבקש את ההרשאה WRITE_EXTERNAL_STORAGE ברכיב manifest
.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
ספריית Apache HTTP מדור קודם
אם אתם משתמשים ב-com.google.android.gms:play-services-maps:16.0.0
ואילך והאפליקציה שלכם מטרגטת לרמת API 28 (Android 9.0) ואילך, עליכם לכלול את ההצהרה הבאה ברכיב <application>
של AndroidManifest.xml
. אחרת, מדלגים על ההצהרה הזו.
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
שלב 5: מגדירים מכשיר Android
כדי להריץ אפליקציה שמשתמשת ב-Maps SDK ל-Android, צריך לפרוס אותה במכשיר Android או במהדמ של Android שמבוסס על Android 5.0 ואילך וכולל את ממשקי ה-API של Google.
- כדי להשתמש במכשיר Android, פועלים לפי ההוראות במאמר הפעלת אפליקציות במכשיר חומרה.
- כדי להשתמש במהדמנת Android, אפשר ליצור מכשיר וירטואלי ולהתקין את המהדמנת באמצעות מנהל המכשירים הווירטואליים של Android (AVD) שמגיע עם Android Studio.
שלב 6: אפשר לבדוק אם יש תמיכה ב-Play Services
כדי להשתמש ב-Maps SDK ל-Android, צריך להתקין את Google Play Services במכשיר שבו פורסים את האפליקציה. Google מספקת שיטה שאפשר להפעיל מהאפליקציה כדי לבדוק את זה. מידע נוסף זמין במאמר איך בודקים אם Google Play Services מותקן.
השלבים הבאים
אחרי שמגדירים את הפרויקט, אפשר להוסיף מפה.