Подготовка
Чтобы начать использовать Maps SDK для Android, вам необходимо создать проект с платежным аккаунтом и включить Maps SDK for Android . Подробнее о том, как начать работу с платформой Google Карт…
Как создать ключи API
Ключ API – это уникальный идентификатор, который используется для аутентификации запросов, связанных с вашим проектом. Он нужен для учета использования API и оплаты. С вашим проектом должен быть связан хотя бы один ключ API.
Чтобы создать его, выполните следующие действия:
-
Перейдите на страницу выбора проекта в Cloud Console. Выберите проект Google Cloud, для которого нужно добавить ключ API, или создайте новый.
-
Перейдите на страницу API и сервисы > Учетные данные.
-
На странице Учетные данные нажмите Создать учетные данные > Ключ API.
Появится диалоговое окно с созданным ключом API. -
Нажмите Закрыть.
Новый ключ API можно будет найти в разделе Ключи API на странице Учетные данные.
Не забудьте настроить ограничения для ключа API перед его использованием.
Как добавить в приложение ключ API
Вводить свой ключ API в систему управления версиями нежелательно, поэтому рекомендуется хранить его в файле local.properties
, который находится в корневом каталоге проекта.
Подробнее о файле local.properties
рассказывается в описании файла свойств Gradle.
Описанная ниже методика с использованием Gradle позволяет сохранить ключ API в файле local.properties
, чтобы ваше приложение могло ссылаться на ключ безопасным образом.
Чтобы добавить ключ API, выполните следующие действия:
- Откройте файл
local.properties
в каталоге уровня проекта и добавьте в этот файл приведенный ниже код. ЗаменитеYOUR_API_KEY
на свой ключ API.MAPS_API_KEY=YOUR_API_KEY
- В файле
build.gradle
уровня приложения добавьте приведенный ниже код в элементdefaultConfig
. Тогда Android Studio сможет считывать ключ Maps API из файлаlocal.properties
во время сборки, а затем внедрять переменную сборкиmapsApiKey
в ваш манифест Android.android { defaultConfig { // ... // Set the properties within `local.properties` into a `Properties` class so that values // within `local.properties` (e.g. Maps API key) are accessible in this file. Properties properties = new Properties() if (rootProject.file("local.properties").exists()) { properties.load(rootProject.file("local.properties").newDataInputStream()) } // Inject the Maps API key into the manifest manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ] } }
- В файле
AndroidManifest.xml
добавьте указанный ниже код в качестве дочернего элемента дляapplication
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${mapsApiKey}" />
- Сохраните файлы и синхронизируйте проект с Gradle.
Примечание. Как показано выше, рекомендуемое имя метаданных для ключа API – com.google.android.geo.API_KEY
. Ключ с таким именем может использоваться для аутентификации нескольких API созданных на основе Google Карт для платформы Android, включая Maps SDK for Android. Для обеспечения обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY
. Это устаревшее имя обеспечивает аутентификацию только для Android Maps API версии 2. Приложение позволяет указать только одно из имен в метаданных ключа API. Если указаны оба имени, API вызывает исключение.
Как задать ограничения для ключей API
Ограничения повышают безопасность, поскольку с помощью ключа API можно будет отправлять только авторизованные запросы. Мы настоятельно рекомендуем следовать инструкциям по настройке ограничений для ключей API. Дополнительные сведения приводятся в рекомендациях по работе с ключами API.
Чтобы задать ограничение для ключа API, выполните следующие действия:
-
Перейдите на страницу выбора проекта в Cloud Console. Выберите проект Google Cloud, для которого нужно добавить ключ API, или создайте новый.
-
Перейдите на страницу API и сервисы > Учетные данные.
- Выберите нужный ключ API. Откроется страница со свойствами ключа API.
- В разделе Ограничения для ключа установите следующие ограничения:
- Ограничения для приложений:
- Выберите Приложения для Android.
- Нажмите + Название пакета и цифровой отпечаток.
- Укажите название пакета и цифровой отпечаток сертификата SHA-1. Пример:
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
Подробнее о том, где получить цифровой отпечаток SHA-1 для приложения… - Ограничения для API:
- Нажмите Применить ограничения для ключа.
- В раскрывающемся списке Выберите API нажмите Maps SDK для Android.
Если Maps SDK для Android там нет, его необходимо включить. - Внеся все изменения, нажмите Сохранить.
Где получить цифровой отпечаток SHA-1 для приложения
Ограничение для ключа API на платформе Android использует цифровой сертификат вашего приложения в сокращенной форме, которая называется цифровым отпечатком SHA-1.
Получение информации о сертификации из Android Studio
Если вы следовали руководству по началу работы с Maps SDK для Android, Android Studio создаст полезный файл google_maps_api.xml
, содержащий учетные данные вашего приложения.
Выберите один из перечисленных ниже способов получения своего ключа API из Android Studio.
- Самый быстрый и простой способ: используйте ссылку в файле
google_maps_api.xml
, созданном Android Studio.- Скопируйте ссылку из файла
google_maps_api.xml
и вставьте ее в адресную строку браузера. Эта ссылка перенаправит вас в Google Cloud Console и предоставит этому сервису необходимую информацию через параметры URL, чтобы вам не пришлось вводить все данные вручную. - Следуйте инструкциям, чтобы создать новый проект в Google Cloud Console, или выберите существующий проект.
- Создайте для своего проекта ключ API, ограниченный для Android.
- Скопируйте созданный ключ API, вернитесь в Android Studio и вставьте ключ API в элемент <string> в файле
google_maps_api.xml
.
- Скопируйте ссылку из файла
- Несколько менее быстрый способ: используйте учетные данные в файле
google_maps_api.xml
, созданном Android Studio.- Скопируйте учетные данные из файла
google_maps_api.xml
. - Откройте Google Cloud Platform Console.
- Используйте скопированные учетные данные, чтобы добавить приложение в существующий ключ API или создать новый.
- Скопируйте учетные данные из файла
Самостоятельное получение информации о сертификате
Если при создании приложения вы не следовали руководству по началу работы, вам необходимо самостоятельно получить цифровой отпечаток SHA-1 для своего сертификата. Прежде всего убедитесь, что вы действительно используете соответствующий сертификат. У вас может быть два сертификата:
- Сертификат для отладки. Этот сертификат создается автоматически при выполнении отладочной сборки приложения с помощью Android SDK Tools. Его следует использовать исключительно при тестировании приложений. Не пытайтесь опубликовать приложение, подписанное с помощью сертификата для отладки. Подробные сведения о таких сертификатах можно найти на странице Добавление подписи в режиме отладки в документации для разработчиков Android.
- Сертификат для выпуска. Этот сертификат создается с помощью инструментов Android SDK при выполнении сборки в процессе подготовки к выпуску. Этот сертификат можно также создать с помощью программы
keytool
. Используйте этот сертификат, когда ваше приложение будет готово к публикации.
Следуйте приведенным ниже инструкциям, чтобы отобразить цифровой отпечаток SHA-1 сертификата в программе keytool
с помощью параметра -v
. Подробные сведения о программе Keytool можно найти в документации Oracle.
Отображение цифрового отпечатка сертификата для отладки
Найдите свой файл хранилища ключей для отладки. Этот файл, который называется
debug.keystore
, создается при выполнении первой сборки проекта. По умолчанию он хранится в том же каталоге, где и файлы виртуального устройства Android (AVD):- macOS и Linux:
~/.android/
- Windows Vista и Windows 7:
C:\Users\your_user_name\.android\
- macOS и Linux:
Откройте цифровой отпечаток SHA-1.
В Linux или macOS перейдите в окно терминала и введите следующую команду:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
В Windows Vista и Windows 7 выполните следующую команду:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Вы должны получить примерно такой результат:
Alias name: androiddebugkey Creation date: Jan 01, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4aa9b300 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
Отображение цифрового отпечатка сертификата для выпуска
-
Найдите свой файл хранилища ключей сертификата для выпуска. Этот файл может называться по-разному, и для него нет стандартного местоположения. Если не указать этот файл при создании сборки приложения для выпуска, ваш пакет
.apk
останется без подписи и его необходимо будет подписать, чтобы обеспечить возможность публикации. Чтобы отобразить сертификат выпуска, также потребуется псевдоним и пароли для файла keystore и самого сертификата. Чтобы получить список псевдонимов для всех ключей, имеющихся в хранилище, введите следующую команду:keytool -list -keystore your_keystore_name
Вместо
your_keystore_name
укажите полный путь к файлу, включая расширение.keystore
. Потребуется ввести пароль для хранилища ключей. После этого в окне программыkeytool
появится список всех псевдонимов, имеющихся в хранилище. -
В окне терминала или в командной строке введите следующую команду:
keytool -list -v -keystore your_keystore_name -alias your_alias_name
Вместо
your_keystore_name
укажите полный путь к файлу, включая расширение.keystore
. Заменитеyour_alias_name
на псевдоним, присвоенный сертификату при его создании.
Вы должны получить примерно такой результат:
Alias name: <alias_name> Creation date: Feb 02, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4cc9b300 Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033 Certificate fingerprints: MD5: AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9 SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75 Signature algorithm name: SHA1withRSA Version: 3
В строке, которая начинается с SHA1
, содержится цифровой отпечаток SHA-1. Контрольная сумма представляет собой последовательность из 20 двузначных чисел в шестнадцатеричном формате, которые разделены двоеточиями.
Дополнительные сведения о цифровых сертификатах можно найти в руководстве Android по добавлению подписи в приложения.