Настройка проекта Android Studio

Чтобы настроить приложение для использования Places SDK для Android, выполните следующие действия. Они необходимы для всех приложений, использующих Places SDK для Android.

Шаг 1. Настройте Android Studio

В этом документе описывается среда разработки с использованием Android Studio Hedgehog и плагина Android Gradle версии 8.2.

Шаг 2. Настройте SDK

Библиотека Places SDK для Android доступна в репозитории Google Maven . Чтобы добавить SDK в ваше приложение, выполните следующие действия:

  1. В файле settings.gradle верхнего уровня включите портал плагинов Gradle , репозиторий Google Maven и центральный репозиторий Maven в блоке pluginManagement . Блок pluginManagement должен появляться перед любыми другими операторами в скрипте.
    pluginManagement {
        repositories {
            gradlePluginPortal()
            google()
            mavenCentral()
        }
    } 
  2. В файле settings.gradle верхнего уровня включите репозиторий Google Maven и центральный репозиторий Maven в блок dependencyResolutionManagement :
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. В разделе dependencies файла build.gradle на уровне модуля добавьте зависимость к Places SDK для Android:

    классный

    dependencies {
        // If updating kotlin-bom version number above, also edit project-level build.gradle definition of $kotlin_version variable
        implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlin_version"))
        implementation 'com.google.android.libraries.places:places:3.3.0'
    }

    Котлин

    dependencies {
        implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlin_version"))
        implementation("com.google.android.libraries.places:places:3.3.0")
    }
  4. В файле build.gradle на уровне модуля установите для compileSdk и minSdk следующие значения:

    классный

    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 21
            // ...
        }
    }

    Котлин

    android {
        compileSdk = 34
    
        defaultConfig {
            minSdk = 21
            // ...
        }
    }
  5. В разделе buildFeatures файла build.gradle уровня модуля добавьте класс BuildConfig , который вы используете для доступа к значениям метаданных, определенным позже в этой процедуре:

    классный

    android {
      // ...
      buildFeatures {
        buildConfig true
        // ...
      }
    }

    Котлин

    android {
      // ...
      buildFeatures {
        buildConfig = true
        // ...
      }
    }

Шаг 3. Добавьте ключ API в проект.

В этом разделе описывается, как хранить ключ API, чтобы ваше приложение могло безопасно ссылаться на него. Вам не следует проверять свой ключ API в системе контроля версий, поэтому мы рекомендуем хранить его в файле secrets.properties , который находится в корневом каталоге вашего проекта. Дополнительные сведения о файле secrets.properties см. в разделе Файлы свойств Gradle .

Чтобы упростить эту задачу, мы рекомендуем использовать плагин Secrets Gradle для Android .

