Release Notes

November 6, 2017 - version 11.6.0

Highlights from the Google Play services 11.6 release:

Known Issues with version 11.6.0

GoogleApi instances created with a Context in apps with targetSdkVersion 26 won't automatically prompt users to update Google Play services. Consider using GoogleApiAvailability.showErrorDialogFragment() under these conditions instead.

October 3, 2017 - version 11.4.2

Highlights from the Google Play services 11.4.2. release:

  • Cloud Firestore
    • The initial public beta release of Cloud Firestore is now available. Cloud Firestore is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud Platform. Like Firebase Realtime Database, it keeps your data in sync across client apps through realtime listeners and offers offline support so you can build responsive apps that work regardless of network latency or internet connectivity. Cloud Firestore also offers enterprise-grade scalability and seamless integration with other Firebase and Google Cloud Platform products, including Cloud Functions. For more information about Cloud Firestore, see the Firebase blog. To get started with Cloud Firestore right away, visit the quickstart.

September 2017 - version 11.4.0

Highlights from the Google Play services 11.4 release.

August 2017 - version 11.2.0

Highlights from the Google Play services 11.2 release.

  • Google Play services updated to 11.2.2 In this release:

  • Google Play services dependencies are now available via maven.google.com

    Dependencies are now available directly from maven.google.com. You can update your app’s Gradle build scripts to use this repository by configuring the build as follows:

    allprojects {
        repositories {
            jcenter()
            google()
        }
    }
    

    For more information on this change, see the accompanying blog post. For further details about the Google maven repository, see Add Build Dependencies in the Android documentation.

  • SDK Version Support in 11.2

    When you upgrade your app’s Play services dependencies to 11.2.0 or later, your app’s build.gradle must also be updated to specify a compileSdkVersion of at least 26 (Android O). This does not change the way your app runs. You will not be required to update targetSdkVersion. If you update compileSdkVersion to 26, you may receive an error in your build with the following message referring to the Android support library:

    This support library should should not use a different version (25) than the compileSdkVersion (26).
    

    This error can be resolved by upgrading your support library dependencies to at least version 26.0.0.

  • Ads

    • Added the loadAds() method to the AdLoader class, which allows apps to load multiple unique ads in a single request.
  • Auth

    • Added the WorkAccountClient class. This class provides methods for managing the lifecycle of Android for Work accounts.
    • Added the accounttransfer package. This package contains APIs used by authenticators for bootstrapping accounts.
    • The Fast Identity Online Universal 2nd Factor (FIDO U2F) API is now available. It provides U2F physical security key support to apps and websites, in accordance with the standards defined by the FIDO Alliance. To learn more, see Get Started with FIDO U2F and com.google.android.gms.fido.
  • Cast

  • Firebase

  • Instant Apps

  • Places

    • Added the GeoDataClient class. This class provides access to Google's database of local place and business information.
    • Added the PlaceDetectionClient class. This class provides quick access to the device's current place, and offers the opportunity to report the location of the device at a particular place (like a check in).
    • Added getGeoDataClient() and getPlaceDetectionClient() methods to the Places class.
  • Wallet

    • Several deprecated methods and classes have been removed.

June 2017 - version 11.0

