blob: 53ef2cb2ebfea4d9013c8a4805618e1efde27f6b [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>DataReadRequest.Builder | 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">DataReadRequest.Builder</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/safetynet/index.html">
<span class="en">SafetyNet</span>
</a></div>
<ul>
<li>
<a href="/google/play/safetynet/start.html">
<span class="en">Getting Started</span>
</a>
</li>
</ul>
</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="#pubctors">Ctors</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
static
class
<h1 itemprop="name">DataReadRequest.Builder</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.request.DataReadRequest.Builder</td>
</tr>
</table>
<div class="jd-descr">
<h2>Class Overview</h2>
<p itemprop="articleBody">Builder used to create new DataReadRequests.
</p>
</div><!-- jd-descr -->
<div class="jd-descr">
<h2>Summary</h2>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#DataReadRequest.Builder()">DataReadRequest.Builder</a></span>()</nobr>
</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>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#aggregate(com.google.android.gms.fitness.data.DataType, com.google.android.gms.fitness.data.DataType)">aggregate</a></span>(<a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> inputDataType, <a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> outputDataType)</nobr>
<div class="jd-descrdiv">
Adds the default data source for the given aggregate <code>dataType</code> to this request
and sets the output aggregate data type to be returned.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#aggregate(com.google.android.gms.fitness.data.DataSource, com.google.android.gms.fitness.data.DataType)">aggregate</a></span>(<a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> dataSource, <a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> outputDataType)</nobr>
<div class="jd-descrdiv">
Adds a specific data source we want aggregate data from for this request and also sets
the output aggregate data type that will be returned.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivitySegment(int, java.util.concurrent.TimeUnit)">bucketByActivitySegment</a></span>(int minDuration, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code>, sets the minimum duration
of each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for the bucket.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivitySegment(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)">bucketByActivitySegment</a></span>(int minDuration, TimeUnit timeUnit, <a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> activityDataSource)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code>, sets the minimum duration
of each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for the bucket.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivityType(int, java.util.concurrent.TimeUnit)">bucketByActivityType</a></span>(int minDuration, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_TYPE">TYPE_ACTIVITY_TYPE</a></code>, sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for computing the buckets.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivityType(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)">bucketByActivityType</a></span>(int minDuration, TimeUnit timeUnit, <a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> activityDataSource)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_TYPE">TYPE_ACTIVITY_TYPE</a></code>, sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for computing the buckets and sets the
activity data source to be used to read activity segments from.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketBySession(int, java.util.concurrent.TimeUnit)">bucketBySession</a></span>(int minDuration, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_SESSION">TYPE_SESSION</a></code> and sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/Session.html">Session</a></code> for the bucket.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByTime(int, java.util.concurrent.TimeUnit)">bucketByTime</a></span>(int duration, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_TIME">TYPE_TIME</a></code> and sets the duration of each bucket.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.html">DataReadRequest</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#build()">build</a></span>()</nobr>
<div class="jd-descrdiv">
Finishes building and returns the request.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#enableServerQueries()">enableServerQueries</a></span>()</nobr>
<div class="jd-descrdiv">
Enable querying the Google Fit server to fetch query results,
in case the local store doesn't have data for the full requested time range.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#read(com.google.android.gms.fitness.data.DataType)">read</a></span>(<a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> dataType)</nobr>
<div class="jd-descrdiv">
Adds the default data source to read for the given <code>dataType</code> to this request.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#read(com.google.android.gms.fitness.data.DataSource)">read</a></span>(<a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> dataSource)</nobr>
<div class="jd-descrdiv">
Adds a specific data source we want to read data from to this request.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#setLimit(int)">setLimit</a></span>(int limit)</nobr>
<div class="jd-descrdiv">
Limits results to the latest <code>limit</code> data points.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#setTimeRange(long, long, java.util.concurrent.TimeUnit)">setTimeRange</a></span>(long start, long end, TimeUnit timeUnit)</nobr>
<div class="jd-descrdiv">
Sets the time range for our query.
</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 -->
<!-- Fields -->
<!-- Public ctors -->
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<h2>Public Constructors</h2>
<A NAME="DataReadRequest.Builder()"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
</span>
<span class="sympad">DataReadRequest.Builder</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<h2>Public Methods</h2>
<A NAME="aggregate(com.google.android.gms.fitness.data.DataType, com.google.android.gms.fitness.data.DataType)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">aggregate</span>
<span class="normal">(<a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> inputDataType, <a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> outputDataType)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Adds the default data source for the given aggregate <code>dataType</code> to this request
and sets the output aggregate data type to be returned. For a list of valid output
aggregate data types for a given input data type
see <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#getAggregatesForInput(com.google.android.gms.fitness.data.DataType)">getAggregatesForInput(DataType)</a></code>.
<p>
The default data source is selected based on all available sources for the given data
type, and may be averaged or filtered. Aggregation should be requested in conjunction
with one of the bucketing strategy: by time, session or activity. At least one valid
detailed data source or aggregate data source should be specified in the request
<p>
This method can be used instead of <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#aggregate(com.google.android.gms.fitness.data.DataSource, com.google.android.gms.fitness.data.DataType)">aggregate(DataSource, DataType)</a></code>
when the application is not interested in a specific data source.
<p>
The resulting aggregated data can be queried via
<code><a href="/reference/com/google/android/gms/fitness/result/DataReadResult.html#getBuckets()">getBuckets()</a></code> and <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#getDataSet(com.google.android.gms.fitness.data.DataType)">getDataSet(DataType)</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>inputDataType</td>
<td>the input data type we're aggregating</td>
</tr>
<tr>
<th>outputDataType</td>
<td>the output data type that will be returned</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if the data type is already requested as detailed</td>
</tr>
<tr>
<th>IllegalArgumentException</td>
<td>if the input data type is not supported for aggregation
or if the output data type is invalid</td>
</tr>
<tr>
<th>NullPointerException</td>
<td>if the data type is null
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="aggregate(com.google.android.gms.fitness.data.DataSource, com.google.android.gms.fitness.data.DataType)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">aggregate</span>
<span class="normal">(<a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> dataSource, <a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> outputDataType)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Adds a specific data source we want aggregate data from for this request and also sets
the output aggregate data type that will be returned. For a list of valid output
aggregate data types for a given input data type
see <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#getAggregatesForInput(com.google.android.gms.fitness.data.DataType)">getAggregatesForInput(DataType)</a></code>.
<p>
Aggregation should be requested in conjunction with one of the bucketing strategies: by
time, session or activity. At least one valid detailed data source or aggregate data
source should be specified in the request.
<p>
The resulting aggregated data can be queried via
<code><a href="/reference/com/google/android/gms/fitness/result/DataReadResult.html#getBuckets()">getBuckets()</a></code> and <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#getDataSet(com.google.android.gms.fitness.data.DataType)">getDataSet(DataType)</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>dataSource</td>
<td>the data source we're reading for aggregate data</td>
</tr>
<tr>
<th>outputDataType</td>
<td>the output data type that will be returned in the result</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if the data source is already requested as detailed</td>
</tr>
<tr>
<th>IllegalArgumentException</td>
<td>if the input data type is not supported for aggregation
or if the output aggregate data type is invalid</td>
</tr>
<tr>
<th>NullPointerException</td>
<td>if the data source is null
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketByActivitySegment(int, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketByActivitySegment</span>
<span class="normal">(int minDuration, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code>, sets the minimum duration
of each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for the bucket.
<p>
An <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> represents a continuous time interval with a
single activity value. In this case, each <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html">Bucket</a></code> will represent an individual
activity segment which lies inside the time interval of the request. For instance,
if the user had two separate activity segments for walking, one for 1km and another for
2km, the result will be two buckets one with distance value of 1km and another with
distance value of 2km.
<p>
If no activity segments exist recorded for specific time intervals of the read query,
a Bucket corresponding to activity type
<code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#UNKNOWN">UNKNOWN</a></code> will be used instead.
For instance, if there is an activity segment for biking from time [20, 30] seconds
and for running from time [40, 50] seconds, the result for a read query over [0, 60]
will have the following buckets:
<ul>
<li><b>Bucket 1</b> Time Interval: [0, 20] Activity: UNKNOWN
<li><b>Bucket 2</b> Time Interval: [20, 30] Activity: BIKING
<li><b>Bucket 3</b> Time Interval: [30, 40] Activity: UNKNOWN
<li><b>Bucket 4</b> Time Interval: [40, 50] Activity: RUNNING
<li><b>Bucket 5</b> Time Interval: [50, 60] Activity: UNKNOWN
</ul>
<p>
Only activity segments of duration longer than <code>minDuration</code> are chosen for
bucketing.
<p>
By default, activity segments are chosen from the default data source. To use a
specific data source, use <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivitySegment(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)">bucketByActivitySegment(int, TimeUnit, DataSource)</a></code>.
<p>
Detailed data of the aggregate type(s) specified in the request over time interval of
each bucket will be aggregated and returned. Each bucket will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code>
of aggregated data for each requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid minDuration is specified
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketByActivitySegment(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketByActivitySegment</span>
<span class="normal">(int minDuration, TimeUnit timeUnit, <a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> activityDataSource)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code>, sets the minimum duration
of each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for the bucket.
<p>
An <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> represents a continuous time interval with a
single activity value. In this case, each <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html">Bucket</a></code> will represent an individual
activity segment which lies inside the time interval of the request. For instance,
if the user had two separate activity segments for walking, one for 1km and another for
2km, the result will be two buckets one with distance value of 1km and another with
distance value of 2km.
<p>
If no activity segments exist recorded for specific time intervals of the read query,
a Bucket corresponding to activity type
<code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#UNKNOWN">UNKNOWN</a></code> will be
added for each missing interval. For instance, if there is an activity segment
for biking from time [20, 30] seconds and for running from time [40, 50] seconds,
the result for a read query over [0, 60] will have the following buckets:
<ul>
<li><b>Bucket 1</b> Time Interval: [0, 20] Activity: UNKNOWN
<li><b>Bucket 2</b> Time Interval: [20, 30] Activity: BIKING
<li><b>Bucket 3</b> Time Interval: [30, 40] Activity: UNKNOWN
<li><b>Bucket 4</b> Time Interval: [40, 50] Activity: RUNNING
<li><b>Bucket 5</b> Time Interval: [50, 60] Activity: UNKNOWN
</ul>
<p>
Only activity segments of duration longer than <code>minDuration</code> are chosen for
bucketing.
<p>
The activity segments are chosen from the specified <code>activityDataSource</code>. To use
the default activity data source, use <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivitySegment(int, java.util.concurrent.TimeUnit)">bucketByActivitySegment(int, TimeUnit)</a></code>.
<p>
Detailed data of the aggregate type(s) specified in the request over time interval of
each bucket will be aggregated and returned. Each bucket will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code>
of aggregated data for each requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid minDuration is specified
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketByActivityType(int, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketByActivityType</span>
<span class="normal">(int minDuration, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_TYPE">TYPE_ACTIVITY_TYPE</a></code>, sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for computing the buckets.
<p>
In this case, each <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html">Bucket</a></code> will represent an activity type,
and be comprised of aggregated data over all individual activity segments of this
activity which lie inside the time interval of the request. For instance,
if the user had two separate activity segments of walking during the time interval,
one for a distance of 1km and another for a distance of 2km,
the result will be one activity bucket with a single aggregate data point for distance
with a value of 3km.
<p>
If no activity segments are recorded for specific time intervals of the read query,
segments of type <code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#UNKNOWN">UNKNOWN</a></code>
will be added for these intervals and used to compute an aggregate bucket of activity
type Unknown.
<p>
Only activity segments of duration longer than <code>minDuration</code> are chosen for
bucketing.
<p>
By default, activity segments are chosen from the default data source. To use a
specific data source, use <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivitySegment(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)">bucketByActivitySegment(int, TimeUnit, DataSource)</a></code>.
<p>
Detailed data of the aggregate type(s) specified in the request over time interval of
each bucket will be aggregated and returned. Each bucket will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code>
of aggregated data for each requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid minDuration is specified.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketByActivityType(int, java.util.concurrent.TimeUnit, com.google.android.gms.fitness.data.DataSource)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketByActivityType</span>
<span class="normal">(int minDuration, TimeUnit timeUnit, <a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> activityDataSource)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_ACTIVITY_TYPE">TYPE_ACTIVITY_TYPE</a></code>, sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html#TYPE_ACTIVITY_SEGMENT">TYPE_ACTIVITY_SEGMENT</a></code> for computing the buckets and sets the
activity data source to be used to read activity segments from.
<p>
In this case, each <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html">Bucket</a></code> will represent an activity type,
and be comprised of aggregated data over all individual activity segments of this
activity which lie inside the time interval of the request. For instance,
if the user had two separate activity segments of walking during the time interval,
one for a distance of 1km and another for a distance of 2km,
the result will be one activity bucket with a single aggregate data point for distance
with a value of 3km.
<p>
If no activity segments are recorded for specific time intervals of the read query,
segments of type <code><a href="/reference/com/google/android/gms/fitness/FitnessActivities.html#UNKNOWN">UNKNOWN</a></code>
will be added for these intervals and used to compute an aggregate bucket of activity
type Unknown.
<p>
Only activity segments of duration longer than <code>minDuration</code> are chosen for
bucketing.
<p>
The activity segments are chosen from the specified <code>activityDataSource</code>. To use
the default activity segment data source
use <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#bucketByActivityType(int, java.util.concurrent.TimeUnit)">bucketByActivityType(int, TimeUnit)</a></code>.
<p>
Detailed data of the aggregate type(s) specified in the request over time interval of
each bucket will be aggregated and returned. Each bucket will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code>
of aggregated data for each requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid minDuration is specified or if an invalid
activity data source is specified.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketBySession(int, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketBySession</span>
<span class="normal">(int minDuration, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_SESSION">TYPE_SESSION</a></code> and sets the minimum duration of
each <code><a href="/reference/com/google/android/gms/fitness/data/Session.html">Session</a></code> for the bucket.
<p>
A <code><a href="/reference/com/google/android/gms/fitness/data/Session.html">Session</a></code> represents a time interval with associate meta data to store
user-visible groups of related data. In this case, each bucket will signify a session
which lies inside the time interval of the request.
<p>
Detailed data of the aggregate type(s) specified in the request over time interval of
each bucket will be aggregated and returned. Each bucket will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code>
of aggregated data for each requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>..</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid minDuration is specified
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="bucketByTime(int, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">bucketByTime</span>
<span class="normal">(int duration, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Specifies bucket type as <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html#TYPE_TIME">TYPE_TIME</a></code> and sets the duration of each bucket.
<p>
The detailed data from the Google Fit store across the time interval of the request is
divided into sub-intervals of length <code>duration</code>, and aggregation is then performed
over each sub-interval to return one <code><a href="/reference/com/google/android/gms/fitness/data/Bucket.html">Bucket</a></code> of aggregated data per sub-interval.
<p>
Aggregation is performed for data type(s) specified in the request. Each bucket
will have one <code><a href="/reference/com/google/android/gms/fitness/data/DataSet.html">DataSet</a></code> of aggregated data per requested aggregate <code><a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if another bucket type is already specified
in the request or if an invalid duration is specified.
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="build()"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.html">DataReadRequest</a>
</span>
<span class="sympad">build</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Finishes building and returns the request.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if the builder doesn't have enough state to
create a valid request
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="enableServerQueries()"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">enableServerQueries</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Enable querying the Google Fit server to fetch query results,
in case the local store doesn't have data for the full requested time range.
Server results will be combined with local results into one DataSet.
<p/>
Note that querying the server adds latency, specially under poor network conditions.
Also note that attempting to query the server when there is no network connection may
result in a
<a href="/reference/com/google/android/gms/fitness/FitnessStatusCodes.html#TRANSIENT_ERROR">transient error</a></a>.
Server queries are off by default.
</p></div>
</div>
</div>
<A NAME="read(com.google.android.gms.fitness.data.DataType)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">read</span>
<span class="normal">(<a href="/reference/com/google/android/gms/fitness/data/DataType.html">DataType</a> dataType)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Adds the default data source to read for the given <code>dataType</code> to this request. The
default data source is selected based on all available sources for the given data
type, and may be averaged or filtered. At least one valid detailed data source or
aggregate data source should be specified in the request.
<p>
This method can be used instead of <code><a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html#read(com.google.android.gms.fitness.data.DataSource)">read(DataSource)</a></code> when the
application is not interested in a specific data source.
<p>
The resulting unaggregated data can be queried via
<code><a href="/reference/com/google/android/gms/fitness/result/DataReadResult.html#getDataSet(com.google.android.gms.fitness.data.DataType)">getDataSet(DataType)</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>dataType</td>
<td>the data type we're reading</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalStateException</td>
<td>if the data type is already requested as aggregate</td>
</tr>
<tr>
<th>NullPointerException</td>
<td>if the data type is null
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="read(com.google.android.gms.fitness.data.DataSource)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">read</span>
<span class="normal">(<a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSource</a> dataSource)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Adds a specific data source we want to read data from to this request. At least one
valid detailed data source or aggregate data source should be specified in the request.
<p>
The resulting unaggregated data can be queried via
<code><a href="/reference/com/google/android/gms/fitness/result/DataReadResult.html#getDataSet(com.google.android.gms.fitness.data.DataSource)">getDataSet(DataSource)</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>dataSource</td>
<td>the data source we're reading</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
<th>IllegalArgumentException</td>
<td>if the data source is already requested as aggregate</td>
</tr>
<tr>
<th>NullPointerException</td>
<td>if the data source is null
</td>
</tr>
</table>
</div>
</div>
</div>
<A NAME="setLimit(int)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">setLimit</span>
<span class="normal">(int limit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Limits results to the latest <code>limit</code> data points. This parameter is ignored for
aggregated queries. By default there is no limit.
<p>
This method is useful to reduce the amount of sent data as well as to support scenarios
like requesting the current (limit == 1 to get the latest value) weight or height.
</p></div>
</div>
</div>
<A NAME="setTimeRange(long, long, java.util.concurrent.TimeUnit)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
<a href="/reference/com/google/android/gms/fitness/request/DataReadRequest.Builder.html">DataReadRequest.Builder</a>
</span>
<span class="sympad">setTimeRange</span>
<span class="normal">(long start, long end, TimeUnit timeUnit)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Sets the time range for our query. Defined start and end times are required for every
read query.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>start</td>
<td>a start time, in the given unit since epoch, inclusive</td>
</tr>
<tr>
<th>end</td>
<td>an end time, in the given unit since epoch, inclusive</td>
</tr>
<tr>
<th>timeUnit</td>
<td>the unit of the start and end timestamps
</td>
</tr>
</table>
</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>