Чтобы установить плагин Secrets Gradle для Android в свой проект Google Maps:

  1. В Android Studio откройте файл build.gradle или build.gradle.kts верхнего уровня и добавьте следующий код в элемент dependencies в buildscript .

    классный

    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")
        }
    }
    
  2. Откройте файл build.gradle уровня модуля и добавьте следующий код в элемент plugins .

    классный

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Котлин

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. В файле build.gradle на уровне модуля убедитесь, что targetSdk и compileSdk установлено значение 34.
  4. Сохраните файл и синхронизируйте проект с Gradle .
  5. Откройте файл secrets.properties в каталоге верхнего уровня, а затем добавьте следующий код. Замените YOUR_API_KEY своим ключом API. Сохраните свой ключ в этом файле, поскольку secrets.properties не подлежит проверке в системе контроля версий.
    PLACES_API_KEY=YOUR_API_KEY
  6. Сохраните файл.
  7. Создайте файл local.defaults.properties в каталоге верхнего уровня, в той же папке, что и файл secrets.properties , а затем добавьте следующий код.

    PLACES_API_KEY=DEFAULT_API_KEY

    Целью этого файла является предоставление резервного местоположения для ключа API, если файл secrets.properties не найден, чтобы сборка не завершалась сбоем. Это может произойти, если вы клонируете приложение из системы контроля версий, в которой отсутствует secrets.properties , и вы еще не создали файл secrets.properties локально, чтобы предоставить свой ключ API.

  8. Сохраните файл.
  9. В Android Studio откройте файл build.gradle или build.gradle.kts уровня модуля и отредактируйте свойство secrets . Если свойство secrets не существует, добавьте его.

    Отредактируйте свойства плагина, установив для propertiesFileName secrets.properties , установите для defaultPropertiesFileName значение local.defaults.properties и установите любые другие свойства.

    классный

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        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.*"
    }
            

    Котлин

    secrets {
        // Optionally specify a different file name containing your secrets.
        // The plugin defaults to "local.properties"
        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. Инициализируйте клиент Places API

Инициализируйте Places SDK для Android в действии или фрагменте. Сначала вам необходимо решить, какую версию SDK использовать: Places SDK для Android или Places SDK для Android (новая). Дополнительную информацию о версиях продукта см. в разделе Выбор версии SDK .

В следующем примере показано, как инициализировать SDK для обеих версий.

Places SDK для Android (новинка)

Передайте ключ API при вызове Places.initializeWithNewPlacesApiEnabled() :

Котлин

    // Define a variable to hold the Places API key.
    val apiKey = BuildConfig.PLACES_API_KEY

    // Log an error if apiKey is not set.
    if (apiKey.isEmpty() || apiKey == "DEFAULT_API_KEY") {
        Log.e("Places test", "No api key")
        finish()
        return
    }

    // Initialize the SDK
    Places.initializeWithNewPlacesApiEnabled(applicationContext, apiKey)

    // Create a new PlacesClient instance
    val placesClient = Places.createClient(this)
    

Джава

    // Define a variable to hold the Places API key.
    String apiKey = BuildConfig.PLACES_API_KEY;

    // Log an error if apiKey is not set.
    if (TextUtils.isEmpty(apiKey) || apiKey.equals("DEFAULT_API_KEY")) {
      Log.e("Places test", "No api key");
      finish();
      return;
    }

    // Initialize the SDK
    Places.initializeWithNewPlacesApiEnabled(getApplicationContext(), apiKey);

    // Create a new PlacesClient instance
    PlacesClient placesClient = Places.createClient(this);
    

SDK Адресов для Android

Передайте ключ API при вызове Places.initialize() :

Котлин

    // Define a variable to hold the Places API key.
    val apiKey = BuildConfig.PLACES_API_KEY

    // Log an error if apiKey is not set.
    if (apiKey.isEmpty() || apiKey == "DEFAULT_API_KEY") {
        Log.e("Places test", "No api key")
        finish()
        return
    }

    // Initialize the SDK
    Places.initialize(applicationContext, apiKey)

    // Create a new PlacesClient instance
    val placesClient = Places.createClient(this)
    

Джава

    // Define a variable to hold the Places API key.
    String apiKey = BuildConfig.PLACES_API_KEY;

    // Log an error if apiKey is not set.
    if (TextUtils.isEmpty(apiKey) || apiKey.equals("DEFAULT_API_KEY")) {
      Log.e("Places test", "No api key");
      finish();
      return;
    }

    // Initialize the SDK
    Places.initialize(getApplicationContext(), apiKey);

    // Create a new PlacesClient instance
    PlacesClient placesClient = Places.createClient(this);
    

Теперь вы готовы начать использовать Places SDK для Android!

Шаг 5. Настройте устройство Android

Чтобы запустить приложение, использующее Places SDK для Android, необходимо развернуть его на устройстве Android или в эмуляторе Android, основанном на Android 4.0 или более поздней версии и включающем API Google.

  • Чтобы использовать устройство Android, следуйте инструкциям в разделе «Запуск приложений на аппаратном устройстве» .
  • Чтобы использовать эмулятор Android, вы можете создать виртуальное устройство и установить эмулятор с помощью диспетчера виртуальных устройств Android (AVD) , который входит в состав Android Studio.

Следующие шаги

После настройки проекта вы можете изучить примеры приложений .