Highlights from the Google Play services 11.0 release.

  • Google Play services updated to 11.0.4 This release fixes minor issues in Firebase Cloud Messaging and Firebase Performance Monitoring. To learn more, see the Firebase Android Release Notes.

  • Google Play services updated to 11.0.2 This release fixes minor issues in Firebase Crash Reporting and Firebase Performance Monitoring. To learn more, see the Firebase Android Release Notes.

  • Google Play services updated to 11.0.1 This release fixes an issue impacting apps that use rxjava.

  • Ads

    • Added the OnVideoMute(), OnVideoPause(), OnVideoPlay() and OnVideoStart() methods to the VideoController.VideoLifecycleCallbacks class.
    • Added the ability to enable immersive mode on full-screen ads by adding the setImmersiveMode() method to the PublisherInterstitialAd and RewardedVideoAd classes.
    • Added the OnPublisherAdViewLoadedListener interface and PublisherAdViewOptions and PublisherAdViewOptions.Builder classes for use with AdLoader for native-plus-banner requests.
    • Added the optional OnImmersiveModeUpdatedListener interface that mediation adapters can implement to be informed of immersive mode updates.
    • Added the getMediationAdapterClassName() method to the RewardedVideoAd class.
  • App Invites

    • The AppInvite class is now deprecated. Use FirebaseDynamicLinks#getInstance() instead as the main entry point for accessing Dynamic Link data and FirebaseAppInvite#getInvitation() instead to get App Invites data.
  • Awareness

    • Added constants to the TimeFence class to provide new context types to the Snapshot API and Fence API.
    • Added the ability to create time fences that are responsive to changes in a device's local time zone.
    • Added the ability to create time fences that are responsive to device location changes, including time fences specified based on the local time of sunrise or sunset.
  • Identity

    • Added the SmsRetriever API that helps you retrieve SMS messages directed to your app without asking users for permissions to read all SMS messages sent to their device. To learn more, see SMS Retriever API.
  • Cast

    • The Cast.CastApi, Cast.MessageReceivedCallback RemoteMediaPlayer.MediaChannelResult, RemoteMediaPlayer.OnMetadataUpdatedListener, RemoteMediaPlayer.OnPreloadStatusUpdatedListener, RemoteMediaPlayer.OnQueueStatusUpdatedListener, RemoteMediaPlayer.OnStatusUpdatedListener, interfaces are now deprecated. The RemoteMediaPlayer class is also deprecated. For instructions on updating your app, see Migrate Android Sender App from Cast SDK v2 to Cast SDK v3.
    • The bindTextViewToSmartSubtitle() method is now available in the UIMediaController class.
  • Common API

    • The getOpenSourceSoftwareLicenseInfo() method in the GoogleApiAvailability class is now deprecated.
    • Added the ApiException and ResolvableApiException classes. These classes provide exceptions for Task objects when a call to Google Play services fails.
    • Added the GoogleApi class. API clients based on this class manage the connection between your app and Google Play services.
    • Added the Response class. This class provides the results of calling an API method in Google Play services using a subclass of GoogleApi.
  • Firebase

    • The latest update to Firebase includes the addition of Phone Authentication, and several improvements across App Indexing and Dynamic Links. For more information, see Firebase Android SDK Release Notes.
  • Games

    • The getPlayerSearchIntent(), loadConnectedPlayers(), loadInvitablePlayers(), and loadMoreInvitablePlayers() methods in the Players class are now deprecated.
    • The loadInvitations() method in the Invitations class is now deprecated.
    • The getSelectOpponentsIntent() method in the RealTimeMultiplayer and TurnBasedMultiplayer classes is now deprecated.
    • The GameRequest , OnRequestRecevedListener, and Requests interfaces are now deprecated. Additionally, the GameRequestBufferand GameRequestEntity classes are now deprecated. For instructions on updating your app, see Play Games authentication adopting Google Sign-In API.
  • Instant Apps

  • Location

    • Added the FusedLocationProviderClient class. This class provides the main entry point for interacting with the fused location provider, which uses a variety of data sources in addition to GPS to determine a device's location as accurately and quickly as possible.
    • Added the GeofencingClient class. This class provides the main entry point for interacting with the geofencing APIs.
    • Added the getFusedLocationProvider() and getGeofencingClient() methods to the LocationServices class.
    • Added the LocationSettingsResponse class. This class is returned as a response when successfully checking location-related system settings using the checkLocationSettings() method.
    • Added the SettingsClient class. This class provides the main entry point for interacting with the location settings APIs that help to examine and configure a device's location-related system settings.
  • Nearby

    • The Nearby Connections API now offers the following capabilities:
      • Fully-offline peer-to-peer communication using Bluetooth, BLE and Wifi hotspots
      • Simultaneous advertising and discovery
      • Encryption (with optional authentication)
      • Support for byte data payloads up to 32kb
      • Support for file data payloads (limited to the space available on the device) and stream data payloads with no limits on payload size.
    • Added the AdvertistingOptions class. This class provides options for a call to the startAdvertising() method.
    • Added the ConnectionInfo class. This class provides information about a connection that is being initiated.
    • Added the ConnectionLifecycleCallback class. This class is a listener for lifecycle events associated with a connection to a remote endpoint.
    • Added the ConnectionResolution class. This class is the result received from calling the onConnectionInitiated() method.
    • Added the DiscoveredEndpoints class. This class provides information about an endpoint when it is discovered.
    • Added the DiscoveryOptions class. This class provides options for a call to the startDiscovery() method.
    • Added the EndpointDiscoveryCallback class. This class is a listener that is called during endpoint discovery.
    • Added the Payload, PayloadCallback, Payload.File and Payload.Stream classes. These classes represent data, a data payload listener, data in a file in local storage on a device, and a stream of data. Also added the related PayloadTransferUpdate.Status interface.
    • Added the Strategy class. This class defines the connectivity requirements for the device and the topology constraints of the connection.
    • The Connections.ConnectionRequestListener and Connections.ConnectionResponseCallback classes are now deprecated. Use the ConnectionLifecycleCallback class instead.
    • The Connections.EndpointDiscoveryListener class is now deprecated. Use the EndpointDiscoveryCallback class instead.
    • The Connections.MessageListener interface is now deprecated. Use the PayloadCallback class instead.
    • The ConnectionsStatusCodes class now includes several new status codes related to permissions.
  • Security

    • Added the SafetyNetClient class. This class provides the main entry point for SafetyNet, which offers the following capabilities:
      • Provides a device health check
      • Verifies users using the reCAPTCHA API
      • Helps users to avoid potentially harmful apps
      • Provides safe browsing within apps
      • Checks for known threats associated with specific URIs
    • Added the HarmfulAppsData class and the related SafetyNetApi.HarmfulAppsResponse class. These classes represent information pertaining to potentially harmful apps. The related SafetyNetApi.HarmfulAppsResult class is now deprecated in favor of these methods.
    • Added the getClient(Context) and getClient(Activity) methods to the SafetyNet class. These methods return a SafetyNetClient that is used to access all SafetyNet APIs. These methods replace the API and SafetyNetAPI fields of the SafetyNet class, which are now deprecated.
    • Added the SafetyNetApi.AttestationResponse class. This class provides test results from the Android Compatibility Test Suite. This class replaces the SafetyNetApi.AttestationResult and SafetyNet.SafeBrowsingResult classes, which are now deprecated.
    • Added the SafetyNetApi.RecaptchaTokenResponse class. This class contains a reCAPTCHA user response token. This class replaces the SafetyNetApi.RecaptchaTokenResult class, which is now deprecated.
    • Added the SafetyNetApi.SafeBrowsingResponse class. This class provides the Response provided when an app calls the lookupUri() method. This class replaces the SafetyNetApi.SafeBrowsingResult class, which is now deprecated.
    • Added the SafetyNetApi.VerifyAppsUserResponse class and added new constants to the VerifyAppsConstants class. These classes support the Verify Apps API.
  • Wallet

    • Added the InstrumentInfo.CardClass class. This class indicates whether a card is a credit, debit or prepaid card.

