בדף הזה מוסבר איך להגדיר פרויקט ב-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") }
מגניב
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") } }
מגניב
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, כדי שה-builds לא יכשלו אם הקובץ
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 גרסה 2. אפליקציה יכולה לציין רק אחד משמות המטא-נתונים של מפתח ה-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
כדי להפעיל אפליקציה שמשתמשת ב-SDK של מפות Google ל-Android, צריך לפרוס אותה במכשיר Android או באמולטור Android שמבוסס על Android 5.0 ואילך וכולל את ממשקי Google API.
- כדי להשתמש במכשיר Android, פועלים לפי ההוראות במאמר הפעלת אפליקציות במכשיר חומרה.
- כדי להשתמש במהדמנת Android, אפשר ליצור מכשיר וירטואלי ולהתקין את המהדמנת באמצעות מנהל המכשירים הווירטואליים של Android (AVD) שמגיע עם Android Studio.
שלב 6: אפשר גם לבדוק אם יש תמיכה ב-Play Service
כדי להשתמש ב-Maps SDK ל-Android, צריך להתקין את Google Play Services במכשיר שבו פורסים את האפליקציה. Google מספקת שיטה שאפשר להפעיל מהאפליקציה כדי לבדוק את זה. מידע נוסף זמין במאמר איך בודקים אם Google Play Services מותקן.
השלבים הבאים
אחרי שמגדירים את הפרויקט, אפשר להוסיף מפה.