<br />

This archive lists Places SDK for Android release notes for 2024 and earlier. For 2025
and 2026 releases, see the
[Places SDK for Android release notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt).

## December 06, 2024

4.1.0 Feature AppCheck is now available in the Places SDK for Android. AppCheck allows you to add another layer of security for your Google Maps Platform credentials.

For more information, see the [AppCheck overview](https://developers.google.com/maps/documentation/places/android-sdk/app-check.md.txt).

## November 12, 2024

4.1.0 Announcement **Release 4.1.0**

The Places SDK for Android version 4.1.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.
If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
4.1.0 Feature Search Along Route features are now available, which allow you to search for places along predefined routes and calculate routing summaries to places in the search results.

For more information, see the [Search Along Route overview](https://developers.google.com/maps/documentation/places/android-sdk/sar-overview.md.txt).
4.1.0 Feature The Places SDK (New) now supports 104 new types, which can be used to filter results in Autocomplete (New), Nearby Search (New), and Text Search (New) requests and are returned in the API response.

For a complete list of supported types, see [Place Types (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-types.md.txt).

## September 18, 2024

4.0.0 Feature Native Kotlin APIs are now available for the Places SDK for Android.

For more information, including reference documentation see the [Reference Overview](https://developers.google.com/maps/documentation/places/android-sdk/reference.md.txt).
4.0.0 Feature New [Place data fields](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.Field.md.txt) are now available.

For a complete list of new fields, see [Migrate to the new Place data fields in the Places SDK for Android 4.0](https://developers.google.com/maps/documentation/places/android-sdk/migrate-place-data-fields).
4.0.0 Breaking In accordance with the [Mobile OS version support policy](https://developers.google.com/maps/software-support.md.txt#mobile-os-version-support-policy), we are freezing support for Android 5 (API levels 22 and below) as of Places SDK for Android v4.0.0. The new minSDK is Android 5 (API level 23). Earlier Places SDK versions will continue supporting Android 5.

If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support Android 5.

[Specify a version](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt) of the Places SDKs for Android in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
4.0.0 Deprecated Several of the [Place data fields](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.Field.md.txt) are now deprecated and have been replaced by new fields.

For a complete list of deprecated fields and their replacements, see [Migrate to the new Place data fields in the Places SDK for Android 4.0](https://developers.google.com/maps/documentation/places/android-sdk/migrate-place-data-fields).
4.0.0 Breaking Apps that use the Places SDK for Android now must now enable Java 8 library support.

For more information, see <https://developer.android.com/studio/write/java8-support>.
4.0.0 Announcement **Release 4.0.0**

The Places SDK for Android version 4.0.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).

## May 28, 2024

3.5.0 Announcement **Release 3.5.0**

The Places SDK for Android version 3.5.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.5.0 Feature The new features added to Places SDK for Android use a new pricing model. For pricing information for all new features, see [Places SDK for Android (New)](https://developers.google.com/maps/documentation/places/android-sdk/usage-and-billing.md.txt#pricing-new).
3.5.0 Feature The new version of Autocomplete is now available. Autocomplete (New) returns place predictions in response to user search queries. For more information, see [Autocomplete (New)](https://developers.google.com/maps/documentation/places/android-sdk/place-autocomplete.md.txt).
3.5.0 Feature Nearby Search is now available in the Places SDK for Android. A Nearby Search (New) request takes as input the region to search specified as a circle, defined by the latitude and longitude coordinates of the center point of the circle and the radius in meters. For more information, see [Nearby Search (New)](https://developers.google.com/maps/documentation/places/android-sdk/nearby-search.md.txt).
3.5.0 Change [`isOpen()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/PlacesClient.md.txt#isOpen(com.google.android.libraries.places.api.net.IsOpenRequest)) can now access results from [Places Details (New)](https://developers.google.com/maps/documentation/places/android-sdk/details-place.md.txt). If Place Details (New) is enabled, the `isOpen()` request uses the Place Details (New) result. Otherwise, it uses the Place Details result. The result from both services is the same, but the pricing is different. For more information, see [Places SDK for Android Usage and Billing](https://developers.google.com/maps/documentation/places/android-sdk/usage-and-billing.md.txt).
3.5.0 Change Session tokens and session pricing are now supported for the Places SDK (New). For more information, see [Session tokens](https://developers.google.com/maps/documentation/places/android-sdk/place-session-tokens.md.txt).
3.5.0 Change Places SDK for Android version 3.5.0 requires a minimum of Kotlin 1.8.0. You can ensure that your Kotlin dependencies meet this minimum by updating the `dependencies` section of your module-level `build.gradle` file to add the `kotlin-bom` dependency:

      dependencies {
          implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
          implementation 'com.google.android.libraries.places:places:3.5.0'
      }

For more information on the `kotlin-bom` dependency, see [Usage of the latest kotlin-stdlib version in transitive dependencies](https://kotlinlang.org/docs/whatsnew18.html#usage-of-the-latest-kotlin-stdlib-version-in-transitive-dependencies).

## March 19, 2024

3.4.0 Announcement **Release 3.4.0**

The Places SDK for Android version 3.4.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.4.0 Feature Places SDK for Android version 3.4.0 supports two SDK versions: the existing **Places SDK for Android** and **Places SDK for Android (New)**, the next generation version of the SDK.

The new features added in version 3.4.0 are all part of **Places SDK for Android (New)**, so you must use that SDK to access the new features.

Your first task is to decide which SDK to use. This is true if you are a new customer or an existing customer already using the SDK. To learn the key differences between the two SDK versions, see [Choose your SDK version](https://developers.google.com/maps/documentation/places/android-sdk/choose-sdk).

> [!NOTE]
> **Note:** If you are an existing customer and are using session tokens, continue using the existing SDK. Places SDK for Android (New) does not currently support session tokens.

3.4.0 Feature The Places SDK for Android added support for retrieving photo URIs for a place, along with the existing ability to retrieve photo bitmaps. For more information, see [Place Photos](https://developers.google.com/maps/documentation/places/android-sdk/photos).
3.4.0 Change Places SDK for Android version 3.4.0 requires a minimum of Kotlin 1.8.0. You can ensure that your Kotlin dependencies meet this minimum by updating the `dependencies` section of your module-level `build.gradle` file to add the `kotlin-bom` dependency:

      dependencies {
          implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
          implementation 'com.google.android.libraries.places:places:3.4.0'
      }

For more information on the `kotlin-bom` dependency, see [Usage of the latest kotlin-stdlib version in transitive dependencies](https://kotlinlang.org/docs/whatsnew18.html#usage-of-the-latest-kotlin-stdlib-version-in-transitive-dependencies).
3.4.0 Feature **SKU: Place Details (Location Only)** is a Preview feature that contains fields that were previously included in **SKU: Place Details (Basic)**. Usage during Preview is at no charge.

For more information, see [SKU: Place Details (Location Only)](https://developers.google.com/maps/documentation/places/android-sdk/usage-and-billing.md.txt#location-placedetails).

## November 14, 2023

3.3.0 Announcement **Release 3.3.0**

The Places SDK for Android version 3.3.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.3.0 Feature Places SDK for Android version 3.3.0 supports two SDK versions: the existing **Places SDK for Android** and **Places SDK for Android (New)**, the next generation version of the SDK.

The new features added in v3.3.0 are all part of **Places SDK for Android (New)**, so you must use that SDK to access the new features.

Your first task is to decide which SDK to use. This is true if you are a new customer or an existing customer already using the SDK. To learn the key differences between the two SDK versions, see [Choose your SDK version](https://developers.google.com/maps/documentation/places/android-sdk/choose-sdk).

> [!NOTE]
> **Note:** If you are an existing customer and are using session tokens, continue using the existing SDK. Places SDK for Android (New) does not currently support session tokens.

3.3.0 Feature The Places SDK for Android (New) adds the [`AuthorAttributions`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/AuthorAttributions.md.txt) field to the `PhotoMetadata` class used by [Place Photos](https://developers.google.com/maps/documentation/places/android-sdk/photos). You must use Places SDK for Android (New) to be able to access author attributions.

The `PhotoMetadata` object returned by `Place.getPhotoMetadas()` can contain one or more author attributions represented by a `List` of [`AuthorAttribution`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/AuthorAttribution.md.txt) objects.
3.3.0 Feature Added [Text Search](https://developers.google.com/maps/documentation/places/android-sdk/text-search.md.txt), which returns information about a set of places based on a string --- for example "pizza in New York" or "shoe stores near Ottawa" or "123 Main Street". You must use Places SDK for Android (New) to be able to use Text Search.
3.3.0 Feature [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields) now includes the new [`Review`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Review.md.txt) class and the new language code for the name string in the response `Place` object. You must use Places SDK for Android (New) to be able to access these new fields.

Use the new [`Place.getReviews()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#getReservable()) method to return up to five reviews for a place.

Use the new [`Place.getNameLanguageCode()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#getNameLanguageCode()) method to access the language code.

For more information, see [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-details).
3.3.0 Feature [New place type values](https://developers.google.com/maps/documentation/places/android-sdk/choose-sdk#expanded_place_types) are now available. You must use Places SDK for Android (New) to be able to access new type values.

Use the new [`Place.getPlaceTypes()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#public-abstract-liststring-getplacetypes) method to access these new types.
3.3.0 Issue If you run into errors for "Missing classes detected while running R8", please add the following rules to your existing keep rules in `proguard-rules.pro`:

    -dontwarn io.grpc.internal.DnsNameResolverProvider
    -dontwarn io.grpc.internal.PickFirstLoadBalancerProvider

3.3.0 Change Places SDK for Android version 3.3.0 requires a minimum of Kotlin 1.8.0. You can ensure that your Kotlin dependencies meet this minimum by updating the `dependencies` section of your module-level `build.gradle` file to add the `kotlin-bom` dependency:

      dependencies {
          implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
          implementation 'com.google.android.libraries.places:places:3.3.0'
      }

For more information on the `kotlin-bom` dependency, see [Usage of the latest kotlin-stdlib version in transitive dependencies](https://kotlinlang.org/docs/whatsnew18.html#usage-of-the-latest-kotlin-stdlib-version-in-transitive-dependencies).
3.3.0 Deprecated New place type values have been added in v3.3.0. You must use Places SDK for Android (New) to be able to access new type values.

These new type values are not accessible by the existing `Place.getTypes()` method. `Place.getTypes()` in the Places SDK for Android
is deprecated as of v3.3.0.

Instead, use [`Place.getPlaceTypes()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#public-abstract-liststring-getplacetypes).
The minimum version of the Places SDK for Android with `Place.getPlaceTypes()` is v3.3.0.

## July 05, 2023

3.2.0 Announcement **Release 3.2.0**

The Places SDK for Android version 3.2.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.2.0 Deprecated To clarify which class provides supported String constants for filtering Place Autocomplete predictions, the [`TypeFilter`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/TypeFilter) class in the Places SDK for Android
is deprecated as of v3.2.0.

Instead, use [`PlaceTypes`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/PlaceTypes.md.txt). For more information, see [Filter results by place type or type collection](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete#filter_results_by_place_types_or_type_collection).

The minimum version of the Places SDK for Android with `PlaceTypes` is v2.7.0. See the updated [v2.7.0 release notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes-archive.md.txt#November_01_2022), which clarify that the deprecated methods in v2.7.0 use `PlaceTypes` instead of `TypeFilter`.
3.2.0 Feature [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields) now supports the following new [Atmosphere Data Field](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields#atmosphere), which contains a summary of a place up to 150 characters in length:

- `Place.Field.EDITORIAL_SUMMARY`

The [Place](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt) class now contain the following new methods to support this field:

- `getEditorialSummary()`
- `getEditorialSummaryLanguageCode()`

## April 13, 2023

3.1.0 Announcement **Release 3.1.0**

The Places SDK for Android version 3.1.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.1.0 Deprecated To simplify filtering results by country, the following methods in the Places SDK for Android are deprecated as of v3.1.0:

- [`FindAutocompletePredictionsRequest.Builder.setCountry(String countryCode)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.Builder.md.txt#setCountry(java.lang.String))
- [`Autocomplete.setCountry(String country)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/Autocomplete.IntentBuilder#setCountry(java.lang.String))
- [`AutocompleteSupportFragment.setCountry(String country)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment#setCountry(java.lang.String))
- [`FindAutocompletePredictionsRequest.getCountry()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.md.txt#getCountry())

Instead, use the following methods. The minimum version of the Places SDK for Android with the following methods is v2.2.0:

- [`FindAutocompletePredictionsRequest.Builder.setCountries(List<String> countries)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.Builder.md.txt#setCountries(java.util.List%3Cjava.lang.String%3E))
- [`Autocomplete.IntentBuilder.setCountries(List<String> countries)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/Autocomplete.IntentBuilder#setCountries(java.util.List%3Cjava.lang.String%3E))
- [`AutocompleteSupportFragment.setCountries(List<String> countries)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment#setCountries(java.util.List%3Cjava.lang.String%3E))
- [`FindAutocompletePredictionsRequest.getCountries()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.md.txt#getCountries())
3.1.0 Deprecated To provide a more convenient method for checking on open status of a place, [`Place.isOpen()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#isOpen(long))
is deprecated as of v3.1.0. Instead, use [`PlacesClient.isOpen()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/PlacesClient.md.txt#isOpen(com.google.android.libraries.places.api.net.IsOpenRequest)). The minimum version of the Places SDK for Android with `PlacesClient.isOpen()` is v3.1.0.

For more information on `PlacesClient.isOpen()`, see [Get open status](https://developers.google.com/maps/documentation/places/android-sdk/place-details#get-open).
3.1.0 Feature [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-details) now supports the following new [Basic Data Field](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields#basic):

- `Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE`

And the following new [Atmosphere Data Fields](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields#atmosphere):

- `Place.Field.RESERVABLE`
- `Place.Field.SERVES_BEER`
- `Place.Field.SERVES_BREAKFAST`
- `Place.Field.SERVES_BRUNCH`
- `Place.Field.SERVES_DINNER`
- `Place.Field.SERVES_LUNCH`
- `Place.Field.SERVES_VEGETARIAN_FOOD`
- `Place.Field.SERVES_WINE`
3.1.0 Feature The following methods have been added to [Place](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#getCurrentOpeningHours()):

- [`getCurrentOpeningHours()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#getCurrentOpeningHours()) returns a place's hours of operation over the next seven days. The time period starts at midnight on the date of the request and ends at 11:59 pm six days later.

- [`getSecondaryOpeningHours()`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.md.txt#getSecondaryOpeningHours()) returns a place's secondary hours of operation over the next seven days. Secondary hours are different from a business's main hours. For example, a restaurant can specify drive through hours or delivery hours as secondary hours.

## December 12, 2022

3.0.0 Announcement **Release 3.0.0**

The Places SDK for Android version 3.0.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
3.0.0 Breaking According to the [Mobile OS version support policy](https://developers.google.com/maps/software-support.md.txt#mobile-os-version-support-policy), we are freezing support for Android 4 (API levels 20 and below) as of Places SDK for Android v3.0.0. The new minSDK is Android 5 (API level 21). Earlier Places SDK versions will continue supporting Android 4.

If your dependencies do not specify a version number, your IDE will load the newest SDK version and new builds of your app will not support Android 4.

[Specify a version](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt) of the Places SDKs for Android in your application's build dependencies in order to control when you raise the minimum supported OS for new versions of your app.
3.0.0 Feature [Place Details](https://developers.google.com/maps/documentation/places/android-sdk/place-details) now supports four new [Atmosphere Data Fields](https://developers.google.com/maps/documentation/places/android-sdk/place-data-fields#atmosphere):

- `Place.Field.TAKEOUT`
- `Place.Field.DELIVERY`
- `Place.Field.DINE_IN`
- `Place.Field.CURBSIDE_PICKUP`

Added new [Place.BooleanPlaceAttributeValue](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.BooleanPlaceAttributeValue.md.txt) class that defines the values of these new place attribute fields.

## November 01, 2022

2.7.0 Announcement **Release 2.7.0**

The Places SDK for Android version 2.7.0 is now available. For information about this release, and for all previous releases, see the [Release Notes](https://developers.google.com/maps/documentation/places/android-sdk/release-notes.md.txt) or subscribe to the Release Notes [XML feed](https://developers.google.com/static/feeds/places-sdk-android-release-notes.xml).

If you are a new user, see [Set Up in the Google Cloud Console](https://developers.google.com/maps/documentation/places/android-sdk/cloud-setup) to start the installation process.

If you are an existing customer, see the upgrade instructions at [Versions](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt).
2.7.0 Deprecated To provide expanded support for filtering Place Autocomplete by multiple place types, the following are deprecated as of v2.7.0:

- [`AutocompleteSupportFragment.setTypeFilter(TypeFilter typeFilter)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment#public-autocompletesupportfragment-settypefilter-typefilter-typefilter)
- [`FindAutocompletePredictionsRequest.Builder.setTypeFilter(TypeFilter typeFilter)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.Builder.md.txt#setTypeFilter(com.google.android.libraries.places.api.model.TypeFilter))
- [`Autocomplete.IntentBuilder.setTypeFilter(TypeFilter typeFilter)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/Autocomplete.IntentBuilder#setTypeFilter(com.google.android.libraries.places.api.model.TypeFilter))

Instead, use:

- [`AutocompleteSupportFragment.setTypesFilter(List<String> placeTypes)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment#setTypesFilter(java.util.List%3Cjava.lang.String%3E))
- [`FindAutocompletePredictionsRequest.Builder.setTypesFilter(List<String> placeTypes)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.Builder.md.txt#setTypesFilter(java.util.List%3Cjava.lang.String%3E))
- [`Autocomplete.IntentBuilder.setTypesFilter(List<String> placeTypes)`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/Autocomplete.IntentBuilder#setTypesFilter(java.util.List%3Cjava.lang.String%3E))

The minimum version of the Places SDK for Android with `setTypesFilter(List<String> placeTypes)` is v2.7.0.
2.7.0 Feature Added the `setTypesFilter(List<String> placeTypes)` method to [AutocompleteSupportFragment](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/AutocompleteSupportFragment), [FindAutocompletePredictionsRequest.Builder](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/FindAutocompletePredictionsRequest.Builder.md.txt), and [Autocomplete.IntentBuilder](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/widget/Autocomplete.IntentBuilder). Use this method to specify up to five values to restrict results from a Place Autocomplete request.

For more information, see [Filter results by place type or type collection](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete#filter_results_by_place_types_or_type_collection).
2.7.0 Change If your app does not use `PlacesClient.findCurrentPlace()`, you must now explicitly remove both the
`ACCESS_FINE_LOCATION` and `ACCESS_COARSE_LOCATION` permissions. In previous releases, you only had to remove `ACCESS_FINE_LOCATION`.

For more information, see [Current Place](https://developers.google.com/maps/documentation/places/android-sdk/current-place).
2.7.0 Fixed **122841340** : When you call `Places.initialize(Context, String, Locale)` and the specified `Locale` is different from the device's locale, the autocomplete widget now localizes both the search hint and the search results based on the setting of `Locale`. If you omit `Locale`, then it uses the device's locale.

## March 31, 2022 - v2.6.0

**Features**

- The [`Place.isOpen()`](https://developers.google.com/maps/documentation/places/android-sdk/place-details#is-open)
  method now considers the value of
  [`Place.Field.BUSINESS_STATUS`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.BusinessStatus.md.txt)
  and [`Place.Field.UTC_OFFSET`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.Field.md.txt#public-static-final-place.field-utc_offset)
  to compute its return value.

  To ensure accurate results from the `Place.isOpen()` method, request the
  `Place.Field.BUSINESS_STATUS` field and the `Place.Field.UTC_OFFSET`
  field in your original place request.
  If the returned `Place` object contains `Place.Field.BUSINESS_STATUS` with a
  value of `CLOSED_PERMANENTLY` or `CLOSED_TEMPORARILY`, `Places.isOpen()` returns
  `false`. If `Place.Field.BUSINESS_STATUS` was not requested or is unavailable,
  `Places.isOpen()` assumes that the business is operational.

**Deprecation**

Places SDK for Android Version 2.6.0 is the last version that supports
the equivalent Places SDK for Android compatibility library.
If you are using the compatibility library to access Places SDK for Android
features or data, we recommend that you follow the
[migration guide](https://developers.google.com/maps/documentation/places/android-sdk/client-migration)
to use the Places SDK for Android directly before the release of
Places SDK for Android Version 2.7.0. The compatibility library
will not be supported above Version 2.6.0.

## October 18, 2021 - Freezing support for API Level 23, 24 and 25

In response to changes in our internal dependencies, Android API Level 23,
24, and 25 (Android 6, 7.0 and 7.1) will not be supported in new versions of the
Places SDK for Android beginning in the third quarter of 2022.

Places SDK for Android versions released beginning in the third
quarter of 2022 will only support devices running a minimum of
Android API Level 26.

App versions built with v2.x or lower of the Places SDK for Android
will continue to work on devices running Android API Level 25 and below.

Be sure to [specify a version](https://developers.google.com/maps/documentation/places/android-sdk/versions.md.txt)
in your application's build dependencies in order to control when you raise
the minimum supported OS for new versions of your app.

## October 14, 2021 - v2.5.0

**Features**

- Added new [Place fields](https://developers.google.com/maps/documentation/places/android-sdk/place-details#place-details) (`iconBackgroundColor` and `iconURL`) to allow for rendering icons that indicate the place (POI) type.

**Improvements**

- Added `@RecentlyNonNull` and `@RecentlyNullable` annotations. This change will cause warnings on null safety violations, and provides better Kotlin interoperability and better static null checking for apps that use Java null checking frameworks.
- Autocomplete widgets now have debouncing when typing quickly.
- Volley dependency updated to 1.2.1 in observation of the sunset of [JCenter](https://developer.android.com/studio/build/jcenter-migration).

**Bug fixes**

- Fixed a bug where the Autocomplete widget was resetting the text query in some cases.

## September 16, 2020 - v2.4.0

**API changes**

- Added getters to request builders and model builders, for better Kotlin interoperability.

**Bug Fixes**

- Fixes an issue where the autocomplete search box would unexpectedly clear.

## May 26, 2020 - v2.3.0

**New Features**

- Added [`BusinessStatus`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/model/Place.Field.md.txt) field and mask for [`FetchPlace`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/PlacesClient.md.txt#fetchPlace(com.google.android.libraries.places.api.net.FetchPlaceRequest)) and [`FindCurrentPlace`](https://developers.google.com/maps/documentation/places/android-sdk/reference/com/google/android/libraries/places/api/net/PlacesClient.md.txt#findCurrentPlace(com.google.android.libraries.places.api.net.FindCurrentPlaceRequest)).

## April 21, 2020 - Plus code support in Place Autocomplete

- Place Autocomplete now supports [plus codes](https://plus.codes). This change is supported for all versions.

## February 3, 2020 - v.2.2.0

**New Features**

- Place Autocomplete response now returns the distance in meters from each supported prediction, based on the specified origin (LatLng) in [programmatic
  predictions requests](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete#get_place_predictions_programmatically). See the [blog
  post](https://mapsplatform.google.com/resources/blog/new-autocomplete-features-in-google-maps-platform-help-your-users-make-faster-decisions) to learn more about this enhancement.
- Place Autocomplete now supports [filtering by multiple countries](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete#filter_results_by_country) (up to five).

## November 4, 2019 - v.2.1.0

**New Features**

- Added ability to create `AutocompleteSupportFragment` programmatically with a static newInstance method.
  - `AutocompleteSupportFragment.newInstance` returns a new autocomplete fragment with default config.
- `AutocompleteSupportFragment` setters now return the instance so the setters can be chained in a builder-like fashion.

**Resolved Issues**

- Resolved issue where empty `AddressComponent` types incorrectly threw `IllegalStateException`. Some address components legitimately have no types.
- Resolved issue where the autocomplete widget would lose its state on configuration change, for example, from portrait to landscape layout.
- Resolved issue where findCurrentPlace may crash when there are too many access points nearby.

**Known Issues**

- Our dependency on `FragmentFactory` is implemented by AndroidX, but our javadocs believe it is implemented by the Support Libraries.

## July 17, 2019 - v.2.0.0

**Incompatible Changes**

- Changed from support library to [AndroidX](https://developer.android.com/jetpack/androidx). For details, see the [migration guide](https://developer.android.com/jetpack/androidx/migrate).

**Features**

- Adds two new methods to `Place`:
  - `Place.getUtcOffsetMinutes()` returns the UTC offset for a place, in minutes.
  - `Place.isOpen()` and `Place.isOpen(long utcTimeMillis)` return a boolean indicating whether the place is currently open.
- Added `Autcomplete.IntentBuilder.setHint(String hint)` to allow changing the hint text for the search box.

**Improvements**

- Autocomplete API behavior has changed: All leading whitespace will be removed, and trailing whitespace will be replaced with a single space. This helps to conserve on network requests by using previously cached responses when user types in extra whitespace (e.g "Google ").
- Dependency on Glide has been removed, resulting in a smaller APK size.

## April 1, 2019 - v.1.1.0

**API changes**

- minSDKVersion is increased from 14 to 16.

**New Features**

- Added support for `AddressComponents` to the Place object (with the exception of `findCurrentPlace()`).

**Improvements**

- Improved model class validation (e.g `OpeningHours.getWeekdayText()` may not contain empty or null values).
- Removed Maven dependency on Guava resulting in reduced app size.

**Resolved issues**

- Resolved proguard issue that caused `OpeningHours.Builder` and `AutocompletePrediction.builder.setPlaceTypes()` to be stripped from the AAR, and `Place.Builder.autoBuild()` to not be stripped from the AAR.
- The AutocompleteActivity editText has been updated to manually request focus (required on API level 28).
- Made all collections in models classes immutable.
- Added support for restoring `AutocompleteActivity` state on config changes.

## January 29, 2019 - v.1.0

**Features**

- The Places SDK for Android is now distributed via a standalone static library, to enable more frequent updates and quicker bug fixes.
- Added a compatibility library to help with migration from the previous Android library, to the new and improved library.
- Added the ability to programmatically set/replace API keys.
- Added support for cancelling requests.
- Added support for using fields to enable specifying the types of place data to return.
- The Place object can now return the total number of reviews for each place.
- The Place object now returns business opening hours.
- Added support for [Plus codes](https://plus.codes/). Plus codes are short codes that provide an address for every location in the world, even in areas where traditional street addresses don't exist.
- Place autocomplete now supports session-based billing.

## June 14, 2018

- Enabled the new basemap style for the Place Picker. This applies to all versions of the Places SDK for Android. See the [blog post](https://maps-apis.googleblog.com/2018/02/updated-basemap-style-for-google-maps.html) for more information about the new style.

## September 2016 - v.9.6

- Added the [`setCountry`](https://developers.google.com/android/reference/com/google/android/gms/location/places/AutocompleteFilter.Builder.md.txt#setCountry(java.lang.String)) method to restrict the scope of a Places autocomplete request to a single country.
- Bug fixes and improvements to the Place Picker and Autocomplete Widget.

## August 2016 - v.9.4

- The Places API now includes a redesigned [Place Picker UI](https://developers.google.com/maps/documentation/places/android-sdk/placepicker) that implements the principles of material design.

## December 17, 2015

- This release adds the [autocomplete widget](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete), a search dialog with built-in autocomplete functionality. As a user enters search terms, the widget presents a list of predicted places to choose from. Autocomplete functionality has also been added to the [place picker](https://developers.google.com/maps/documentation/places/android-sdk/placepicker).

## September 24, 2015

- This release adds three new methods to
  [`AutocompletePrediction`](https://developers.google.com/android/reference/com/google/android/gms/location/places/AutocompletePrediction.md.txt),
  giving you easy access to the primary and secondary parts of the place
  description as well as the full text of the description. This is useful, for
  example, when you want to display a short title followed by further detail
  about the place. See the
  [sample code on GitHub](https://github.com/googlesamples/android-play-places/tree/master/).
  The new methods are as follows:

  - `getFullText(CharacterStyle matchStyle)` returns the full text of a place description. This is a combination of the primary and secondary text. Example: "*Eiffel Tower, Avenue Anatole France, Paris, France* ". This method is equivalent to the existing `getDescription()` method. In addition, it lets you highlight the sections of the description that match the search with a style of your choice, using [`CharacterStyle`](http://developer.android.com/reference/android/text/style/CharacterStyle.html). The `CharacterStyle` parameter is optional. Set it to null if you don't need any highlighting.
  - `getPrimaryText(CharacterStyle matchStyle)` returns the main text describing a place. This is usually the name of the place. Examples: "*Eiffel Tower* ", and "*123 Pitt Street*".
  - `getSecondaryText(CharacterStyle matchStyle)` returns the subsidiary text of a place description. This is useful, for example, as a second line when showing autocomplete predictions. Examples: "*Avenue Anatole France, Paris, France* ", and "*Sydney, New South Wales*".
- Accompanying the above improvement, the following methods on
  [`AutocompletePrediction`](https://developers.google.com/android/reference/com/google/android/gms/location/places/AutocompletePrediction.md.txt),
  are now deprecated:

  - `getDescription()` is now deprecated. Please use `getFullText()`, `getPrimaryText()`, and/or `getSecondaryText()` to retrieve the full or partial description,
  - `getMatchedSubstrings()` is now deprecated. Please use `getFullText()` to format matches more easily.
- The upcoming release of Android (Android M) introduces a new model for
  handling permissions, which streamlines the process for users when they
  install and upgrade apps. Provided you're using version 8.1 or later of
  Google Play services, you can configure your app to target the Android M SDK
  and use the new permissions model. To learn more, see
  [Working
  with System Permissions](https://developer.android.com/training/permissions/index.html).

## August 13, 2015

- Added support for retrieving and displaying [Place Photos](https://developers.google.com/maps/documentation/places/android-sdk/photos).

## April 28, 2015

- Added a `getAttributions()` method on [`PlaceBuffer`](https://developer.android.com/reference/com/google/android/gms/location/places/PlaceBuffer.html). You now need to display third-party attributions if your app uses a `PlaceBuffer` by calling [get place by ID](https://developers.google.com/maps/documentation/places/android-sdk/place-details#get-place). See the [attributions guide](https://developers.google.com/maps/documentation/places/android-sdk/attributions) for details.

## March 2015

This is the first release of the Places SDK for Android,
included as part of the Google Play services SDK.

**Features**

Help your customers explore where they are and what's around them:

- Use the built-in [place picker](https://developers.google.com/maps/documentation/places/android-sdk/placepicker) UI widget, allowing users to select a place on an interactive map.
- Get the [current place](https://developers.google.com/maps/documentation/places/android-sdk/current-place), that is, the place where the device is last known to be located.
- Retrieve and display rich [information about a place](https://developers.google.com/maps/documentation/places/android-sdk/place-details).
- Make it easy to enter place names and addresses, by [autocompleting](https://developers.google.com/maps/documentation/places/android-sdk/autocomplete) your users' queries as they type.
- [Add a place](https://developers.google.com/maps/documentation/places/android-sdk/add-place) to Google's Places database, for retrieval immediately from within your own app and for visibility to other apps after moderation.
- Improve the map around you by [reporting](https://developers.google.com/maps/documentation/places/android-sdk/report-place) the presence of a device at a particular place.
- Store the unique [place ID](https://developers.google.com/maps/documentation/places/android-sdk/place-details#get-place) for one or more places, and use the ID to retrieve place information on demand.