May 2017 - verson 10.2.6

  • App Indexing

    Since the Google Play services 10.0 SDK release, the App Indexing API has migrated to the new Firebase App indexing API. The original App Indexing API is now fully deprecated, and no longer available to use in apps built with the 10.2.6 SDK.

  • Firebase

    The latest update to Firebase includes the beta release of Performance Monitoring and several improvements across multiple features, including Cloud Messaging and Test Lab. For more information, see Firebase Android SDK Release Notes.

April 2017 - version 10.2.4

March 2017 - version 10.2.1

  • Android O Developer Preview 1

    This release includes updates to provide compatibility with Android O Developer Preview 1. The most significant updates are internal changes to the Google Cloud Messaging (GCM) and Firebase Cloud Messaging (FCM) libraries and a change in the guaranteed lifecycle of GCM and FCM callbacks to 10 seconds, after which Android O considers such callbacks eligible for termination. For more information on handling GCM and FCM messages on Android O, see The Firebase Blog.

February 2017 - version 10.2

Highlights from the Google Play services 10.2 release.

  • Android version 2.3.x (Gingerbread) Deprecation

    Google Play services 10.2.x is the first release that no longer includes full support for Android version 2.3.x (Gingerbread). Apps developed using SDK release 10.2.x and later require a minimum Android API level of 14 and cannot be installed on devices running an API level below 14. To learn more about your options, including building multiple APKs to extend your app's support for Android Gingerbread, see the Android Developers Blog.

  • Ads

    • Added support for video assets to Native Advanced content ads and Doubleclick for Publishers (DFP) custom-rendered native ads.
    • Added the destroy() method to the NativeCustomTemplateAd interface.
    • Added the getVideoController(), setVideoOptions, and getVideoOptions() methods to the PublisherAdView class.
    • Added the AdChoicesView class.
    • Added the getAdChoicesContent() and setAdChoicesContent() methods to the NativeAdMapper class.
    • Added the InitializableMediationRewardedVideoAdAdapter interface for rewarded video adapters capable of initializing multiple ad units at once.
  • Smart Lock for Passwords

    Improved the behavior of ID tokens with Smart Lock. Apps must now explicitly request a token by calling setIdTokenRequested(true). Also, apps can specify the audience and nonce values for a token using the setServerClientId() and setIdTokenNonce() methods. To learn more, see the following API reference updates:

    • Added the getAccountTypesSet(), getIdTokenNonce(), getServerClientId(), and isIdTokenRequested() methods to the CredentialRequest class.
    • Added the setIdTokenRequested() and setServerClientId() methods to the CredentialRequest.Builder class.
    • Added the getIdTokenNonce(), getServerClientId() and isIdTokenRequested() methods to the HintRequest class.
    • Added the setIdTokenNonce(), setIdTokenRequested() and setServerClientId() methods to the HintRequest.Builder class.
  • Awareness

  • Google Sign-in

    Added the ability for game developers to use the Google Sign-in API to simplify server-side authentication. To learn more, see the GoogleSignInOptionsExtension interface, the GoogleSignInOptions class, and the GoogleSignInOptions.Builder.addExtension() method. To learn more about integrating server-side authentication in your games, see Enabling Server-Side Access to Google Play Games Services.

  • Google Fit

    Added new health data types that let you write a wider variety of health data to the Google Fit platform, including blood pressure, blood glucose, oxygen saturation, body position, body temperature, and reproductive health data. To learn more, see the HealthDataTypes and HealthDataFields classes.

  • Maps

    This release introduces custom styling for polylines and for the outlines of polygons and circles.

    • You can now store arbitrary data objects with your geometry objects. For example, call setTag() to add a data object to a polyline.
    • For a full list of features, bug fixes, and other notes, see the release notes for the Maps Android API.
  • Nearby

    Added the AudioBytes class to the Nearby messages.audio API to allow devices to send or receive data using near-ultrasound audio.

  • Firebase

    The latest update to Firebase includes several improvements across multiple features, including Analytics, Authentication, Realtime Database, Storage, Test Lab for Android, Crash Reporting, and Dynamic Links. For more information, see Firebase Android SDK Release Notes.

