Na tej stronie opisano, jak skonfigurować projekt Android Studio do korzystania z Maps SDK na Androida bez użycia szablonu Map Google, który jest szczegółowo opisany w krótkim wprowadzeniu.
Szablon Map Google automatycznie konfiguruje i dodaje podstawową mapę do nowego projektu Android Studio. Możesz też jednak dodać mapę do projektu aplikacji na Androida, który używa innego szablonu Android Studio. Aby to zrobić, musisz ręcznie skonfigurować projekt, a następnie dodać mapę.
Krok 1. Skonfiguruj Android Studio
W tym dokumencie opisano środowisko programistyczne korzystające z Android Studio Hedgehog i wtyczki Androida do obsługi Gradle w wersji 8.2.
Krok 2. Konfigurowanie pakietu SDK
Biblioteka pakietu Maps SDK na Androida jest dostępna w repozytorium Maven Google. Aby dodać pakiet SDK do aplikacji:
- W pliku
settings.gradle.ktsnajwyższego poziomu w blokupluginManagementdodaj portal wtyczek Gradle, repozytorium Google Maven i centralne repozytorium Maven. BlokpluginManagementmusi pojawić się przed innymi instrukcjami w skrypcie.pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } }
- W pliku
settings.gradle.ktsnajwyższego poziomu dodaj repozytorium Maven firmy Google i centralne repozytorium Maven w blokudependencyResolutionManagement:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() } }
- W pliku
build.gradle.ktslubbuild.gradlena poziomie modułu dodaj zależność usług Google Play do pakietu Maps SDK na Androida.Kotlin
dependencies { // Maps SDK for Android implementation(libs.play.services.maps) }
Zakręcony
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:20.1.0" }
- W pliku
build.gradle.ktslubbuild.gradlena poziomie modułu ustaw te wartościcompileSdkiminSdk:Kotlin
android { compileSdk = 34 defaultConfig { minSdk = 23 // ... } }
Zakręcony
android { compileSdk 34 defaultConfig { minSdk 23 // ... } }
- W sekcji
buildFeaturesplikubuild.gradle.ktslubbuild.gradlena poziomie modułu dodaj klasęBuildConfig, której możesz używać do uzyskiwania dostępu do wartości metadanych zdefiniowanych w dalszej części tej procedury:Kotlin
android { // ... buildFeatures { buildConfig = true // ... } }
Zakręcony
android { // ... buildFeatures { buildConfig true // ... } }
- W pliku
libs.versions.tomldodaj te wiersze:[versions] play-services-maps = "20.1.0" [libraries] play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
Krok 3. Dodaj klucz interfejsu API do projektu
W tej sekcji opisano, jak przechowywać klucz interfejsu API, aby aplikacja mogła się do niego bezpiecznie odwoływać. Nie należy sprawdzać klucza interfejsu API w systemie kontroli wersji, dlatego zalecamy przechowywanie go w pliku secrets.properties w katalogu głównym projektu i wykluczenie tego pliku z kontroli wersji. Więcej informacji o plikach właściwości Gradle znajdziesz w artykule na ten temat.
Aby uprościć to zadanie, zalecamy użycie wtyczki Secrets Gradle do Androida.
Aby zainstalować wtyczkę Gradle obiektów tajnych dla Androida i zapisać klucz interfejsu API:
-
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlenajwyższego poziomu i dodaj ten kod do blokuplugins.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
Otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i dodaj ten kod do elementuplugins.Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Zakręcony
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Jeśli używasz Android Studio, zsynchronizuj projekt z Gradle.
-
Otwórz plik
secrets.propertiesw katalogu najwyższego poziomu i dodaj podany niżej kod. ZastąpYOUR_API_KEYkluczem interfejsu API. Dodajsecrets.propertiesdo pliku.gitignore(lub w inny sposób wyklucz go z systemu kontroli wersji), aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
-
Utwórz plik
local.defaults.propertiesw katalogu najwyższego poziomu, czyli w tym samym folderze, w którym znajduje się pliksecrets.properties, a następnie dodaj podany niżej kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik służy do podania zapasowej lokalizacji klucza interfejsu API, jeśli nie można znaleźć pliku
secrets.properties, aby kompilacje nie kończyły się niepowodzeniem. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji, który pomija pliksecrets.properties, i nie utworzysz jeszcze lokalnie plikusecrets.properties, aby podać klucz interfejsu API. -
W pliku
AndroidManifest.xmlprzejdź docom.google.android.geo.API_KEYi zaktualizuj atrybutandroid:valuew ten sposób:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Uwaga:
com.google.android.geo.API_KEYto zalecana nazwa metadanych klucza interfejsu API. Klucz o tej nazwie może służyć do uwierzytelniania w wielu interfejsach API opartych na Mapach Google na platformie Androida, w tym w pakiecie Maps SDK na Androida. Ze względu na zgodność wsteczną interfejs API obsługuje też nazwęcom.google.android.maps.v2.API_KEY. Ta starsza nazwa umożliwia uwierzytelnianie tylko w interfejsie API Map Google dla Androida w wersji 2. Aplikacja może określić tylko jedną z nazw metadanych klucza interfejsu API. Jeśli podasz obie wartości, interfejs API zgłosi wyjątek. -
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i edytuj właściwośćsecrets. Jeśli właściwośćsecretsnie istnieje, dodaj ją.Edytuj właściwości wtyczki, aby ustawić
propertiesFileNamena"secrets.properties",defaultPropertiesFileNamena"local.defaults.properties"i skonfigurować inne właściwości.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" }
Zakręcony
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" }
Krok 4. Zaktualizuj manifest aplikacji
W tej sekcji opisano ustawienia, które należy dodać do pliku AndroidManifest.xml.
Numer wersji Usług Google Play
Dodaj tę deklarację w elemencie application. Spowoduje to umieszczenie wersji Usług Google Play, z którą aplikacja została skompilowana.
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
Dostęp do lokalizacji
Jeśli Twoja aplikacja potrzebuje dostępu do lokalizacji użytkownika, musisz poprosić o dostęp do lokalizacji w pliku AndroidManifest.xml. Dostępne opcje to ACCESS_FINE_LOCATION, która podaje dokładną lokalizację urządzenia, i ACCESS_COARSE_LOCATION, która jest mniej dokładna. Więcej informacji znajdziesz w przewodniku po danych o lokalizacji.
Aby poprosić o uprawnienie ACCESS_FINE_LOCATION, dodaj ten kod do elementu manifest:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Uprawnienia dostępu do pamięci zewnętrznej
Jeśli używasz pakietu SDK usług Google Play w wersji 8.3 lub nowszej, nie potrzebujesz uprawnienia WRITE_EXTERNAL_STORAGE. Jeśli używasz wcześniejszych wersji pakietu SDK usług Google Play, musisz poprosić o uprawnienie WRITE_EXTERNAL_STORAGE w elemencie manifest.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Starsza wersja biblioteki Apache HTTP
Jeśli używasz wersji com.google.android.gms:play-services-maps:16.0.0 lub starszej, a Twoja aplikacja jest kierowana na interfejs API na poziomie 28 (Android 9.0) lub wyższym, musisz uwzględnić tę deklarację w elemencie <application> pliku AndroidManifest.xml. W przeciwnym razie pomiń tę deklarację.
<uses-library
android:name="org.apache.http.legacy"
android:required="false"/>
Krok 5. Skonfiguruj urządzenie z Androidem
Aby uruchomić aplikację, która korzysta z pakietu Maps SDK na Androida, musisz ją wdrożyć na urządzeniu z Androidem lub w emulatorze Androida z systemem Android 6.0 lub nowszym i interfejsami API Google.
- Aby użyć urządzenia z Androidem, postępuj zgodnie z instrukcjami podanymi w artykule Uruchamianie aplikacji na urządzeniu.
- Aby używać Android Emulator, możesz utworzyć urządzenie wirtualne i zainstalować emulator za pomocą Menedżera urządzeń, który jest częścią Android Studio.
Krok 6. Opcjonalnie sprawdź, czy Usługi Google Play są obsługiwane
Pakiet Maps SDK na Androida wymaga, aby na urządzeniu, na którym wdrażasz aplikację, były zainstalowane usługi Google Play. Google udostępnia metodę, którą możesz wywołać z poziomu aplikacji, aby to sprawdzić. Więcej informacji znajdziesz w artykule Sprawdzanie, czy Usługi Google Play są zainstalowane.
Dalsze kroki
Po skonfigurowaniu projektu możesz dodać mapę.