To configure your app to use the Places SDK for Android, follow these steps. They are required for all apps using the Places SDK for Android.
Step 1: Set up Android Studio
- Android Studio Arctic Fox or later is required. If you haven't already done so, download and install it.
- Ensure that you are using the Android Gradle plugin version 7.0 or later in Android Studio.
Step 2. Set up the SDK
The Places SDK for Android library is available through Google's Maven repository. To add the SDK to your app, do the following:
- In your top-level
settings.gradle
file, include the Gradle plugin portal, Google Maven repository, and Maven central repository under thepluginManagement
block. ThepluginManagement
block must appear before any other statements in the script.pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } }
- In your top-level
settings.gradle
file, include the Google's Maven repository and Maven central repository under thedependencyResolutionManagement
block:dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } }
-
In the
dependencies
section of your module-levelbuild.gradle
file, add a dependency to the Places SDK for Android:dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlin_version")) implementation 'com.google.android.libraries.places:places:3.3.0' }
- In your module-level
build.gradle
file, setcompileSdk
andminSdk
to the following values:android { compileSdk 31 defaultConfig { minSdk 21 // ... }
Step 3: Add your API key to the project
This section describes how to store your API key so that it can be securely referenced by
your app. You should not check your API key into your version control system, so we recommend
storing it in the secrets.properties
file, which is located in the root directory of your
project. For more information about the secrets.properties
file, see
Gradle properties files.
To streamline this task, we recommend that you use the Secrets Gradle Plugin for Android.
To install the Secrets Gradle Plugin for Android in your Google Maps project:
-
In Android Studio, open your project-level
build.gradle
file and add the following code to thedependencies
element underbuildscript
.Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Open your module-level
build.gradle
file and add the following code to theplugins
element.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Save the file and sync your project with Gradle.
-
Open the
secrets.properties
in your project level directory, and then add the following code. ReplaceYOUR_API_KEY
with your API key.MAPS_API_KEY=YOUR_API_KEY
- Save the file.
-
In your
AndroidManifest.xml
file, go tocom.google.android.geo.API_KEY
and update theandroid:value attribute
as follows:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
-
Optionally edit the properties of the plugin to specify a different secrets file or other properties. In Android Studio, open your project-level
build.gradle
file and edit thesecrets
property:Groovy
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.*" }
Kotlin
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.*" }
Note: As shown above,
com.google.android.geo.API_KEY
is the recommended metadata name
for the API key. A key with this name can be used to authenticate to multiple
Google Maps-based APIs on the Android platform, including the
Places SDK for Android. For backwards compatibility, the API also
supports the name com.google.android.maps.v2.API_KEY
. This legacy
name allows authentication to the Android Maps API v2 only. An application can
specify only one of the API key metadata names. If both are specified, the API
throws an exception.
Step 4. Initialize the Places API client
Initialize the Places SDK for Android within an activity or fragment. You must first decide which version of the SDK to use: Places SDK for Android or Places SDK for Android (New). For more information on product versions, see Choose your SDK version.
The following example shows how to initialize the SDK for both versions.Places SDK for Android (New)
Pass the API key when calling
Places.initializeWithNewPlacesApiEnabled()
:
Kotlin
// Initialize the SDK Places.initializeWithNewPlacesApiEnabled(applicationContext, apiKey) // Create a new PlacesClient instance val placesClient = Places.createClient(this)
Java
// Initialize the SDK Places.initializeWithNewPlacesApiEnabled(getApplicationContext(), apiKey); // Create a new PlacesClient instance PlacesClient placesClient = Places.createClient(this);
Places SDK for Android
Pass the API key when calling
Places.initialize()
:
Kotlin
// Initialize the SDK Places.initialize(applicationContext, apiKey) // Create a new PlacesClient instance val placesClient = Places.createClient(this)
Java
// Initialize the SDK Places.initialize(getApplicationContext(), apiKey); // Create a new PlacesClient instance PlacesClient placesClient = Places.createClient(this);
You are now ready to begin using the Places SDK for Android!
Step 5: Set up an Android device
To run an app that uses the Places SDK for Android, you must deploy it to an Android device or Android emulator that is based on Android 4.0 or higher and includes the Google APIs.
- To use an Android device, follow the instructions at Run apps on a hardware device.
- To use an Android emulator, you can create a virtual device and install the emulator by using the Android Virtual Device (AVD) Manager that comes with Android Studio.