November 2016 - version 10.0

Highlights from the Google Play services 10.0 release.

  • Google Play services updated to 10.0.1

    This release fixes a missing minSdkVersion value in play-services-location.aar that caused unintended WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE, and READ_PHONE_STATE permissions to be merged into app manifests.

  • Android version 2.3.x (Gingerbread) Deprecation

    Google Play services 10.0.x is the final release that includes full support for Android version 2.3.x (Gingerbread). Apps developed using future SDK releases after 10.0.x will not be able to connect to Google Play services on Android Gingerbread devices. To learn more about your options, including building multiple APKs to extend your app's support for Android Gingerbread, see the Android Developers Blog.

  • Cast

    Cast API November release provides improved functionality to app developers in the following areas:

  • Location

    • Improvements to Bluetooth Low Energy (BLE) scans.
  • Nearby

  • Firebase

    • The latest update to Firebase includes several improvements and bug fixes across multiple features, including the availability of a new Firebase App Indexing API. For more information, see Firebase Android SDK Release Notes.

October 2016 - version 9.8

Highlights from the Google Play services 9.8 release.

  • Ads

    • Added the collection of Active View traffic measurement data for DoubleClick Campaign Manager advertisers whose ads render in apps that use the Google Mobile Ads SDK.
  • Cast

    Cast API v3.3 provides improved functionality to app developers in the following areas:

    • When playing ads, the appearance of the seek bar has been improved, and the background poster image is blurred.
    • Added the ability to customize the style of mini controllers.
    • Added the ImageHints class, which provides hints to the ImagePicker object about the type and size of image to select for display in the UI.
    • To learn more about this version, see Cast SDK v3.3.
  • Fit

    • Fit now includes a Goals API that allows your app to read fitness goals created by users of the Google Fit Android app.
  • Google Sign-in

    • Added the ability for users to fill in phone numbers associated with their account with a single tap in apps that use the Credentials API.
  • Nearby

  • Firebase

September 2016 - version 9.6

Highlights from the Google Play services 9.6 release.

  • Google Play services updated to 9.6.1 This release fixes a missing minSdkVersion value in play-services-location.aar that caused unintended WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE, and READ_PHONE_STATE permissions to be merged into app manifests.

  • Ads

    • Added a publisher diagnostics API method, openDebugMenu, to the MobileAds class to provide mobile web and mobile app ad publishers with the same troubleshooting and preview functionality that is available for desktop ads.
  • Cast

    Cast API v3.2 provides improved functionality to app developers in the following areas:

    • Ads Mode: Put controllers and notification control into a mode where controls are disabled while ads are served.
    • Live Mode: Live video and audio streams now have a play/stop button in place of the play/pause button.
    • To learn more about this version, see Cast SDK v3.2.
  • Maps

    • Introducing custom map styling: You can now style your map to change the appearance of (or even hide) features such as roads, parks, businesses, and more.
    • Business points of interest (POIs) now appear by default on the map. Business POIs represent businesses such as shops, restaurants, and hotels. You can hide these using custom map styling.
    • For details and important notes, see the Maps Android API release notes.
  • Places

    • Added the setCountry method to restrict the scope of a Places autocomplete request to a single country.
  • Firebase

