| page.title=Google Play Services |
| header.hide=1 |
| page.metaDescription=With Google Play services, your app can take advantage of the latest Google-powered features such as Maps, Analytics, and more: platform updates are distributed automatically as an APK through the Google Play Store. |
| |
| @jd:body |
| |
| <div class="landing-banner"> |
| |
| <div class="col-6"> |
| <img src="/images/google/gps.png" alt=""> |
| </div> |
| <div class="col-6"> |
| |
| <h1 itemprop="name" style="margin-bottom:0;">Google Play Services</h1> |
| <p itemprop="description">Give your apps more features to attract users |
| on a wider range of devices. |
| With Google Play services, your app can take advantage |
| of the latest, Google-powered features such as Maps, Google+, and more, |
| with automatic platform updates distributed as an APK through |
| the Google Play store. This makes it faster for your users to receive updates |
| and easier for you to integrate the newest that Google has to offer. |
| </p> |
| |
| </div> |
| </div> |
| |
| <div class="layout-content-row"> |
| <div class="layout-content-col span-4"> |
| |
| <h4>Google Technology</h4> |
| <p>Google Play services provides you with easy access to Google services and is |
| tightly integrated with the Android OS. Easy-to-use client libraries are |
| provided for each service that let you implement the functionality you want |
| easier and faster.</p> |
| |
| </div> |
| <div class="layout-content-col span-4"> |
| |
| <h4>Standard Authorization</h4> |
| <p>All products in Google Play services share a common authorization API |
| that leverages the existing Google accounts on the device. You and your |
| users have a consistent and safe way to grant and receive OAuth2 access tokens |
| to Google services.</p> |
| |
| </div> |
| <div class="layout-content-col span-4"> |
| |
| <h4>Automatic Updates</h4> |
| <p>Devices running Android 2.3 or higher that have the Google Play Store |
| app will automatically receive updates to Google Play services. Enhance |
| your app with the most recent version of Google Play services without worrying |
| about your users' Android version.</p> |
| |
| </div> |
| <p>To start integrating Google Play services into your app, |
| follow the <a href="/google/play-services/setup.html">Setup</a> guide.</p> |
| </div> |
| |
| <h2 style="margin-top:0" id="newfeatures">New Features</h2> |
| |
| <div class="toggle-content opened"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-opened.png" |
| class="toggle-content-img" |
| alt=""/>Google Play services, Version 7.3</a> <em>(April 2015)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 7.3</dt> |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 7.3, see the |
| announcement |
| <a href="http://android-developers.blogspot.com/2015/04/theres-lot-to-explore-with-google-play.html" |
| class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Maps</strong> - This release makes the Google Maps Android API v2 available on |
| <a href="https://developers.google.com/maps/documentation/android/wear" class="external-link"> |
| Android Wear</a>, so you can now create map-based apps that run directly on wearable devices. In |
| addition, the Maps API now offers a new |
| <a href="{@docRoot}reference/com/google/android/gms/maps/StreetViewPanorama.OnStreetViewPanoramaLongClickListener.html"> |
| {@code OnStreetViewPanoramaLongClickListener}</a> interface, similar to the existing |
| <a href="{@docRoot}reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html"> |
| {@code OnMapLongClickListener}</a> interface. These listeners are particularly helpful |
| for wearable devices, so you can let users exit from the app by long-clicking on a map or panorama. |
| On a wearable device, the swipe gesture is used to pan the map instead of exiting the app. |
| <ul> |
| <li><a href="https://developers.google.com/maps/documentation/android/wear" |
| class="external-link">Google Maps on Android Wear developer guide</a> |
| </li> |
| <li><a href="https://github.com/googlemaps/android-samples/tree/master/BasicWearMap" |
| class="external-link">Google Maps on Android Wear sample</a> |
| </li> |
| <li><a href="https://developers.google.com/maps/documentation/android/releases" |
| class="external-link">Release notes</a> |
| </li> |
| </ul> |
| </li> |
| <li> |
| <strong>Wear</strong> - In addition to Maps support, this release provides you with the ability |
| to advertise and discover the capabilities of devices that are connected in a Wear network, through |
| the new <a href="{@docRoot}reference/com/google/android/gms/wearable/CapabilityApi.html"> |
| {@code CapabilityApi}</a> class. The new |
| <a href="{@docRoot}reference/com/google/android/gms/wearable/ChannelApi.html">{@code ChannelApi}</a> |
| class lets you send and receive data bi-directionally from your wearable app on a device to another |
| wearable node. Use the Channel API to send large files for offline access or to stream real-time |
| binary data. |
| <ul> |
| <li><a href="{@docRoot}training/wearables/data-layer/messages.html"> |
| Sending and Receiving Messages</a></li> |
| </ul> |
| </li> |
| <li> |
| <strong>Fit</strong> - This release provides a new |
| <a href="{@docRoot}reference/com/google/android/gms/fitness/HistoryApi.html#readDailyTotal(com.google.android.gms.common.api.GoogleApiClient,%20com.google.android.gms.fitness.data.DataType)"> |
| {@code HistoryApi.readDailyTotal()}</a> method for you to get aggregated daily data for a given |
| data type. |
| This release also introduces data types for recording granular nutrition information including |
| protein, fat, cholesterol, and more. |
| <ul> |
| <li><a href="https://developers.google.com/fit/android/history#read_daily_total_data" |
| class="external-link">Read daily total API developer guide</a></li> |
| <li><a href="https://developers.google.com/fit/android/data-types#data_types_for_instantaneous_readings" |
| class="external-link">Nutrition data type developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/fitness/data/Field.html"> |
| Nutrition data types API reference</a></li> |
| <li><a href="https://developers.google.com/fit/android/releases#april_2015" |
| class="external-link">Release notes</a></li> |
| </ul> |
| </li> |
| <li> |
| <strong>Location</strong> - This release adds a maximum wait time for location updates. By |
| calling the new |
| <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setMaxWaitTime(long)"> |
| {@code setMaxWaitTime()}</a> method and passing in a value at least double the value requested with |
| the |
| <a href="{@docRoot}reference/com/google/android/gms/location/LocationRequest.html#setInterval(long)"> |
| {@code setInterval()}</a> method, the system can batch location updates together, reducing battery |
| usage and, on some devices, improving location accuracy. In addition, you can use the new |
| <a href="{@docRoot}reference/com/google/android/gms/location/LocationCallback.html"> |
| {@code LocationCallback}</a> class to be notified when the device location has changed or can no |
| longer be determined. |
| </li> |
| <li> |
| <strong>Places</strong> - This release adds a |
| <a href="{@docRoot}reference/com/google/android/gms/location/places/PlaceBuffer.html#getAttributions()"> |
| {@code PlaceBuffer.getAttributions()}</a> method for displaying third-party attributions.</a> |
| <ul> |
| <li><a href="https://developers.google.com/places/android/attributions" |
| class="external-link">Displaying attributions developer guide</a></li> |
| <li><a href="https://developers.google.com/places/android/releases">Release notes</a></li> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" |
| class="toggle-content-img" |
| alt=""/>Google Play services, Version 7.0</a> <em>(March 2015)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 7.0</dt> |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 7.0, see the |
| announcement |
| <a href="http://android-developers.blogspot.com/2015/03/google-play-services-70-places-everyone.html" |
| class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Places</strong> - Using the Google Places API for Android, you can build |
| location-aware apps that respond contextually to the local businesses and other places near |
| the device. Use the built-in place picker UI widget and API methods to find the device’s |
| current place, autocomplete users’ queries, and more. |
| <ul> |
| <li><a href="https://developers.google.com/places/documentation/android/" |
| class="external-link">Places API developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/location/places/package-summary.html"> |
| Places API reference</a></li> |
| </ul> |
| </li> |
| <li><strong>Location settings</strong> - While the |
| <a href="{@docRoot}reference/com/google/android/gms/location/FusedLocationProviderApi.html"> |
| {@code FusedLocationProviderApi}</a> |
| combines multiple sensors to give you the optimal location, the accuracy of the location your |
| app receives still depends greatly on the settings enabled on the device (GPS, wifi, airplane |
| mode, and others). Using the new |
| <a href="{@docRoot}reference/com/google/android/gms/location/SettingsApi.html"> |
| {@code SettingsApi}</a> |
| class, you can bring up a Location Settings dialog which displays a one-touch control for users |
| to change their settings without leaving your app. |
| </li> |
| <li><strong>Fit</strong> - The Google Fit API is now more efficient with modular calls to specific |
| functionality within the API. You can now also access distance and granular sleep data. |
| <ul> |
| <li><a href="https://developers.google.com/fit/android/get-started.html#step_5_connect_to_the_fitness_service" |
| class="external-link">Fit API developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/fitness/package-summary.html"> |
| Fit API reference</a></li> |
| </ul> |
| </li> |
| <li><strong>Google Mobile Ads</strong> - This release introduces the |
| <a href="{@docRoot}reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addCustomTargeting(java.lang.String,%20java.lang.String)"> |
| {@code addCustomTargeting()}</a> |
| and <a href="{@docRoot}reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addCategoryExclusion(java.lang.String)"> |
| {@code addCategoryExclusion()}</a> |
| methods to the <a href="{@docRoot}reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html"> |
| {@code PublisherAdRequest.Builder} </a> |
| class, enabling DoubleClick for Publishers (DFP) developers to |
| <a href="https://support.google.com/dfp_sb/answer/112648" class="external-link">target custom |
| criteria</a> |
| and <a href="https://support.google.com/dfp_premium/answer/2627086" class="external-link">use |
| ad exclusions to block ads</a>. |
| <ul> |
| <li><a href="https://developers.google.com/mobile-ads-sdk/docs/dfp/android/banner" |
| class="external-link">DFP targeting developer guide</a></li> |
| </ul> |
| </li> |
| <li><strong>Play Game services</strong> - The Nearby Connections API allows users to connect to |
| each other and exchange messages over a local network. This API supports local multiplayer |
| and second screen gaming. |
| <ul> |
| <li><a href="https://developers.google.com/games/services/android/nearby.html" |
| class="external-link">Nearby Connections developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/nearby/connection/package-summary.html"> |
| Nearby Connection API reference</a></li> |
| </ul> |
| </li> |
| <li><strong>Google API client</strong> - This release introduces the |
| <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#requestServerAuthCode(java.lang.String,%20com.google.android.gms.common.api.GoogleApiClient.ServerAuthCodeCallbacks)">{@code GoogleApiClient.Builder.requestServerAuthCode()}</a> method. This API makes it significantly easier |
| to enable servers to be able to make Google API calls on behalf of users. This method reduces |
| the lines of boilerplate code that you previously had to implement. |
| <ul> |
| <li><a href="https://developers.google.com/identity/sign-in/android/sign-in.html#enable_server-side_api_access_for_your_app" |
| class="external-link">Server-side API access developer guide</a></li> |
| </ul> |
| </li> |
| <li> |
| <strong>Drive</strong> - This release adds |
| <a href="{@docRoot}reference/com/google/android/gms/drive/DriveResource.html#trash(com.google.android.gms.common.api.GoogleApiClient))"> |
| {@code trash()}</a> and |
| <a href="{@docRoot}reference/com/google/android/gms/drive/DriveResource.html#untrash(com.google.android.gms.common.api.GoogleApiClient)"> |
| {@code untrash()}</a> methods to the |
| <a href="{@docRoot}reference/com/google/android/gms/drive/DriveResource.html"> |
| {@code DriveResource}</a> |
| class. These methods enable you to move user-visible files and folders to the trash or |
| restore them from the trash. Trashing a folder recursively trashes its children. The |
| <a href="{@docRoot}reference/com/google/android/gms/drive/Metadata.html#isExplicitlyTrashed()"> |
| {@code isExplicitlyTrashed()}</a> method indicates whether a resource was trashed directly, |
| or as the result of a trashed parent. |
| <ul> |
| <li><a href="https://developers.google.com/drive/android/trash.html" |
| class="external-link">Trashing and untrashing developer guide</a></li> |
| </ul> |
| </li> |
| <li><strong>SafetyNet API</strong> - The API lets you check if your app is running on a device |
| that matches a device model that has passed Android compatibility testing. The API evaluates |
| both software and hardware characteristics of a device to determine whether it matches a |
| known-good configuration that has been previously determined to be compatible. You can use the |
| SafetyNet API in conjunction with other tools to determine whether the device appears capable |
| of handling specific features in your app. |
| <ul> |
| <li><a href="{@docRoot}reference/com/google/android/gms/safetynet/package-summary.html"> |
| SafetyNet API reference</a></li> |
| <li><a href="{@docRoot}google/play/safetynet/index.html"> |
| SafetyNet developer guide</a></li> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" |
| alt=""/>Google Play services, Version 6.5</a> <em>(December 2014)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 6.5</dt> |
| |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 6.5, see the |
| announcement |
| <a href="http://android-developers.blogspot.com/2014/11/google-play-services-65.html" |
| class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Maps</strong> - The new <em>lite mode</em> lets your app display a |
| bitmap image of a map, while still being able to control markers and shapes |
| client-side. This is particularly useful when you're showing a number of small |
| maps. You can enable or disable a new map toolbar that lets users open |
| <a href="https://www.google.com/maps" class="external-link">Google Maps</a> and |
| get directions and turn by turn navigation to the selected marker. The |
| {@code getMap()} method in |
| <a href="{@docRoot}reference/com/google/android/gms/maps/MapView.html">{@code MapView}</a> |
| and |
| <a href="{@docRoot}reference/com/google/android/gms/maps/MapFragment.html">{@code MapFragment}</a> |
| is now deprecated in favor of the new {@code getMapAsync()} method. Similarly, |
| the new {@code getStreetViewPanoramaAsync()} method in |
| <a href="{@docRoot}reference/com/google/android/gms/maps/StreetViewPanoramaView.html">{@code StreetViewPanoramaView}</a> and |
| <a href="{@docRoot}reference/com/google/android/gms/maps/StreetViewPanoramaFragment.html">{@code StreetViewPanoramaFragment}</a> |
| enables you to get a ready-to-use Street View panorama. |
| <ul> |
| <li><a href="https://developers.google.com/maps/documentation/android/lite.html" |
| class="external-link">Lite mode maps developer guide</a></li> |
| <li><a href="https://developers.google.com/maps/documentation/android/interactivity.html#toolbar" |
| class="external-link">Map toolbar developer guide</a></li> |
| </ul> |
| </li> |
| <li><strong>Drive</strong> - This release introduces support for inserting or |
| updating custom properties. You can now create empty files (for example, a user |
| preference file that is empty until the user defines some application property). |
| <ul> |
| <li><a href="{@docRoot}reference/com/google/android/gms/drive/metadata/CustomPropertyKey.html">{@code CustomPropertyKey} API reference</a></li> |
| <li><a href="https://developers.google.com/drive/android/create-file.html" |
| class="external-link">Creating empty files developer guide</a></li> |
| </ul> |
| </li> |
| <li><strong>Fit</strong> - The Fit API now supports activity segments |
| (<a href="{@docRoot}reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">{@code DataType.TYPE_ACTIVITY_SEGMENT}</a>), which |
| enable you to represent pauses within a workout session and to annotate time |
| intervals inside a session with different fitness activities. |
| </li> |
| <li><strong>Wallet</strong> - You can now enable donations from your Android |
| app in the same way you enable purchases. To do so, create a |
| <a href="{@docRoot}reference/com/google/android/gms/wallet/fragment/WalletFragment.html">{@code WalletFragment}</a> and specify the |
| <a href="{@docRoot}reference/com/google/android/gms/wallet/fragment/WalletFragmentMode.html#BUY_BUTTON">{@code BUY_BUTTON}</a> |
| mode, then set the button text to |
| <a href="{@docRoot}reference/com/google/android/gms/wallet/fragment/BuyButtonText.html#DONATE_WITH_GOOGLE">{@code DONATE_WITH_GOOGLE}</a>. |
| <p class="note"><strong>Note:</strong> Use of the <em>Donate with Google</em> |
| button is limited to 501(c)(3) organizations. For more information, see the |
| <a href="https://support.google.com/wallet/business/answer/75724?hl=en&rd=1" class="external-link">Content policies</a>.</p> |
| <ul> |
| <li><a href="https://developers.google.com/wallet/instant-buy/android/tutorial.html" class="external-link">Setting button text developer guide</a></li> |
| </ul> |
| </li> |
| <li><strong>Granular dependency management</strong> - If the number of |
| references in your app exceeds the |
| <a href="{@docRoot}tools/building/multidex.html">65K method reference limit</a>, |
| your app may fail to compile. To avoid this problem, you can include just |
| the specific Google Play services APIs your app uses, instead of all of them, |
| when compiling your app. For more details, see the Android Studio setup |
| instructions in |
| <a href="{@docRoot}google/play-services/setup.html">Setting Up Google Play Services</a>. |
| </li> |
| <li><strong>Deprecated clients</strong> - The {@code ActivityRecognitionClient}, |
| {@code LocationClient}, and {@code PlusClient} classes are deprecated. If |
| you used those APIs in your app and want to call Google Play services 6.5 |
| or higher APIs, you must switch to the new programming model that utilizes |
| <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code GoogleApiClient}</a>. For more information about using <a href="{@docRoot}reference/com/google/android/gms/common/api/GoogleApiClient.html">{@code GoogleApiClient}</a>, see <a href="{@docRoot}google/auth/api-client.html">Accessing Google APIs</a>. |
| <p>Use these APIs instead of the deprecated APIs:</p> |
| <ul> |
| <li>If you were previously using {@code ActivityRecognitionClient}, call |
| <a href="{@docRoot}reference/com/google/android/gms/location/ActivityRecognition.html">{@code ActivityRecognition}</a> instead.</li> |
| <li>If you were previously using {@code LocationClient}, call the APIs in the |
| <a href="{@docRoot}reference/com/google/android/gms/location/package-summary.html">{@code com.google.android.gms.location} package</a> instead.</li> |
| <li>If you were previously using {@code PlusClient}, call the APIs in the |
| <a href="{@docRoot}reference/com/google/android/gms/plus/package-summary.html">{@code com.google.android.gms.plus} package</a> instead.</li> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" |
| class="toggle-content-img" |
| alt=""/>Google Play services, Version 6.1</a> <em>(October 2014)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 6.1</dt> |
| |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 6.1, see the |
| announcement |
| <a href="http://android-developers.blogspot.com/2014/09/google-play-services-61.html" |
| class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Drive</strong> - This release adds the |
| <a href="{@docRoot}reference/com/google/android/gms/drive/events/CompletionEvent.html"> |
| <code>CompletionEvent</code></a> class to notify you when actions are |
| committed to the server and respond to conflicts. Recent and starred views |
| are now available in the file picker user interface provided by |
| <a href="{@docRoot}reference/com/google/android/gms/drive/OpenFileActivityBuilder.html"> |
| <code>OpenFileActivityBuilder</code><a/>, and the user interface has been |
| updated to use |
| <a href="http://www.google.com/design/spec/material-design/introduction.html" |
| class="external-link">material design</a>. A new |
| <a href="{@docRoot}reference/com/google/android/gms/drive/DriveResource.html#setParents(com.google.android.gms.common.api.GoogleApiClient, java.util.Set<com.google.android.gms.drive.DriveId>)"> |
| DriveResource.setParents()</a> method makes it possible to organize files |
| and folders. In addition, the |
| <a href="{@docRoot}reference/com/google/android/gms/drive/Contents.html"> |
| <code>Contents</code></a> |
| class has been replaced with a |
| <a href="{@docRoot}reference/com/google/android/gms/drive/DriveContents.html"> |
| <code>DriveContents</code></a> class that simplifies working with file |
| contents. |
| <ul> |
| <li><a href="https://developers.google.com/drive/release-notes" |
| class="external-link">Drive SDK release notes</a></li> |
| <li><a href="https://developers.google.com/drive/android/completion" |
| class="external-link">Completion events developer guide and Google |
| Developers video</a></li> |
| <li><a href="https://developers.google.com/drive/android/intro?hl=pt-PT#activity_builders" |
| class="external-link">Using the OpenFileActivity Builder</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Tag Manager</strong> - Google Tag Manager now supports |
| <a href="https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce" |
| class="external-link">Enhanced Ecommerce</a> through the |
| <a href="https://support.google.com/tagmanager/answer/3281379" |
| class="external-link">Universal Analytics tag</a>. |
| <ul> |
| <li><a href="https://developers.google.com/analytics/devguides/collection/upgrade/" |
| class="external-link">Universal Analytics Upgrade Center</a></li> |
| <li><a href="https://developers.google.com/tag-manager/android/v4/" |
| class="external-link">Enhanced Ecommerce developer guide</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Fit</strong> - The Google Fit developer preview, initially |
| <a href="http://googledevelopers.blogspot.com/2014/08/google-fit-preview-sdk-now-available.html" |
| class=""external-link>announced</a> in August, has been |
| refreshed to enable you to test your new fitness apps on any Android device. |
| <ul> |
| <li><a href="https://developers.google.com/fit/preview" |
| class="external-link">Google Fit developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/fitness/package-summary.html"> |
| Fit API reference</a></li> |
| </ul> |
| </li> |
| |
| </ul> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" |
| class="toggle-content-img" |
| alt=""/>Google Play services, Version 5.0</a> <em>(July 2014)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 5.0</dt> |
| |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 5.0, see the |
| announcement |
| <a href="http://android-developers.blogspot.com/2014/07/google-play-services-5.html" |
| class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Analytics</strong> - The Enhanced Ecommerce API allows your app |
| to send product related information and actions to Google Analytics. Use this |
| API to measure impressions of products seen by users, checkout steps, and |
| products purchased. This information can be analyzed for the effectiveness of |
| marketing and merchandising efforts, including the impact of internal |
| promotions, coupons, and affiliate marketing programs. |
| <ul> |
| <li><a href="https://developers.google.com/analytics/devguides/collection/android/v4/enhanced-ecommerce.html" class="external-link">Enhanced Ecommerce developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/analytics/ecommerce/package-summary.html">Enhanced Ecommerce API reference</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>App Indexing</strong> - The App Indexing API provides a way |
| for developers to notify Google about deep links in their native apps and |
| allows the Google Search App, version 3.6 and above, to drive re-engagement |
| through Google Search |
| <a href="https://support.google.com/websearch/answer/106230" |
| class="external-link">query autocompletions</a>, providing fast and easy access to |
| inner pages in apps. |
| <ul> |
| <li><a href="https://developers.google.com/app-indexing/webmasters/appindexingapi.html" |
| class="external-link">App Indexing developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/appindexing/package-summary.html">App |
| Indexing API reference</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Drive</strong> - The Query APIs now allow your app to retrieve |
| Drive files by sorted order, according to a developer-specified sorting criteria. |
| <ul> |
| <li><a href="https://developers.google.com/drive/android/queries.html" |
| class="external-link">Queries developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/drive/query/package-summary.html">Sortable |
| queries API reference</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Play Games</strong> - This release introduces the Quests and |
| Saved Games services. The Quests service gives you the ability to issue |
| time-bound in-game challenges based on Events data sent from your game, without |
| republishing your game (for example: Your game sends an event each time a |
| “gem” is found by a player, and you create a quest to “Find 20 gems”). Players |
| can complete a quest to earn rewards. Saved Games offers improved functionality |
| for saving game state information and visually displaying player game progression. |
| <ul> |
| <li><a href="https://developers.google.com/games/services/android/quests.html" |
| class="external-link">Events and Quests developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/games/event/package-summary.html">Events |
| API reference</a></a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/games/quest/package-summary.html">Quests |
| API reference</a></a></li> |
| <li><a href="https://developers.google.com/games/services/android/savedgames.html" |
| class="external-link">Saved Games developer guide</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/games/snapshot/package-summary.html">Saved |
| Games API reference</a></a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Security</strong> - The Security API allows you to easily |
| install a dynamic security provider. New versions of Google Play Services will |
| keep the security provider up-to-date with the latest security fixes as those |
| become available. |
| <ul> |
| <li><a href="{@docRoot}reference/com/google/android/gms/security/package-summary.html">Security |
| API reference</a></li> |
| </ul> |
| </li> |
| |
| <li><strong>Wallet</strong> - The Save to Google API for Android lets users |
| save Wallet Objects to their Google Wallet with the click of a button displayed |
| in your Android app. |
| <ul> |
| <li><a href="https://developers.google.com/wallet/objects/savetowalletnative.html" |
| class="external-link">Save to Google API for Android tutorial</a></li> |
| </ul> |
| </li> |
| |
| |
| <li><strong>Wearables</strong> - The Wearable Data Layer API provides a |
| communication channel between your handheld and wearable apps. The API |
| consists of a set of data objects that the system can send and synchronize |
| and listeners that notify your apps of important events from the other |
| device. |
| <ul> |
| <li><a href="{@docRoot}training/wearables/apps/index.html">Building |
| Wearable Apps training class</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/wearable/package-summary.html">Wearables |
| API reference</a></li> |
| </ul> |
| </li> |
| |
| </ul> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" |
| alt=""/>Google Play services, Version 4.4</a> <em>(May 2014)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 4.4</dt> |
| |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 4.4, see the |
| announcement <a href="http://android-developers.blogspot.com/2014/05/google-play-services-44.html" class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Maps</strong> - New features for Street View and enhanced control of |
| Indoor Maps. |
| <ul> |
| <li><a href="http://developers.google.com/maps/documentation/android/streetview.html" class="external-link">Street View developer guide</a> - Add Street View to your app and programmatically control |
| the user’s experience. |
| <li><a href="http://developers.google.com/maps/documentation/android/map.html#indoor_maps" class="external-link">Indoor Maps developer guide</a> - Customize the level picker |
| and specify the active level of a building.</a> |
| </ul> |
| </li> |
| |
| <li><strong>Activity recognition</strong> - The Location API has been updated with new activity detectors for running and walking. |
| <ul> |
| <li><a href="{@docRoot}reference/com/google/android/gms/location/DetectedActivity.html"><code>DetectedActivity</code> class reference</a> |
| </ul> |
| </li> |
| |
| <li><strong>Mobile Ads</strong> - The new in-app purchase APIs allow |
| publishers to display in-app purchase ads, which enables users to purchase |
| advertised items directly. |
| <ul> |
| <li><a href="https://developers.google.com/mobile-ads-sdk/docs/admob/advanced#play-inapppurchaselistener" class="external-link">In-app purchase APIs developer guide</a> - |
| Enable in-app purchases via ads by using the in-app purchase APIs. |
| <li><a href="{@docRoot}reference/com/google/android/gms/ads/purchase/package-summary.html">In-app purchase API reference</a> |
| </ul> |
| </li> |
| |
| <li><strong>Wallet Fragment</strong> - The new Wallet Fragment API allows you |
| to easily integrate Google Wallet Instant Buy with an existing app. |
| <ul> |
| <li><a href="http://developers.google.com/wallet/instant-buy/android/tutorial.html#about_walletfragment" class="external-link">About Wallet Fragment</a> - Tutorial showing how to |
| use wallet fragment to handle user events and to automate key parts of the purchase lifecycle. |
| <li><a href="http://developers.google.com/wallet/instant-buy/diagrams.html#detailed_api_process_flow" class="external-link">Detailed API process flow</a></a> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| |
| <div class="toggle-content closed"> |
| <p><a href="#" onclick="return toggleContent(this)"> |
| <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" |
| alt=""/>Google Play services, Version 4.3</a> <em>(March 2014)</em> |
| </p> |
| |
| <div class="toggle-content-toggleme"> |
| <dl> |
| <dt>Highlights in Version 4.3</dt> |
| <dd> |
| <p>For a summary of the feature highlights in Google Play services 4.3, see the |
| announcement <a href="http://android-developers.blogspot.com/2014/03/google-play-services-43.html" class="external-link">blog post</a>.</p> |
| <ul> |
| <li><strong>Play Games</strong> - The new Game Gifts API enables games to send virtual in-game requests to anyone in a player’s circles or through player search. |
| <ul> |
| <li><a href="http://developers.google.com/games/services/android/giftRequests.html" class="external-link">Developing Game Gifts in Android</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/games/request/package-summary.html">Game Gifts API reference</a></li> |
| </ul> |
| </li> |
| <li><strong>Analytics</strong> - Google Analytics and Tag Manager are now part of Google Play services. |
| <ul> |
| <li><a href="http://developers.google.com/analytics/devguides/collection/android/v4/" class="external-link">Getting Started with the Analytics API in Android</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/analytics/package-summary.html">Analytics API reference</a></li> |
| <li><a href="http://developers.google.com/tag-manager/android/" class="external-link">Getting Started with the Tag Manager API in Android</a></li> |
| <li><a href="{@docRoot}reference/com/google/android/gms/tagmanager/package-summary.html">Tag Manager API reference</a></li> |
| </ul> |
| </li> |
| <li><strong>Drive</strong> - Change notifications, offline content, and more. |
| <ul> |
| <li><a href="http://developers.google.com/drive/android/pinning.html" class="external-link">Pinning Files</a> - Make files available offline.</li> |
| <li><a href="http://developers.google.com/drive/android/events.html" class="external-link">Listening for Change Events</a> - Receive notifications for change events asynchronously.</li> |
| <li><a href="http://developers.google.com/drive/android/appfolder.html" class="external-link">Storing Application Data</a> - Store application data in a special hidden folder.</li> |
| </ul> |
| </li> |
| <li><strong>Address</strong> - Let your users provide complete addresses in a single click. |
| <ul> |
| <li><a href="{@docRoot}reference/com/google/android/gms/identity/intents/package-summary.html">Address API reference</a> </li> |
| </ul> |
| </li> |
| </ul> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| |
| <h2>How It Works</h2> |
| |
| <h4 id="client-lib">The Google Play services client library</h4> |
| <p> |
| The client library contains the interfaces to the individual Google |
| services and allows you to obtain authorization from users to gain access |
| to these services with their credentials. It also contains APIs that allow |
| you to resolve any issues at runtime, such as a missing, disabled, or out-of-date |
| Google Play services APK. The client library has a light footprint if you use |
| <a href="/tools/help/proguard.html">ProGuard</a> as part of your build process, so it won't have |
| an adverse impact on your app's file size. |
| </p> |
| <p> |
| If you want to access added features or products, you can upgrade to a new version of the |
| client library as they are released. However, upgrading is not |
| necessary if you don't care about new features or bug fixes. |
| We anticipate more Google services to be continuously added, so be on the lookout for |
| these updates. |
| </p> |
| |
| <div class="vspace size-2"> </div> |
| |
| <div class="layout-content-row"> |
| <div class="layout-content-col span-6"> |
| <h4 id="apk">The Google Play services APK</h4> |
| <p> |
| The Google Play services APK contains the individual Google services and runs |
| as a background service in the Android OS. You interact with the background service |
| through the client library and the service carries out the actions on your behalf. |
| An easy-to-use authorization flow is also |
| provided to gain access to the each Google service, which provides consistency for both |
| you and your users. |
| </p> |
| <p> |
| The Google Play services APK is delivered through the Google Play Store, so |
| updates to the services are not dependent on carrier or OEM system image updates. In general, devices |
| running Android 2.3 (Gingerbread) or later and have the Google Play Store app installed receive updates within a |
| few days. This allows you to use the newest APIs in Google Play services and reach most of the |
| devices in the Android ecosystem (devices older than Android 2.3 or devices without the Google |
| Play Store app are not supported). |
| </p> |
| </div> |
| |
| <div class="layout-content-col span-6"> |
| <img src="/images/play-services-diagram.png" /> |
| <p class="img-caption"><em>The Google Play services APK on user devices receives regular updates |
| for new APIs, features, and bug fixes.</em></p> |
| </div> |
| </div> |
| |
| <h4 id="benefits">The benefits for your app</h4> |
| |
| <p>Google Play services gives you the freedom to use the newest APIs for popular |
| Google services without worrying about device support. Updates to Google Play |
| services are distributed automatically by the Google Play Store and new versions |
| of the client library are delivered through the Android SDK Manager. This makes it |
| easy for you to focus on what's important: your users' experience.</p> |
| |
| <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up</a> the SDK and check out |
| the various products in the Google Play services platform now!</p> |