Subscribe to these release notes.
This page is updated with each new release of the Places SDK for Android. The changelog lists releases by date and includes any new features, bug fixes and significant performance improvements.September 18, 2024
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
In accordance with the 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 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.
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.
Several of the Place data fields 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.
New Place data fields 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.
Native Kotlin APIs are now available for the Places SDK for Android.
For more information, including reference documentation see the Reference Overview.
May 28, 2024
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
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).
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).
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).
Session tokens and session pricing are now supported for the Places SDK (New). For more information, see Session tokens.
isOpen()
can now access results from Places Details (New). 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.
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.
March 19, 2024
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
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.
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.
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).
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.
November 14, 2023
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
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.
Place Details now includes the new Review
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()
method to return up to five reviews for a place.
Use the new Place.getNameLanguageCode()
method to access the language code.
For more information, see Place Details.
The Places SDK for Android (New) adds the AuthorAttributions
field to the PhotoMetadata
class used by Place 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
objects.
Added Text Search, 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.
New place type values are now available. You must use Places SDK for Android (New) to be able to access new type values.
Use the new Place.getPlaceTypes()
method to access these new types.
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.
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
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()
.
The minimum version of the Places SDK for Android with Place.getPlaceTypes()
is v3.3.0.
July 05, 2023
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
To clarify which class provides supported String constants for filtering Place Autocomplete predictions, the TypeFilter
class in the Places SDK for Android
is deprecated as of v3.2.0.
Instead, use PlaceTypes
. For more information, see Filter results by place type or type collection.
The minimum version of the Places SDK for Android with PlaceTypes
is v2.7.0. The v2.7.0 release notes have been amended to clarify that the deprecated methods in v2.7.0 should use PlaceTypes
instead of TypeFilter
.
Place Details now supports the following new Atmosphere Data Field, which contains a summary of a place up to 150 characters in length:
Place.Field.EDITORIAL_SUMMARY
The Place class now contain the following new methods to support this field:
getEditorialSummary()
getEditorialSummaryLanguageCode()
April 13, 2023
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
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)
Autocomplete.setCountry(String country)
AutocompleteSupportFragment.setCountry(String country)
FindAutocompletePredictionsRequest.getCountry()
Instead, use the following methods. The minimum version of the Places SDK for Android with the following methods is v2.2.0:
To provide a more convenient method for checking on open status of a place, Place.isOpen()
is deprecated as of v3.1.0. Instead, use PlacesClient.isOpen()
. The minimum version of the Places SDK for Android with PlacesClient.isOpen()
is v3.1.0.
For more information on PlacesClent.isOpen()
, see Get open status.
Place Details now supports the following new Basic Data Field:
Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
And the following new Atmosphere Data Fields:
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
The following methods have been added to Place:
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()
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
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
According to the 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 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.
Place Details now supports four new Atmosphere Data Fields:
Place.Field.TAKEOUT
Place.Field.DELIVERY
Place.Field.DINE_IN
Place.Field.CURBSIDE_PICKUP
Added new Place.BooleanPlaceAttributeValue class that defines the values of these new place attribute fields.
November 01, 2022
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 or subscribe to the Release Notes XML feed.
If you are a new user, see Set Up in the Google Cloud Console to start the installation process.
If you are an existing customer, see the upgrade instructions at Versions.
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)
FindAutocompletePredictionsRequest.Builder.setTypeFilter(TypeFilter typeFilter)
Autocomplete.IntentBuilder.setTypeFilter(TypeFilter typeFilter)
Instead, use:
AutocompleteSupportFragment.setTypesFilter(List<String> placeTypes)
FindAutocompletePredictionsRequest.Builder.setTypesFilter(List<String> placeTypes)
Autocomplete.IntentBuilder.setTypesFilter(List<String> placeTypes)
The minimum version of the Places SDK for Android with setTypesFilter(List<String> placeTypes)
is v2.7.0.
Added the setTypesFilter(List<String> placeTypes)
method to AutocompleteSupportFragment, FindAutocompletePredictionsRequest.Builder, and 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.
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.
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()
method now considers the value ofPlace.Field.BUSINESS_STATUS
andPlace.Field.UTC_OFFSET
to compute its return value.To ensure accurate results from the
Place.isOpen()
method, request thePlace.Field.BUSINESS_STATUS
field and thePlace.Field.UTC_OFFSET
field in your original place request. If the returnedPlace
object containsPlace.Field.BUSINESS_STATUS
with a value ofCLOSED_PERMANENTLY
orCLOSED_TEMPORARILY
,Places.isOpen()
returnsfalse
. IfPlace.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 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 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
(
iconBackgroundColor
andiconURL
) 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.
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
field and mask forFetchPlace
andFindCurrentPlace
.
April 21, 2020 - Plus code support in Place Autocomplete
- Place Autocomplete now supports 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. See the blog post to learn more about this enhancement.
- Place Autocomplete now supports filtering by multiple countries (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 threwIllegalStateException
. 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. For details, see the migration guide.
Features
- Adds two new methods to
Place
:Place.getUtcOffsetMinutes()
returns the UTC offset for a place, in minutes.Place.isOpen()
andPlace.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 offindCurrentPlace()
).
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
andAutocompletePrediction.builder.setPlaceTypes()
to be stripped from the AAR, andPlace.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. 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 for more information about the new style.
September 2016 - v.9.6
- Added the
setCountry
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 that implements the principles of material design.
December 17, 2015
- This release adds the autocomplete widget, 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.
September 24, 2015
This release adds three new methods to
AutocompletePrediction
, 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. 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 existinggetDescription()
method. In addition, it lets you highlight the sections of the description that match the search with a style of your choice, usingCharacterStyle
. TheCharacterStyle
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
, are now deprecated:getDescription()
is now deprecated. Please usegetFullText()
,getPrimaryText()
, and/orgetSecondaryText()
to retrieve the full or partial description,getMatchedSubstrings()
is now deprecated. Please usegetFullText()
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.
August 13, 2015
- Added support for retrieving and displaying Place Photos.
April 28, 2015
- Added a
getAttributions()
method onPlaceBuffer
. You now need to display third-party attributions if your app uses aPlaceBuffer
by calling get place by ID. See the attributions guide 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 UI widget, allowing users to select a place on an interactive map.
- Get the current place, that is, the place where the device is last known to be located.
- Retrieve and display rich information about a place.
- Make it easy to enter place names and addresses, by autocompleting your users' queries as they type.
- Add a 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 the presence of a device at a particular place.
- Store the unique place ID for one or more places, and use the ID to retrieve place information on demand.