August 2016 - version 9.4

Highlights from the Google Play services 9.4 release.

  • Google Sign-In

    • GoogleSignInAccount now includes the getFamilyName() and getGivenName() methods to allow access to the family name and given name of signed-in users.
  • Google Plus

    Plus.API (including Plus.PeopleApi and Plus.AccountApi) has been deprecated. All Google+ UI widgets such as sharing and "+1" buttons continue to be supported.

    • If you want to integrate with Google Sign-In, switch to GoogleSignInApi.
    • If your app needs social information and more extensive profile data, check out the Android Contacts Provider or the cross-platform People API. To enhance the distribution of your app through the social graphs of your app's userbase, use Firebase Invites.

    See the Plus.API deprecation notes for details.

  • Cast

    The Cast API v3 now includes improved functionality for app developers in the following areas:

  • Places

    • The Places API now includes a redesigned Place Picker UI that implements the principles of material design.
  • Maps

    • Added a set of new camera change listeners for camera motion start, ongoing, and end events.
    • Added the ability to store and retrieve arbitrary data objects that are associated with markers.
    • Added the ability to set preferred minimum and maximum zoom levels.
    • Added the ability to constrain the bounds within which users can scroll and pan.
    • To learn more, see the latest Google Maps Android APIs Release Notes.
  • Security

  • Firebase

    • The latest update to Firebase includes several improvements and bug fixes across multiple features. For more information, see Firebase Release Notes.

June 2016 - version 9.2

Highlights from the Google Play services 9.2 release.

  • Google Play services updated to 9.2.1 This release fixes an issue with the proguard.txt file included with the 9.2.0 release that causes the following errors to occur:

    • In Android projects that use the Gradle resource shrinker, the following error occurs:

      no viable alternative at input 'com.google.android.gms.common.util.DynamiteApi'

    • In Android projects that use the Jack toolchain, errors similar to the following occur:

      Error while parsing '<path>/exploded-aar/com.google.android.gms/play-services-auth-base/9.2.0/proguard.txt':37 [<stack trace>] NoViableAltException(5@[])

  • Ads

    • Added the setAdChoicesPlacement method to the NativeAdOptions.Builder class. App publishers can use this method to specify the location of their AdChoices icon in native ads.
    • Improved video ad playback with several bug fixes.
  • Awareness

    The Awareness API unifies seven location and context signals in a single API, enabling you to create apps with powerful context-based features that have a minimal impact on system resources. It includes two sets of APIs:

    • The Snapshot API allows apps to get the current value of any of the seven signals.
    • The Fence API allows apps to react to changes in the user’s context.
  • Cast

    Cast API v3 provides improved functionality to app developers in the following areas:

    • Session state management
    • Connect, disconnect, and reconnect logic
    • UX implementation and UI
    • Support for a wider range of device types
    • To learn more about this version, see the Google Cast SDK v3.
  • Firebase

    • The latest update to Firebase includes several improvements and bug fixes across multiple features. For more information, see Firebase Release Notes.
  • Google Fit

    • Improvements to step counts on Android Wear to make step count measurement both consistent across watchfaces and apps, and persistent with HistoryApi#readDailyTotal
    • Listen for data updates with HistoryApi#registerDataUpdateListener() to allow your app to update its internal data cache when stored data is updated by another app.
    • Added a new hydration data type used to measure water consumption.
  • Location

    • Bug fixes and improvements in several areas, including battery management and activity recognition.
  • Maps

    • The new MarkerOptions.zIndex() method sets the stack order of a marker in relation to other markers on the map.
    • You can set a transparency factor on tile overlays, so users can see the base map below the overlaid tiles.
    • It's now easier to make circles clickable, and then use an OnCircleClickListener to listen to click events.
    • For details and important notes, see the Maps Android API release notes.
  • Mobile Vision

    • Resolved issues with a service required by Mobile Vision barcode detection and face detection. All users can once again use barcode and face detection functionality. For more information, see Mobile Vision Release Notes.
    • Added Text API: optical character recognition for Latin character text (English, Spanish, German, French, etc.) in photos. Text API returns the organizational structure of the text (paragraphs, lines, words) as well as the text itself.
  • Nearby

    • Added Nearby notifications, to let users know about apps and websites associated with nearby beacons and smart devices.
    • Nearby.Messages can scan for Eddystone beacons and iBeacons in the background, waking client applications up when beacons matching their filter are found. To learn more, see Nearby.Messages.
    • This release removes the requirement that clients use the Proximity Beacon API to manage their beacons. Nearby will now return parsed BLE advertisements directly, allowing clients to use their own solution to interpret those advertisements.
    • Distance estimates and RSSI information are now returned to foreground beacon clients.

