blob: 2da092b7c0431d8cce2c68d99a6b348e2d125422 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
<title>Fitness | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
href="//fonts.googleapis.com/css?family=Roboto+Condensed">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
title="roboto">
<link href="/assets/css/default.css?v=5" rel="stylesheet" type="text/css">
<!-- JAVASCRIPT -->
<script src="//www.google.com/jsapi" type="text/javascript"></script>
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js?v=3" type="text/javascript"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-5831155-1', 'android.com');
ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker);
ga('send', 'pageview');
ga('universal.send', 'pageview'); // Send page view for new tracker.
</script>
</head>
<body class="gc-documentation google
develop reference" itemscope itemtype="http://schema.org/Article">
<div id="doc-api-level" class="" style="display:none"></div>
<a name="top"></a>
<a name="top"></a>
<!-- dialog to prompt lang pref change when loaded from hardcoded URL
<div id="langMessage" style="display:none">
<div>
<div class="lang en">
<p>You requested a page in English, would you like to proceed with this language setting?</p>
</div>
<div class="lang es">
<p>You requested a page in Spanish (Español), would you like to proceed with this language setting?</p>
</div>
<div class="lang ja">
<p>You requested a page in Japanese (日本語), would you like to proceed with this language setting?</p>
</div>
<div class="lang ko">
<p>You requested a page in Korean (한국어), would you like to proceed with this language setting?</p>
</div>
<div class="lang ru">
<p>You requested a page in Russian (Русский), would you like to proceed with this language setting?</p>
</div>
<div class="lang zh-cn">
<p>You requested a page in Simplified Chinese (简体中文), would you like to proceed with this language setting?</p>
</div>
<div class="lang zh-tw">
<p>You requested a page in Traditional Chinese (繁體中文), would you like to proceed with this language setting?</p>
</div>
<a href="#" class="button yes" onclick="return false;">
<span class="lang en">Yes</span>
<span class="lang es">Sí</span>
<span class="lang ja">Yes</span>
<span class="lang ko">Yes</span>
<span class="lang ru">Yes</span>
<span class="lang zh-cn">是的</span>
<span class="lang zh-tw">没有</span>
</a>
<a href="#" class="button" onclick="$('#langMessage').hide();return false;">
<span class="lang en">No</span>
<span class="lang es">No</span>
<span class="lang ja">No</span>
<span class="lang ko">No</span>
<span class="lang ru">No</span>
<span class="lang zh-cn">没有</span>
<span class="lang zh-tw">没有</span>
</a>
</div>
</div> -->
<!-- Header -->
<div id="header-wrapper">
<div id="header">
<div class="wrap" id="header-wrap">
<div class="col-3 logo">
<a href="/index.html">
<img src="/assets/images/dac_logo.png"
srcset="/assets/images/dac_logo@2x.png 2x"
width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
<a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
<ul class="nav-x col-9">
<li class="design">
<a href="/design/index.html"
zh-tw-lang="設計"
zh-cn-lang="设计"
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
zh-cn-lang="开发"
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
zh-cn-lang="分发"
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
es-lang="Distribuir"
>Distribute</a></li>
</ul>
<div class="menu-container">
<div class="moremenu">
<div id="more-btn"></div>
</div>
<div class="morehover" id="moremenu">
<div class="top"></div>
<div class="mid">
<div class="header">Links</div>
<ul>
<li><a href="https://play.google.com/apps/publish/" target="_googleplay">Google Play Developer Console</a></li>
<li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
<li><a href="/about/index.html">About Android</a></li>
</ul>
<div class="header">Android Sites</div>
<ul>
<li><a href="http://www.android.com">Android.com</a></li>
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
<option value="en">English</option>
<option value="es">Español</option>
<option value="ja">日本語</option>
<option value="ko">한국어</option>
<option value="ru">Русский</option>
<option value="zh-cn">中文(简体)</option>
<option value="zh-tw">中文(繁體)</option>
</select>
</div>
<script type="text/javascript">
<!--
loadLangPref();
//-->
</script>
<br class="clearfix" />
</div><!-- end 'mid' -->
<div class="bottom"></div>
</div><!-- end 'moremenu' -->
<div class="search" id="search-container">
<div class="search-inner">
<div id="search-btn"></div>
<div class="left"></div>
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
<a class="close hide">close</a>
<div class="left"></div>
<div class="right"></div>
</div><!-- end search-inner -->
</div><!-- end search-container -->
<div class="search_filtered_wrapper reference">
<div class="suggest-card reference no-display">
<ul class="search_filtered">
</ul>
</div>
</div>
<div class="search_filtered_wrapper docs">
<div class="suggest-card dummy no-display">&nbsp;</div>
<div class="suggest-card develop no-display">
<ul class="search_filtered">
</ul>
<div class="child-card guides no-display">
</div>
<div class="child-card training no-display">
</div>
<div class="child-card samples no-display">
</div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
</ul>
</div>
<div class="suggest-card distribute no-display">
<ul class="search_filtered">
</ul>
</div>
</div>
</div><!-- end menu-container (search and menu widget) -->
<!-- Expanded quicknav -->
<div id="quicknav" class="col-13">
<ul>
<li class="about">
<ul>
<li><a href="/about/index.html">About</a></li>
<li><a href="/wear/index.html">Wear</a></li>
<li><a href="/tv/index.html">TV</a></li>
<li><a href="/auto/index.html">Auto</a></li>
</ul>
</li>
<li class="design">
<ul>
<li><a href="/design/index.html">Get Started</a></li>
<li><a href="/design/devices.html">Devices</a></li>
<li><a href="/design/style/index.html">Style</a></li>
<li><a href="/design/patterns/index.html">Patterns</a></li>
<li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
<li><a href="/design/downloads/index.html">Downloads</a></li>
<li><a href="/design/videos/index.html">Videos</a></li>
</ul>
</li>
<li class="develop">
<ul>
<li><a href="/training/index.html"
zh-tw-lang="訓練課程"
zh-cn-lang="培训"
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
<li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
zh-cn-lang="参考"
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
es-lang="Referencia"
>Reference</a></li>
<li><a href="/sdk/index.html"
zh-tw-lang="相關工具"
zh-cn-lang="工具"
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
es-lang="Herramientas"
>Tools</a>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
<li><a href="/samples/index.html">Samples</a>
</li>
</ul>
</li>
<li class="distribute last">
<ul>
<li><a href="/distribute/googleplay/index.html">Google Play</a></li>
<li><a href="/distribute/essentials/index.html">Essentials</a></li>
<li><a href="/distribute/users/index.html">Get Users</a></li>
<li><a href="/distribute/engage/index.html">Engage &amp; Retain</a></li>
<li><a href="/distribute/monetize/index.html">Monetize</a></li>
<li><a href="/distribute/analyze/index.html">Analyze</a></li>
<li><a href="/distribute/tools/index.html">Tools &amp; Reference</a></li>
<li><a href="/distribute/stories/index.html">Developer Stories</a></li>
</ul>
</li>
</ul>
</div><!-- /Expanded quicknav -->
</div><!-- end header-wrap.wrap -->
</div><!-- end header -->
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap" style="position:relative;z-index:1">
<ul class="nav-x col-9 develop" style="width:100%">
<li class="training"><a href="/training/index.html"
zh-tw-lang="訓練課程"
zh-cn-lang="培训"
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
<li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
zh-cn-lang="参考"
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/sdk/index.html"
zh-tw-lang="相關工具"
zh-cn-lang="工具"
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
es-lang="Herramientas"
>Tools</a></li>
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
<li class="samples"><a href="/samples/index.html"
>Samples</a>
</li>
</ul>
</div>
</div>
<!-- /Sendondary x-nav DEVELOP -->
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
</div> <!--end header-wrapper -->
<div id="sticky-header">
<div>
<a class="logo" href="#top"></a>
<a class="top" href="#top"></a>
<ul class="breadcrumb">
<li class="current">Fitness</li>
</ul>
</div>
</div>
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
<ul id="nav">
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/index.html">
<span class="en">Overview</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/games.html">
<span class="en">Games</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/location.html">
<span class="en">Location</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/plus.html">
<span class="en">Google+</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/maps.html">
<span class="en">Maps</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/drive.html">
<span class="en">Drive</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/cast.html">
<span class="en">Cast</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/play-services/ads.html">
<span class="en">Ads</span></a>
</div>
<ul>
<li><a href="/google/play-services/id.html">
<span class="en">Advertising ID</span></a>
</li>
</ul>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
<span class="en">Wallet</span>
</a></div>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/play-services/index.html">
<span class="en">Google Play Services</span></a>
</div>
<ul>
<li><a href="/google/play-services/setup.html">
<span class="en">Setting Up Google Play Services</span></a>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/auth/api-client.html">
<span class="en">Accessing Google APIs</span></a>
</div>
<ul>
<li>
<a href="/google/auth/http-auth.html">
<span class="en">Authorizing with Google for REST APIs</span>
</a>
</li>
</ul>
</li>
<li id="gms-tree-list" class="nav-section">
<div class="nav-section-header">
<a href="/reference/gms-packages.html">
<span class="en">Reference</span>
</a>
<div>
</li>
</ul>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/play/billing/index.html" zh-cn-lang="应用内结算">
<span class="en">Google Play In-app Billing</span></a>
</div>
<ul>
<li><a href="/google/play/billing/billing_overview.html" zh-cn-lang="应用内结算概述">
<span class="en">Overview</span></a>
</li>
<li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html" zh-cn-lang="应用内结算 API">
<span class="en">Version 3 API</span></a></div>
<ul>
<li><a href="/google/play/billing/billing_integrate.html">
<span class="en">Implementing the API</span></a></li>
<li><a href="/google/play/billing/billing_reference.html">
<span class="en">Reference</span></a></li>
</ul>
</li>
<li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
<span class="en">Version 2 API</span></a></div>
<ul>
<li><a href="/google/play/billing/v2/billing_integrate.html">
<span class="en">Implementing the API</span></a></li>
<li><a href="/google/play/billing/v2/billing_subscriptions.html">
<span class="en">Subscriptions</span></a></li>
<li><a href="/google/play/billing/v2/billing_reference.html">
<span class="en">Reference</span></a></li>
</ul>
</li>
<li><a href="/google/play/billing/billing_subscriptions.html">
<span class="en">Subscriptions</span></a>
</li>
<li><a href="/google/play/billing/billing_best_practices.html" zh-cn-lang="安全性和设计">
<span class="en">Security and Design</span></a>
</li>
<li><a href="/google/play/billing/billing_testing.html" zh-cn-lang="测试应用内结算">
<span class="en">Testing In-app Billing</span></a>
</li>
<li><a href="/google/play/billing/billing_admin.html" zh-cn-lang="管理应用内结算">
<span class="en">Administering In-app Billing</span></a>
</li>
<li><a href="/google/play/billing/versions.html">
<span class="en">Version Notes</span></a>
</li>
</ul>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
<li><a href="/google/gcm/gcm.html">
<span class="en">Overview</span></a>
</li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
<li><a href="/google/gcm/client.html">
<span class="en">Implementing GCM Client</span></a>
</li>
<li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
<span class="en">Implementing GCM Server</span></a></div>
<ul>
<li><a href="/google/gcm/ccs.html">
<span class="en">CCS (XMPP)</span></a></li>
<li><a href="/google/gcm/http.html">
<span class="en">HTTP</span></a></li>
</ul>
</li>
<li><a href="/google/gcm/server-ref.html">
<span class="en">Server Reference</span></a>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
<li><a href="/google/gcm/c2dm.html">
<span class="en">Migration</span></a>
</li>
</ul>
</li>
<li class="nav-section">
<div class="nav-section-header empty"><a href="/google/gcs/index.html">
<span class="en">Google Cloud Save</span></a>
</div>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/play/dist.html">
<span class="en">Google Play Distribution</span></a>
</div>
<ul>
<li><a href="/google/play/filters.html">
<span class="en">Filters on Google Play</span></a>
</li>
<li><a href="/google/play/billing/gp-purchase-status-api.html">
<span class="en">Google Play Developer API</span></a>
</li>
<li><a href="/google/play/publishing/multiple-apks.html">
<span class="en">Multiple APK Support</span></a>
</li>
<li><a href="/google/play/expansion-files.html">
<span class="en">APK Expansion Files</span></a>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/play/licensing/index.html">
<span class="en">Application Licensing</span></a>
</div>
<ul>
<li><a href="/google/play/licensing/overview.html">
<span class="en">Licensing Overview</span></a>
</li>
<li><a href="/google/play/licensing/setting-up.html">
<span class="en">Setting Up for Licensing</span></a>
</li>
<li><a href="/google/play/licensing/adding-licensing.html">
<span class="en">Adding Licensing to Your App</span></a>
</li>
<li><a href="/google/play/licensing/licensing-reference.html">
<span class="en">Licensing Reference</span></a>
</li>
</ul>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="/google/backup/index.html">
Android Backup Service</a>
</div>
<ul>
<li><a href="/google/backup/signup.html">
Register</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<script type="text/javascript">
<!--
buildToggleLists();
changeNavLang(getLangPref());
//-->
</script>
</div>
<script type="text/javascript">
showGoogleRefTree();
</script>
</div> <!-- end side-nav -->
<script>
$(document).ready(function() {
scrollIntoView("devdoc-nav");
});
</script>
<div class="col-12" id="doc-col">
<div id="api-info-block">
<div class="sum-details-links">
Summary:
<a href="#constants">Constants</a>
&#124; <a href="#lfields">Fields</a>
&#124; <a href="#pubmethods">Methods</a>
&#124; <a href="#inhmethods">Inherited Methods</a>
&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
</div><!-- end sum-details-links -->
<div class="api-level">
</div>
</div><!-- end api-info-block -->
<!-- ======== START OF CLASS DATA ======== -->
<div id="jd-header">
public
class
<h1 itemprop="name">Fitness</h1>
extends Object<br/>
</div><!-- end header -->
<div id="naMessage"></div>
<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">
<tr>
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
<tr>
<td class="jd-inheritance-space">&nbsp;&nbsp;&nbsp;&#x21b3;</td>
<td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.fitness.Fitness</td>
</tr>
</table>
<div class="jd-descr">
<h2>Class Overview</h2>
<p itemprop="articleBody">The main entry point to Google Fit APIs.
<p>
The Google Fit APIs help app developers collect and use fitness-related sensor data in their
applications. There are several different APIs, each solving a different problem:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">SensorsApi</a></code> exposes a unified view of sensor streams on the local
device and connected devices, and delivers live events to listeners.
<li><code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">RecordingApi</a></code> enables low-battery, always-on background collection
of sensor data into the Google Fit store.
<li><code><a href="/reference/com/google/android/gms/fitness/SessionsApi.html">SessionsApi</a></code> lets apps create and manage sessions of user activity.
<li><code><a href="/reference/com/google/android/gms/fitness/HistoryApi.html">HistoryApi</a></code> allows querying and insertion of data in Google Fit.
<li><code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code> can be used to work with Bluetooth Low Energy devices.
<li><code><a href="/reference/com/google/android/gms/fitness/ConfigApi.html">ConfigApi</a></code> can be used to access custom data types and settings.
</ul>
Most API methods require a <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">data type</a></code>. Each data type operation requires the
user to have granted the app permission to access and store fitness data for the given data type.
<h2>Authorization</h2>
When connecting to the Google Fit API, apps should specify the necessary scopes and the user
account. Apps can use <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addScope(com.google.android.gms.common.api.Scope)">addScope(Scope)</a></code> to add the
necessary scopes, which should be selected from the <code>SCOPE_XXX</code> constants in this class.
To use a specific user account, apps can use <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#setAccountName(java.lang.String)">setAccountName(String)</a></code>,
or use <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#useDefaultAccount()">useDefaultAccount()</a></code> to use the default account. The specified account
and scopes will be used to acquire the necessary OAuth tokens on behalf of the app.
<p>
In case the app does not have the needed OAuth permissions for the requested scopes,
Google Fit will send back a result with status code set
to <code><a href="/reference/com/google/android/gms/fitness/FitnessStatusCodes.html#NEEDS_OAUTH_PERMISSIONS">NEEDS_OAUTH_PERMISSIONS</a></code>. In this case, the app should use
<code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code> to get the necessary OAuth
permissions.
<p>
The first connection to Fit API may require a network connection to verify the account and scopes
associated with it. In case no network connection is available, Google Fit will send back a
result with status code set to <code><a href="/reference/com/google/android/gms/common/api/CommonStatusCodes.html#NETWORK_ERROR">NETWORK_ERROR</a></code>.
<p>
Sample usage of Google Fit Client:
<pre>
public class MyActivity extends FragmentActivity
implements ConnectionCallbacks, OnConnectionFailedListener, OnDataPointListener {
private static final int REQUEST_OAUTH = 1001;
private GoogleApiClient mGoogleApiClient;
&#064;Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create a Google Fit Client instance with default user account.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API) // Required for SensorsApi calls
// Optional: specify more APIs used with additional calls to addApi
.useDefaultAccount()
.addScope(new Scope(Scopes.FITNESS))
.addOnConnectionsCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
mGoogleApiClient.connect();
}
&#064;Override
public void onConnected(Bundle connectionHint) {
// Connected to Google Fit Client.
Fitness.SensorsApi.add(
mGoogleApiClient,
new SensorRequest.Builder()
.setDataType(DataTypes.STEP_COUNT_DELTA)
.build(),
this);
}
&#064;Override
public void onDataPoint(DataPoint dataPoint) {
// Do cool stuff that matters.
}
&#064;Override
public void onConnectionSuspended(int cause) {
// The connection has been interrupted. Wait until onConnected() is called.
}
&#064;Override
public void onConnectionFailed(ConnectionResult result) {
// Error while connecting. Try to resolve using the pending intent returned.
if (result.getErrorCode() == FitnessStatusCodes.NEEDS_OAUTH_PERMISSIONS) {
try {
result.startResolutionForResult(this, REQUEST_OAUTH);
} catch (SendIntentException e) {
}
}
}
&#064;Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_OAUTH && resultCode == RESULT_OK) {
mGoogleApiClient.connect();
}
}
</pre>
<h2>Intents</h2>
Google Fit supports different intents in order to help fitness apps collaborate. To that
effect, different intent actions are defined in this class:
<ul>
<li/><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_VIEW">ACTION_VIEW</a></code> defines an intent to view fitness data or a session
<li/><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_TRACK">ACTION_TRACK</a></code> defines an intent to track an activity
<li/><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_VIEW_GOAL">ACTION_VIEW_GOAL</a></code> defines an intent to view a fitness goal
</ul>
Different objects in the Fitness data model can be used in intents, including
<code><a href="/reference/com/google/android/gms/fitness/data/Session.html">sessions</a></code>, <code><a href="/reference/com/google/android/gms/fitness/data/DataSource.html">data sources</a></code>, <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">data types</a></code>, and
<code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html">activities</a></code>. The documentation for each intent action specifies the
different attributes of the intent, including actions, MIME types, and extras. It also
specifies how the intents can be built and parsed using methods in the API.
</p>
</div><!-- jd-descr -->
<div class="jd-descr">
<h2>Summary</h2>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_TRACK">ACTION_TRACK</a></td>
<td class="jd-descrcol" width="100%">
Broadcast action: the user has requested that an application start or stop tracking
their activity.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_VIEW">ACTION_VIEW</a></td>
<td class="jd-descrcol" width="100%">
Broadcast action: the user has requested that an application show the value of a
particular fitness <a href="/reference/com/google/android/gms/fitness/data/DataType.html">data type</a></a>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#ACTION_VIEW_GOAL">ACTION_VIEW_GOAL</a></td>
<td class="jd-descrcol" width="100%">
Broadcast action: the user has requested to view their current fitness goal.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#EXTRA_END_TIME">EXTRA_END_TIME</a></td>
<td class="jd-descrcol" width="100%">
Name for the long intent extra containing the end time.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#EXTRA_START_TIME">EXTRA_START_TIME</a></td>
<td class="jd-descrcol" width="100%">
Name for the long intent extra containing the start time.
</td>
</tr>
</table>
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
Void</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#API">API</a></td>
<td class="jd-descrcol" width="100%">
<em>
This field is deprecated.
in favor of granular API tokens.
</em>
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#BLE_API">BLE_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#BleApi">BleApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">Google Fit BLE API</a></code>.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#CONFIG_API">CONFIG_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/ConfigApi.html">ConfigApi</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/ConfigApi.html">ConfigApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#ConfigApi">ConfigApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/ConfigApi.html">Google Fit Config API</a></code>.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#HISTORY_API">HISTORY_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/HistoryApi.html">HistoryApi</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/HistoryApi.html">HistoryApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#HistoryApi">HistoryApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/HistoryApi.html">Google Fit History API</a></code>.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#RECORDING_API">RECORDING_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">RecordingApi</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/RecordingApi.html">RecordingApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#RecordingApi">RecordingApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">Google Fit Recording API</a></code>.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_ACTIVITY_READ">SCOPE_ACTIVITY_READ</a></td>
<td class="jd-descrcol" width="100%">
Scope for read access to activity-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SAMPLE">activity_sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">activity_segment</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_CONSUMED">calories.consumed</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_EXPENDED">calories.expended</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CADENCE">cycling.pedaling.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CUMULATIVE">cycling.pedaling.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_REVOLUTION">cycling.whell_revolution.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_RPM">cycling.whell_revolution.rpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_POWER_SAMPLE">power.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.delta</a></code>
</ul>
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_ACTIVITY_READ_WRITE">SCOPE_ACTIVITY_READ_WRITE</a></td>
<td class="jd-descrcol" width="100%">
Scope for read/write access to activity-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SAMPLE">activity_sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">activity_segment</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_CONSUMED">calories.consumed</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_EXPENDED">calories.expended</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CADENCE">cycling.pedaling.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CUMULATIVE">cycling.pedaling.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_REVOLUTION">cycling.whell_revolution.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_RPM">cycling.whell_revolution.rpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_POWER_SAMPLE">power.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.delta</a></code>
</ul>
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_BODY_READ">SCOPE_BODY_READ</a></td>
<td class="jd-descrcol" width="100%">
Scope for read access to the biometric data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_BODY_FAT_PERCENTAGE">body.fat.percentage</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEART_RATE_BPM">heart_rate.bpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEIGHT">height</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_WEIGHT">weight</a></code>
</ul>
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_BODY_READ_WRITE">SCOPE_BODY_READ_WRITE</a></td>
<td class="jd-descrcol" width="100%">
Scope for read/write access to biometric data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_BODY_FAT_PERCENTAGE">body.fat.percentage</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEART_RATE_BPM">heart_rate.bpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEIGHT">height</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_WEIGHT">weight</a></code>
</ul>
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_LOCATION_READ">SCOPE_LOCATION_READ</a></td>
<td class="jd-descrcol" width="100%">
Scope for read access to location-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_DISTANCE_DELTA">distance.delta</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_LOCATION_SAMPLE">location.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_SPEED">speed</a></code>
</ul>
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SCOPE_LOCATION_READ_WRITE">SCOPE_LOCATION_READ_WRITE</a></td>
<td class="jd-descrcol" width="100%">
Scope for read/write access to location-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_DISTANCE_DELTA">distance.delta</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_LOCATION_SAMPLE">location.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_SPEED">speed</a></code>
</ul>
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SENSORS_API">SENSORS_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">SensorsApi</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SESSIONS_API">SESSIONS_API</a></td>
<td class="jd-descrcol" width="100%">
Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/SessionsApi.html">SessionsApi</a></code>.
</td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/SensorsApi.html">SensorsApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SensorsApi">SensorsApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">Google Fit Sensors API</a></code>.
</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
<a href="/reference/com/google/android/gms/fitness/SessionsApi.html">SessionsApi</a></nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/fitness/Fitness.html#SessionsApi">SessionsApi</a></td>
<td class="jd-descrcol" width="100%">
Entry point to the <code><a href="/reference/com/google/android/gms/fitness/SessionsApi.html">Google Fit Sessions API</a></code>.
</td>
</tr>
</table>
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
static
long</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/Fitness.html#getEndTime(android.content.Intent, java.util.concurrent.TimeUnit)">getEndTime</a></span>(Intent intent, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Retrieves the end time extra from the given intent.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
static
long</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/Fitness.html#getStartTime(android.content.Intent, java.util.concurrent.TimeUnit)">getStartTime</a></span>(Intent intent, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Retrieves the start time extra from the given intent.
</div>
</td></tr>
</table>
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
<div style="clear:left;">Inherited Methods</div></th></tr>
<tr class="api apilevel-" >
<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From class
java.lang.Object
<div id="inherited-methods-java.lang.Object">
<div id="inherited-methods-java.lang.Object-list"
class="jd-inheritedlinks">
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
Class&lt;?&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
final
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
</td></tr>
</table>
</div>
</div>
</td></tr>
</table>
</div><!-- jd-descr (summary) -->
<!-- Details -->
<!-- XML Attributes -->
<!-- Enum Values -->
<!-- Constants -->
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
<h2>Constants</h2>
<A NAME="ACTION_TRACK"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
String
</span>
ACTION_TRACK
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Broadcast action: the user has requested that an application start or stop tracking
their activity. The intent will include the following attributes:
<ul>
<li/>mimeType: this will be <code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#MIME_TYPE_PREFIX">MIME_TYPE_PREFIX</a></code>
followed by the name of the activity. Apps can use a MIME type filter to listen
only on activities they can track.
<code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#getMimeType(java.lang.String)">getMimeType(String)</a></code> can be used to generate a MIME
type from an activity.
<li/>Extra <code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#EXTRA_STATUS">EXTRA_STATUS</a></code>: an extra indicating the current status
of the activity (active or completed).
</ul>
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
"vnd.google.fitness.TRACK"
</span>
</div>
</div>
</div>
<A NAME="ACTION_VIEW"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
String
</span>
ACTION_VIEW
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Broadcast action: the user has requested that an application show the value of a
particular fitness <a href="/reference/com/google/android/gms/fitness/data/DataType.html">data type</a></a>. This could be an intent to visualize
the current value of a data type (such as the current heart rate),
or the value of a data type over a period of time. The extras will determine what the
particular intent is.
<p/>
The intent will include the following attributes:
<ul>
<li/>mimeType: this will be <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#MIME_TYPE_PREFIX">MIME_TYPE_PREFIX</a></code> followed by
the name of the data type the user would like to visualize. Apps can use a MIME type
filter to listen only on data types they can visualize. The MIME type can be generated
by <code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#getMimeType(java.lang.String)">getMimeType(String)</a></code>.
<li/>Extra <code><a href="/reference/com/google/android/gms/fitness/Fitness.html#EXTRA_START_TIME">EXTRA_START_TIME</a></code>: an extra indicating the start time in
milliseconds since epoch, present if the user desires to visualize data over a period
of time. The start time can be extracted by <code><a href="/reference/com/google/android/gms/fitness/Fitness.html#getStartTime(android.content.Intent, java.util.concurrent.TimeUnit)">getStartTime(Intent, TimeUnit)</a></code>.
<li/>Extra <code><a href="/reference/com/google/android/gms/fitness/Fitness.html#EXTRA_END_TIME">EXTRA_END_TIME</a></code>: an extra indicating the end time in
milliseconds since epoch, present if the user desires to visualize data over a period
of time. If end time isn't specified, but start time is, then the end time used
should be "now". The end time can be extracted by <code><a href="/reference/com/google/android/gms/fitness/Fitness.html#getEndTime(android.content.Intent, java.util.concurrent.TimeUnit)">getEndTime(Intent, TimeUnit)</a></code>.
<li/>Extra <code><a href="/reference/com/google/android/gms/fitness/data/DataSource.html#EXTRA_DATA_SOURCE">EXTRA_DATA_SOURCE</a></code>: an optional extra indicating the
specific data source the user would like to visualize, if any. It can be extracted
using <code><a href="/reference/com/google/android/gms/fitness/data/DataSource.html#extract(android.content.Intent)">extract(Intent)</a></code>.
</ul>
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
"vnd.google.fitness.VIEW"
</span>
</div>
</div>
</div>
<A NAME="ACTION_VIEW_GOAL"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
String
</span>
ACTION_VIEW_GOAL
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Broadcast action: the user has requested to view their current fitness goal.
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
"vnd.google.fitness.VIEW_GOAL"
</span>
</div>
</div>
</div>
<A NAME="EXTRA_END_TIME"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
String
</span>
EXTRA_END_TIME
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Name for the long intent extra containing the end time. It can be extracted using
<code><a href="/reference/com/google/android/gms/fitness/Fitness.html#getEndTime(android.content.Intent, java.util.concurrent.TimeUnit)">getEndTime(Intent, TimeUnit)</a></code>
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
"vnd.google.fitness.end_time"
</span>
</div>
</div>
</div>
<A NAME="EXTRA_START_TIME"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
String
</span>
EXTRA_START_TIME
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Name for the long intent extra containing the start time. It can be extracted using
<code><a href="/reference/com/google/android/gms/fitness/Fitness.html#getStartTime(android.content.Intent, java.util.concurrent.TimeUnit)">getStartTime(Intent, TimeUnit)</a></code>.
</p></div>
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
"vnd.google.fitness.start_time"
</span>
</div>
</div>
</div>
<!-- Fields -->
<!-- ========= FIELD DETAIL ======== -->
<h2>Fields</h2>
<A NAME="API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
Void
</span>
API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<p>
<p class="caution"><strong>
This field is deprecated.</strong><br/>
in favor of granular API tokens.
</p>
<div class="jd-tagdata jd-tagdescr"><p>Instead of API, you now need to use the specific API for the calls you're making, .e.g.
<pre>
// Create a Google Fit Client instance with default user account.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API) // Required only if you're making SensorsApi calls
.addApi(Fitness.RECORDING_API) // Required only if you're making RecordingApi calls
.addApi(Fitness.HISTORY_API) // Required only if you're making HistoryApi calls
.addApi(Fitness.SESSIONS_API) // Required only if you're making SessionsApi calls
// Optional: request more APIs with additional calls to addApi
.useDefaultAccount()
.addScope(new Scope(Scopes.FITNESS))
.addOnConnectionsCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
</pre></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
<ul class="nolist"><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#SENSORS_API">SENSORS_API</a></code></li><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#RECORDING_API">RECORDING_API</a></code></li><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#SESSIONS_API">SESSIONS_API</a></code></li><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#HISTORY_API">HISTORY_API</a></code></li><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#BLE_API">BLE_API</a></code></li><li><code><a href="/reference/com/google/android/gms/fitness/Fitness.html#CONFIG_API">CONFIG_API</a></code></li>
</ul>
</div>
</div>
</div>
<A NAME="BLE_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
BLE_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code>.
</p></div>
</div>
</div>
<A NAME="BleApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a>
</span>
BleApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">Google Fit BLE API</a></code>.
</p></div>
</div>
</div>
<A NAME="CONFIG_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
CONFIG_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/ConfigApi.html">ConfigApi</a></code>.
</p></div>
</div>
</div>
<A NAME="ConfigApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/ConfigApi.html">ConfigApi</a>
</span>
ConfigApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/ConfigApi.html">Google Fit Config API</a></code>.
</p></div>
</div>
</div>
<A NAME="HISTORY_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
HISTORY_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/HistoryApi.html">HistoryApi</a></code>.
</p></div>
</div>
</div>
<A NAME="HistoryApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/HistoryApi.html">HistoryApi</a>
</span>
HistoryApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/HistoryApi.html">Google Fit History API</a></code>.
</p></div>
</div>
</div>
<A NAME="RECORDING_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
RECORDING_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">RecordingApi</a></code>.
</p></div>
</div>
</div>
<A NAME="RecordingApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/RecordingApi.html">RecordingApi</a>
</span>
RecordingApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">Google Fit Recording API</a></code>.
</p></div>
</div>
</div>
<A NAME="SCOPE_ACTIVITY_READ"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_ACTIVITY_READ
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read access to activity-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SAMPLE">activity_sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">activity_segment</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_CONSUMED">calories.consumed</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_EXPENDED">calories.expended</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CADENCE">cycling.pedaling.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CUMULATIVE">cycling.pedaling.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_REVOLUTION">cycling.whell_revolution.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_RPM">cycling.whell_revolution.rpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_POWER_SAMPLE">power.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.delta</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SCOPE_ACTIVITY_READ_WRITE"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_ACTIVITY_READ_WRITE
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read/write access to activity-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SAMPLE">activity_sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">activity_segment</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_CONSUMED">calories.consumed</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CALORIES_EXPENDED">calories.expended</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CADENCE">cycling.pedaling.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_PEDALING_CUMULATIVE">cycling.pedaling.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_REVOLUTION">cycling.whell_revolution.cumulative</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_CYCLING_WHEEL_RPM">cycling.whell_revolution.rpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_POWER_SAMPLE">power.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.cadence</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_STEP_COUNT_DELTA">step_count.delta</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SCOPE_BODY_READ"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_BODY_READ
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read access to the biometric data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_BODY_FAT_PERCENTAGE">body.fat.percentage</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEART_RATE_BPM">heart_rate.bpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEIGHT">height</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_WEIGHT">weight</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SCOPE_BODY_READ_WRITE"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_BODY_READ_WRITE
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read/write access to biometric data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_BODY_FAT_PERCENTAGE">body.fat.percentage</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEART_RATE_BPM">heart_rate.bpm</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_HEIGHT">height</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_WEIGHT">weight</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SCOPE_LOCATION_READ"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_LOCATION_READ
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read access to location-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_DISTANCE_DELTA">distance.delta</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_LOCATION_SAMPLE">location.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_SPEED">speed</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SCOPE_LOCATION_READ_WRITE"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
SCOPE_LOCATION_READ_WRITE
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Scope for read/write access to location-related data types in Google Fit, which include:
<ul>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_DISTANCE_DELTA">distance.delta</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_LOCATION_SAMPLE">location.sample</a></code>
<li><code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_SPEED">speed</a></code>
</ul>
</p></div>
</div>
</div>
<A NAME="SENSORS_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
SENSORS_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">SensorsApi</a></code>.
</p></div>
</div>
</div>
<A NAME="SESSIONS_API"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>&lt;<a href="/reference/com/google/android/gms/common/api/Api.ApiOptions.NoOptions.html">Api.ApiOptions.NoOptions</a>&gt;
</span>
SESSIONS_API
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Token to pass to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api<? extends com.google.android.gms.common.api.Api.ApiOptions.NotRequiredOptions>)">addApi(Api<? extends Api.ApiOptions.NotRequiredOptions>)</a></code> to enable <code><a href="/reference/com/google/android/gms/fitness/SessionsApi.html">SessionsApi</a></code>.
</p></div>
</div>
</div>
<A NAME="SensorsApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/SensorsApi.html">SensorsApi</a>
</span>
SensorsApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">Google Fit Sensors API</a></code>.
</p></div>
</div>
</div>
<A NAME="SessionsApi"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
final
<a href="/reference/com/google/android/gms/fitness/SessionsApi.html">SessionsApi</a>
</span>
SessionsApi
</h4>
<div class="api-level">
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Entry point to the <code><a href="/reference/com/google/android/gms/fitness/SessionsApi.html">Google Fit Sessions API</a></code>.
</p></div>
</div>
</div>
<!-- Public ctors -->
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<h2>Public Methods</h2>
<A NAME="getEndTime(android.content.Intent, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
long
</span>
<span class="sympad">getEndTime</span>
<span class="normal">(Intent intent, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Retrieves the end time extra from the given intent.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>intent</td>
<td>the intent to extract the end time from</td>
</tr>
<tr>
<th>timeUnit</td>
<td>the desired time unit for the returned end time</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>the end time, in time unit since epoch, or <code>-1</code> if not found
</li></ul>
</div>
</div>
</div>
<A NAME="getStartTime(android.content.Intent, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
static
long
</span>
<span class="sympad">getStartTime</span>
<span class="normal">(Intent intent, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Retrieves the start time extra from the given intent.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>intent</td>
<td>the intent to extract the start time from</td>
</tr>
<tr>
<th>timeUnit</td>
<td>the desired time unit for the returned start time</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>the start time, in time unit since epoch, or <code>-1</code> if not found
</li></ul>
</div>
</div>
</div>
<!-- ========= METHOD DETAIL ======== -->
<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
<div id="copyright">
Except as noted, this content is licensed under <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
</div>
<div id="footerlinks">
<p>
<a href="/about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
<a href="/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
<a href="/support.html">Support</a>
</p>
</div>
</div> <!-- end footer -->
</div> <!-- jd-content -->
</div><!-- end doc-content -->
</div> <!-- end body-content -->
</body>
</html>