На этой странице описывается, как настроить проект Android Studio для использования Maps SDK для Android без использования шаблона Google Maps, подробно описанного в кратком руководстве .
Шаблон Google Maps автоматически настраивает и добавляет базовую карту в новый проект Android Studio. Однако вы также можете добавить карту в проект Android, в котором используется другой шаблон Android Studio. Для этого вам нужно вручную настроить проект, а затем добавить карту .
Шаг 1. Настройте Android Studio
- Требуется Android Studio Arctic Fox или более поздней версии. Если вы еще этого не сделали, скачайте и установите его.
- Убедитесь, что вы используете подключаемый модуль Android Gradle версии 7.0 или более поздней версии в Android Studio.
Шаг 2. Настройте SDK
Библиотека Maps SDK для Android доступна в репозитории Google Maven . Чтобы добавить SDK в свое приложение, сделайте следующее:
- В файле
settings.gradle
верхнего уровня включите портал плагинов Gradle , репозиторий Google Maven и центральный репозиторий Maven в блокеpluginManagement
. БлокpluginManagement
должен стоять перед любыми другими операторами в скрипте.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- В файле
settings.gradle
верхнего уровня включите репозиторий Google Maven и центральный репозиторий Maven в блокеdependencyResolutionManagement
:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
- В файле
build.gradle
на уровне модуля добавьте зависимость сервисов Google Play для Maps SDK для Android.dependencies { implementation 'com.google.android.gms:play-services-maps:18.1.0' // ... }
- В файле
build.gradle
уровня модуля установите дляcompileSdk
иminSdk
следующие значения:android { compileSdk 31 defaultConfig { minSdk 19 // ... }
Шаг 3: Добавьте свой ключ API в проект
В этом разделе описывается, как сохранить ваш ключ API, чтобы ваше приложение могло безопасно ссылаться на него. Вы не должны проверять свой ключ API в своей системе контроля версий, поэтому мы рекомендуем хранить его в файле local.properties
, который находится в корневом каталоге вашего проекта. Дополнительные сведения о файле local.properties
см. в разделе Файлы свойств Gradle .
Чтобы упростить эту задачу, мы рекомендуем вам использовать плагин Secrets Gradle для Android . Чтобы установить плагин и сохранить ключ API:
- В Android Studio откройте файл
build.gradle
уровня проекта и добавьте следующий код в элементdependencies
вbuildscript
.plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
- Затем откройте файл
build.gradle
уровня модуля и добавьте следующий код в элементplugins
.id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
- Сохраните файл и синхронизируйте проект с Gradle .
- Откройте файл
local.properties
в каталоге уровня вашего проекта и добавьте следующий код. ЗаменитеYOUR_API_KEY
своим ключом API.MAPS_API_KEY=YOUR_API_KEY
- Сохраните файл.
- В файле
AndroidManifest.xml
перейдите наcom.google.android.geo.API_KEY
и обновитеandroid:value attribute
следующим образом:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Примечание. Как показано выше, com.google.android.geo.API_KEY
— рекомендуемое имя метаданных для ключа API. Ключ с таким именем можно использовать для аутентификации в нескольких API на основе Google Maps на платформе Android, включая Maps SDK для Android. Для обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY
. Это устаревшее имя позволяет выполнять аутентификацию только в Android Maps API версии 2. Приложение может указать только одно из имен метаданных ключа API. Если указаны оба, API выдает исключение.
Шаг 4. Обновите манифест приложения
В этом разделе описываются параметры, которые необходимо добавить в файл AndroidManifest.xml
.
Номер версии сервисов Google Play
Добавьте следующее объявление в элемент application
. Это включает версию сервисов Google Play, с которой было скомпилировано приложение.
<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 или более позднюю версию SDK сервисов Google Play, вам не требуется разрешение WRITE_EXTERNAL_STORAGE
. Если вы ориентируетесь на более ранние версии SDK сервисов Google Play, необходимо запросить разрешение 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 4.0 или более поздней версии, включающем API Google.
- Чтобы использовать устройство Android, следуйте инструкциям в разделе Запуск приложений на аппаратном устройстве .
- Чтобы использовать эмулятор Android, вы можете создать виртуальное устройство и установить эмулятор с помощью диспетчера виртуальных устройств Android (AVD) , который входит в состав Android Studio.
Следующие шаги
Как только ваш проект настроен, вы можете добавить карту .