May 2016 - version 9.0

Highlights from the Google Play services 9.0 release.

  • Google Play services updated to 9.0.2 The Google Play services version 9.0.2 release is now available. This release fixes a known issue with Firebase Authentication where the FirebaseAuthApi is not available on some devices. A FirebaseApiNotAvailableException error occurs when those devices attempt to use Authentication APIs.

  • Google Play services updated to 9.0.1

    The Google Play services version 9.0.1 release is now available. This release fixes the following issues with the version 9.0.0 release:

  • Firebase

    Firebase gives mobile developers the tools and infrastructure they need to develop their app, grow their user base, and earn revenues from in-app ads. In this release, Firebase APIs are now available in Google Play services, and include new products: Firebase Analytics, Firebase Storage, Firebase Remote Config, Firebase Crash Reporting, Firebase Dynamic Links, and Firebase Notifications.

    For a list of the libraries available for the different Firebase features, see Firebase libraries. The following features are now part of Firebase in the Google Play Services 9.0 SDK:

    • App Invites (now Firebase Invites) is still available at com.google.android.gms.appinvite, but going forward you should use com.google.firebase:firebase-invites.

    • Firebase Cloud Messaging builds on and improves the Google Cloud Messaging API. You can keep using Google Cloud Messaging with com.google.android.gms.gcm, but we recommend upgrading to com.google.firebase:firebase-messaging.

    To learn more about Firebase, see https://firebase.google.com/.

  • Ads

    • The Rewarded Video Publisher API now includes support for custom events.
    • Native express video now includes APIs that provide control of how videos are displayed, including specifying the initial mute state and callbacks when the video is complete.
    • Updated Custom Search Ads for mobile apps that let app developers monetize in-app search events with highly relevant ads based on their user's queries. With this update, the in-app monetization solution is equivalent to what is available on the desktop or the mobile web. App developers now have access to the full set of extensions, layouts, attribution options, callbacks and custom ad icons.
    • The MobileAds API now includes support for setting the preferred volume of video ads using setAppVolume(), and also muting video ads using setAppMuted().
    • The MobileAds initialize(android.content.Context, java.lang.String) method is no longer deprecated. Instead, the initialize(android.content.Context) method is now deprecated.
    • The MediationNativeListener interface now includes a method, onAdImpression(), which mobile ad networks can call when they record an impression.
  • Nearby

    • Simplified the Nearby consent UI and permission model.
    • Any app with fine-grain location permission can scan for BLE Beacons without additional permission.
    • Opt-in dialogs are shown to users when the app calls the GoogleAPIClient connect() method.
  • Games

    • Client SDK updates to improve the Player Stat API with two new predictions: predicting player spend in the next 28 days, and predicting the probability of a player being a 95th percentile spender.
    • Client SDK updates to make the Video Recording API widely available.
  • Google Cloud Messaging

    • Google Cloud Messaging (GCM) is integrated with Firebase. Existing users of GCM can continue to use GCM without interruption, though we strongly recommend upgrading to the new and simplified Firebase Cloud Messaging (FCM) APIs, so that users can benefit from future releases of new features and enhancements. To learn more, see Migrate a GCM Client App for Android to Firebase Cloud Messaging.
  • Mobile Vision

    • A service required by Mobile Vision is now disabled due to an issue with that service. This will prevent users who have not already used face or barcode detection from using those features. We do not recommend adding new Mobile Vision features to your app until this issue is fixed.
    • For apps that already use Mobile Vision features, check FaceDetector.isOperational() or BarcodeDetector.isOperational() to confirm detector readiness before using the face or barcode detector.
  • Auth

    GoogleAuthUtil has moved to the -auth API split in the Google Play services SDK. If your app uses GoogleAuthUtil.getToken() you may see an error similar to the following:

    Error:(xx, xx) error: package com.google.android.gms.auth does not exist

    Error:(xx, xx) error: cannot find symbol variable GoogleAuthUtil

    If you need to access the REST API on Android, include the -auth split in your build.gradle file:

    compile 'com.google.android.gms:play-services-auth:9.0.1'

    Otherwise, we recommend migrating your app to the Google Sign-In API to incorporate the latest improvements in security and user experience into your app. To learn more, see our guide to Google Sign In best practices.

