В этой статье рассказывается, как настроить проект Android Studio для использования Maps SDK для Android, не применяя шаблон Google Карт, описанный в кратком руководстве.
Этот шаблон автоматически задает конфигурацию для проекта и добавляет базовую карту. Однако вы также можете добавить карту в проект Android, где используется другой шаблон Android Studio. Для этого необходимо вручную изменить настройки проекта, а затем добавить карту.
Шаг 1. Настройте Android Studio
- Вам потребуется Android Studio версии Arctic Fox или более поздней. Если у вас нет этого инструмента, скачайте и установите его.
- Убедитесь, что вы используете в Android Studio плагин Android Gradle версии 7.0 или более поздней.
Шаг 2. Настройте SDK
Библиотека Maps SDK для Android доступна в репозитории Google Maven. Чтобы добавить SDK в свое приложение, выполните следующие действия:
- Добавьте портал плагина Gradle, репозиторий Google Maven и центральный репозиторий Maven в блок
pluginManagement
файлаsettings.gradle
верхнего уровня. БлокpluginManagement
должен находиться над всеми операторами скрипта.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- Добавьте репозиторий Google Maven и центральный репозиторий Maven в блок
dependencyResolutionManagement
файлаsettings.gradle
верхнего уровня: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}" />
Примечание. Как показано выше, рекомендуемое имя метаданных для ключа API – com.google.android.geo.API_KEY
. Ключ с таким именем может использоваться для аутентификации нескольких API Google Карт для 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"/>
Разрешение на доступ к внешнему хранилищу
Если ваше приложение предназначено для SDK сервисов Google Play версии 8.3 или более поздней, вам не понадобится разрешение WRITE_EXTERNAL_STORAGE
. А если для более ранних, то необходимо запросить разрешение WRITE_EXTERNAL_STORAGE в элементе manifest
.
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Библиотека Apache HTTP Legacy
Если вы используете версию 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 4.0 или более поздней версии, поддерживающем API Google.
- Чтобы использовать устройство Android, следуйте инструкциям о том, как запускать приложения на физических устройствах.
- Чтобы воспользоваться эмулятором Android, создайте виртуальное устройство и установите на него эмулятор с помощью Менеджера AVD, который доступен в Android Studio.
Дальнейшие действия
Завершив настройку проекта, вы сможете добавить карту в свое приложение.