Known Issues with version 9.0.0

If your app uses Admob and also uses ProGuard post-processing, your app won't be able to serve ads to devices without the Google Play services APK unless you adjust your ProGuard configuration or update your app to use the Google Play services version 9.0.1 SDK. To ensure that ads are served to these devices after your app is updated to use the Google Play Services 9.0.0 SDK, add the following keep option to your ProGuard configuration file:

-keep public @com.google.android.gms.common.util.DynamiteApi class * { *; }

December 2015 - version 8.4

Highlights from the Google Play services 8.4 release.

  • Google Maps

    • This release introduces a number of new event listeners:
    • You can enable or disable the clickability of polylines, polygons and ground overlays by calling setClickable(boolean) on the relevant object.
    • Several bug fixes. Details available in the Google Maps release notes.
  • Google Places

  • Google Sign In

    • When users revoke an app's access with Google Settings > Connected Apps, Google Play services will start the Revocation service to clean up cached sign-in state.
    • You can configure the GoogleSignInOptions object to prompt users to sign in with only accounts in your Google Apps domain by using the setHostedDomain builder method.
    • The onUploadServerAuthCode callback and related functions have been removed. To acquire an access token for your backend, use the requestServerAuthCode and getServerAuthCode methods. See Enabling Server-Side Access for details.
  • Google Fit History

    • The Google Fit History API now includes a new method, updateData, that makes it easier to update data stored in Google Fit. With updateData, you no longer need to delete existing data points that overlap with a new data point that you want to add to Google Fit. Conflicts are automatically resolved by deleting existing data points that overlap with the new data point.
  • Nearby Messaging

  • App Invites

    • You can now include additional data from your app when sending email based invites, including: a custom image, custom call-to-action text for the invitation's install button, and custom HTML for the invitation email.
  • Vision API

  • Location Services

    • Improved accuracy when using WiFi or cell towers to determine location.

Known Issues

  • Emulators for the latest version of Android Wear are currently unavailable.

November 2015 - version 8.3

Highlights from the Google Play services 8.3 release.

  • Google Sign In - The new GoogleSignIn API makes it significantly easier to integrate basic Google account functionality into your app. Some of the changes include:
    • You can now change the GoogleApiClient sign-in state without having to re-establish a connection. See SIGN_IN_MODE_OPTIONAL and SIGN_IN_MODE_REQUIRED for more details.
    • Simplifies integration when authenticating with a server.
    • No longer requires system permission to get a signed-in account.
    • A newly redesigned Sign In button.
  • Location Services
    • Battery improvements for Fused Location Provider.
    • The new flushLocations() method allows you to return any batched locations immediately, instead of waiting for batching to occur.
  • Application Measurement - This release adds a feature for collecting anonymous statistics on in-app purchase events.
  • App Invites - The new AppInvite.AppInviteApi.getInvitation() method will set up a ResultCallback that you can use to launch your deep link activity.
  • Miscellaneous Improvements - Various improvements and changes have been made to Google Play services, including:
    • The new AdRequest.Builder setIsDesignedForFamilies method allows apps that have opted into the Designed for Families program to specify whether a given ad request should return Designed for Families-compliant ads.
    • ResolvingResultCallbacks can be used to automatically start resolutions returned by API calls when user interaction is required
    • The CastRemoteDisplayLocalService exposes a new callback, onServiceCreated that is called when the local service has been created.
    • The GoogleApiClient.dumpAll() method can be used to help debug lifecycle issues.
    • You can now programmatically setAutoFocusEnabled() on CameraSource.
    • The DataApi now allows you to specify the urgency of items to be synced to a wearable device with the PutDataRequest.isUrgent() method.
    • The Credentials API has moved to the -auth library from -base. You may need to add compile 'com.google.android.gms:play-services-auth:8.3.0' to avoid compile errors.

Known Issues

  • If you receive the error 'Found com.google.android.gms:play-services-auth:8.3.0, but version 8.1.0 is needed' when using the google-services plugin, please upgrade your google-services plugin to 1.5.0-beta2 or later.

September 2015 - version 8.1

Highlights from the Google Play services 8.1 release.

  • Adds support for the Marshmallow Permissions model.
  • Play Games Player Stats API - A new API that lets you tailor player experiences to specific segments of players across the game lifecycle. Player segments are based on player progression, spend, and engagement.
  • Google Maps Android API - New support for ambient mode for wearable apps. Ambient mode is for always on apps, and is activated when the user is no longer actively using the app.
  • App Invites - You can now customize the email invitation sent from your app.
  • Nearby Messages API - Your app will receive callbacks when an active Nearby publish or subscribe expires.
  • Google Places API - Three new methods have been added 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. These methods replace the getDescription() and getMatchedSubstrings(), which are now deprecated. Refer to the Google Places API for Android release notes for more details.
  • Application Measurement - This release adds the measurement package, which contains features for collecting anonymous statistics on application events such as when a user first opens your application. While this data is not collected unless correctly configured, you may permanently opt-out of reporting these statistics by adding the following resource to your application:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
       <integer name="google_app_measurement_enable">0</integer>
    </resources>
    
  • GoogleApiClient, PendingResult, and OptionalPendingResult are now abstract classes instead of interfaces. The signature of PendingResult.setResultCallback has changed from setResultCallback(ResultCallback<R> callback) to setResultCallback(ResultCallback<? super R> callback). An equivalent change has been made to setResultCallback that accepts a timeout parameter. If you were directly implementing these interfaces before, you’ll need to extend the abstract classes instead. If you used these classes for testing purposes, we recommend using the provided utility class PendingResults which can provide a Result that is either canceled or immediately available.

August 2015 - version 7.8

For a summary of the feature highlights in Google Play services 7.8, see the announcement blog post.

  • Mobile Vision API - This release introduces a new, real-time, on-device API for understanding objects in photos and video. The Mobile Vision framework includes a face detector, barcode scanner, and functions for tracking the position of these objects in video.
  • Nearby Messages API - The new Nearby Messages API provides a cross-platform API for nearby devices and beacons to discover each other and communicate without having to be on the same Wi-Fi network.
  • Smart Lock for Android This release enhances Smart Lock for Android with the ability to detect the unique gait of your walk. If a pickpocket walks away with your phone, the device will lock up in most cases. Enable on-body detection to give it a try.
  • Place Photos Added support for retrieving and displaying Place photos with the Places API.

May 2015 - version 7.5

For a summary of the feature highlights in Google Play services 7.5, see the announcement blog post.

  • Smart Lock for Passwords - This release introduces the gms.auth.api.credentials API to save and retrieve credentials, and automatically sign users in across devices (and websites in Chrome). To save credentials, call the Auth.CredentialsApi.save() method. Conversely, to retrieve credentials saved on Android devices and Chrome, call the Auth.CredentialsApi.request() method.

  • Google Cloud Messaging - This release offers you the ability to send messages and notifications to end users more efficiently, optimize task scheduling to save on battery usage, and simplify how your app receives messages. Topic messaging lets you build personalized notifications to reach a targeted audience. Use the new GcmListenerService to implement a standardized way to receive GCM messages, and display notifications upon request by the GCM server. The new GcmNetworkManager class lets you schedule one-off and periodic tasks in a battery-efficient way, and specify network and device charging constraints to further optimize battery use.

  • Ads - This release adds publisher-rendered native ads to AdMob, DFP, and AdX. With native ads, publishers have access to the ad's individual assets, and have the power to decide how to present the ad in a way that best fits their app content. AdMob, DFP, and AdX all support two system-defined formats, app install and content ads. DFP publishers also have access to custom native ad formats to build a custom native solution using their own reservation inventory.

  • Cast - The new Game Manager APIs for Google Cast introduces support for games with a streamlined communication model, multiple players per sender device, and custom messaging between senders and receiver that lets you enhance any game with the Cast experience. The new Remote Display connection model lets native apps, especially games, Cast a second display directly to the TV; now any game can be bigger with Cast. The new Autoplay and Queueing APIs give all connected apps a synchronized, editable media queue, and support for pre-loading adaptive streams.

  • Instance ID - Instance ID is a unique identifier per instance of an app that enables it to generate security tokens using the Instance ID cloud service.

  • Maps - This release makes the Google Maps Android API available on Android Wear, so you can now create map-based apps that run directly on wearable devices.

  • Fit - The Fit API now provides distance traveled and calories expended data that you can subscribe to. This release also introduces a new a data type for exercise activities (TYPE_WORKOUT_EXERCISE).

  • Drive - This release allows you to permanently delete files and folders even when your application is offline, by calling the delete() method.

  • App Invites - Use the new appinvite API to grow your app via word-of-mouth. Enable your users to share your app with their contacts and friends. Let Google power your referral and onboarding flows, so you can focus on building a great app.