blob: 699e49ec84c55de04b3fd6531babc45deefa551d [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>BleApi | 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=4" 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/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">BleApi</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">
<span class="en">Google Play In-app Billing</span></a>
</div>
<ul>
<li><a href="/google/play/billing/billing_overview.html">
<span class="en">Overview</span></a>
</li>
<li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
<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">
<span class="en">Security and Design</span></a>
</li>
<li><a href="/google/play/billing/billing_testing.html">
<span class="en">Testing In-app Billing</span></a>
</li>
<li><a href="/google/play/billing/billing_admin.html">
<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/notifications.html">
<span class="en">User Notifications</span></a>
</li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
<li><a href="/google/gcm/c2dm.html">
<span class="en">Migration</span></a>
</li>
<li id="gcm-tree-list" class="nav-section">
<div class="nav-section-header">
<a href="/reference/gcm-packages.html">
<span class="en">Reference</span>
</a>
<div>
</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">
</div><!-- end sum-details-links -->
<div class="api-level">
</div>
</div><!-- end api-info-block -->
<!-- ======== START OF CLASS DATA ======== -->
<div id="jd-header">
public
interface
<h1 itemprop="name">BleApi</h1>
</div><!-- end header -->
<div id="naMessage"></div>
<div id="jd-content" class="api apilevel-">
<table class="jd-inheritance-table">
<tr>
<td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.fitness.BleApi</td>
</tr>
</table>
<div class="jd-descr">
<h2>Class Overview</h2>
<p itemprop="articleBody">API for scanning, claiming, and using Bluetooth Low Energy devices in Google Fit.
<p>
Most BLE devices will accept connections from any other device, without the need for pairing.
To prevent Google Fit from using data from a device the user does not own,
we require a device to be claimed before it can be used in the platform.
<p>
The API supports scanning and claiming devices. Once a device is claimed,
its data sources are exposed via the <code><a href="/reference/com/google/android/gms/fitness/SensorsApi.html">Sensors</a></code> and
<code><a href="/reference/com/google/android/gms/fitness/RecordingApi.html">Recording</a></code> APIs, similar to local sensors.
<p>
The BLE API should be accessed from the <code><a href="/reference/com/google/android/gms/fitness/Fitness.html">Fitness</a></code> entry point. Example:
<pre>
GoogleApiClient client = new GoogleApiClient.Builder(context)
.addApi(Fitness.API)
...
.build();
client.connect();
PendingResult&lt;Status&gt; pendingResult = Fitness.BleApi.startBleScan(
client,
new StartBleScanRequest.Builder()
.setDataTypes(DataTypes.STEP_COUNT_DELTA)
.setBleScanCallback(bleScanCallback)
.build());
</pre>
<h2>Enabling Bluetooth</h2>
Many methods in this class require Bluetooth to be enabled. In case it isn't,
the method will return a result with status code set to
<code><a href="/reference/com/google/android/gms/fitness/FitnessStatusCodes.html#DISABLED_BLUETOOTH">DISABLED_BLUETOOTH</a></code>.
In this case, the app should use <code><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code> to show
the dialog allowing the user to enable Bluetooth.
<p>
Example:
<pre>
public class MyActivity extends FragmentActivity {
private static final int REQUEST_BLUETOOTH = 1001;
private GoogleApiClient mGoogleApiClient;
...
private final ResultCallback<Status> mResultCallback = new ResultCallback<Status>() {
&#064;Override
public void onResult(Status status) {
...
if (!status.isSuccess()) {
switch (status.getStatusCode()) {
case FitnessStatusCodes.DISABLED_BLUETOOTH:
try {
status.startResolutionForResult(
MyActivity.this, REQUEST_BLUETOOTH);
} catch (SendIntentException e) {
...
}
break;
...
}
}
}
};
&#064;Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_BLUETOOTH:
startBleScan();
break;
...
}
}
private void startBleScan() {
StartBleScanRequest request = ...
PendingResult<Status> result =
Fitness.BleApi.startBleScan(mGoogleApiClient, request);
result.setResultCallback(mResultCallback);
}
}
</pre>
</p>
</div><!-- jd-descr -->
<div class="jd-descr">
<h2>Summary</h2>
<!-- ========== 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>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.data.BleDevice)">claimBleDevice</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/data/BleDevice.html">BleDevice</a> bleDevice)</nobr>
<div class="jd-descrdiv">
Associates a BLE device with the current user.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, java.lang.String)">claimBleDevice</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, String deviceAddress)</nobr>
<div class="jd-descrdiv">
Associates a BLE device with the current user, using only the device address.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/fitness/result/BleDevicesResult.html">BleDevicesResult</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#listClaimedBleDevices(com.google.android.gms.common.api.GoogleApiClient)">listClaimedBleDevices</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client)</nobr>
<div class="jd-descrdiv">
Lists all BLE devices that are associated with the current user.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#startBleScan(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.request.StartBleScanRequest)">startBleScan</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/request/StartBleScanRequest.html">StartBleScanRequest</a> request)</nobr>
<div class="jd-descrdiv">
Starts a scan for BLE devices compatible with Google Fit.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#stopBleScan(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.request.BleScanCallback)">stopBleScan</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/request/BleScanCallback.html">BleScanCallback</a> callback)</nobr>
<div class="jd-descrdiv">
Stops a BLE devices scan.
</div>
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#unclaimBleDevice(com.google.android.gms.common.api.GoogleApiClient, java.lang.String)">unclaimBleDevice</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, String deviceAddress)</nobr>
<div class="jd-descrdiv">
Disassociates a BLE device with the current user, using the device's address.
</div>
</td></tr>
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/fitness/BleApi.html#unclaimBleDevice(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.data.BleDevice)">unclaimBleDevice</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/data/BleDevice.html">BleDevice</a> bleDevice)</nobr>
<div class="jd-descrdiv">
Disassociates a BLE device with the current user.
</div>
</td></tr>
</table>
</div><!-- jd-descr (summary) -->
<!-- Details -->
<!-- XML Attributes -->
<!-- Enum Values -->
<!-- Constants -->
<!-- Fields -->
<!-- Public ctors -->
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<h2>Public Methods</h2>
<A NAME="claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.data.BleDevice)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">claimBleDevice</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/data/BleDevice.html">BleDevice</a> bleDevice)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Associates a BLE device with the current user. When a device is claimed by a user,
the device will be available through Google Fit.
<p>
Prior to calling this method, you should stop any active Bluetooth scans you have started.
In order to prevent Bluetooth issues, the application should avoid connecting directly to
the device, but instead using Google Fit to do so.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. Must be connected at the time of this call.</td>
</tr>
<tr>
<th>bleDevice</td>
<td>the device to claim</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing if the claim was made successfully
</li></ul>
</div>
</div>
</div>
<A NAME="claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, java.lang.String)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">claimBleDevice</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, String deviceAddress)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Associates a BLE device with the current user, using only the device address. When a device
is claimed by a user, the device will be available through Google Fit. If a full
<code><a href="/reference/com/google/android/gms/fitness/data/BleDevice.html">BleDevice</a></code> is available, calling <code><a href="/reference/com/google/android/gms/fitness/BleApi.html#claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.data.BleDevice)">claimBleDevice(GoogleApiClient, BleDevice)</a></code>
is preferred.
<p>
Prior to calling this method, you should stop any active Bluetooth scans you have started.
In order to prevent Bluetooth issues, the application should avoid connecting directly to
the device, but instead using Google Fit to do so.
<p>
Since this method requires Bluetooth, please refer to <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code> doc about handling
disabled Bluetooth.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. Must be connected at the time of this call.</td>
</tr>
<tr>
<th>deviceAddress</td>
<td>the hardware address of the device. A scan will be performed to find
a matching device.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing if the claim was made successfully
</li></ul>
</div>
</div>
</div>
<A NAME="listClaimedBleDevices(com.google.android.gms.common.api.GoogleApiClient)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/fitness/result/BleDevicesResult.html">BleDevicesResult</a>&gt;
</span>
<span class="sympad">listClaimedBleDevices</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Lists all BLE devices that are associated with the current user.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. It does not need to be connected at the time of
this call, but the find operation will be delayed until the connection is complete.</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing found claimed BLE devices.
</li></ul>
</div>
</div>
</div>
<A NAME="startBleScan(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.request.StartBleScanRequest)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">startBleScan</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/request/StartBleScanRequest.html">StartBleScanRequest</a> request)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Starts a scan for BLE devices compatible with Google Fit. Results are returned
asynchronously through the BleScanCallback in the request. The callback's
<code><a href="/reference/com/google/android/gms/fitness/request/BleScanCallback.html#onDeviceFound(com.google.android.gms.fitness.data.BleDevice)">onDeviceFound(BleDevice)</a></code> method may be called multiple times, for each device
that is found.
<p>
This method will normally be used to present a list of devices to the user,
and to allow the user to pick a device to claim. Once the user selects a device or
dismisses the picker activity, the scan can be stopped using <code><a href="/reference/com/google/android/gms/fitness/BleApi.html#stopBleScan(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.request.BleScanCallback)">stopBleScan(GoogleApiClient, BleScanCallback)</a></code>, and
<code><a href="/reference/com/google/android/gms/fitness/BleApi.html#claimBleDevice(com.google.android.gms.common.api.GoogleApiClient, java.lang.String)">claimBleDevice(GoogleApiClient, String)</a></code> can be used to associate the selected device
with the user.
<p>
This scanning is battery-intensive, so try to minimize the amount of time scanning.
<p>
Since this method requires Bluetooth, please refer to <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code> doc about handling
disabled Bluetooth.
</p></div>
</div>
</div>
<A NAME="stopBleScan(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.request.BleScanCallback)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">stopBleScan</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/request/BleScanCallback.html">BleScanCallback</a> callback)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Stops a BLE devices scan. Should be called immediately after scanning is no longer needed.
<p>
If the scan is already stopped, or if it was never started,
this method will succeed silently.
<p>
Since this method requires Bluetooth, please refer to <code><a href="/reference/com/google/android/gms/fitness/BleApi.html">BleApi</a></code> doc about handling
disabled Bluetooth.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. It does not need to be connected at the time of
this call, but the stop scan operation will be delayed until the connection is complete.</td>
</tr>
<tr>
<th>callback</td>
<td>the callback originally used to start the scan</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing if the scan was stopped successfully
</li></ul>
</div>
</div>
</div>
<A NAME="unclaimBleDevice(com.google.android.gms.common.api.GoogleApiClient, java.lang.String)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">unclaimBleDevice</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, String deviceAddress)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Disassociates a BLE device with the current user, using the device's address. The device's
associated <code><a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSources</a></code> will no longer be available in Google Fit,
and all of the registrations for this device will be removed.
.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. Must be connected at the time of this call.</td>
</tr>
<tr>
<th>deviceAddress</td>
<td>the hardware address of the device</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing if the unclaim was made successfully
</li></ul>
</div>
</div>
</div>
<A NAME="unclaimBleDevice(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.fitness.data.BleDevice)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
abstract
<a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a>&lt;<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>&gt;
</span>
<span class="sympad">unclaimBleDevice</span>
<span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> client, <a href="/reference/com/google/android/gms/fitness/data/BleDevice.html">BleDevice</a> bleDevice)</span>
</h4>
<div class="api-level">
<div></div>
</div>
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Disassociates a BLE device with the current user. The device's associated
<code><a href="/reference/com/google/android/gms/fitness/data/DataSource.html">DataSources</a></code> will no longer be available in Google Fit, and
all of the registrations for this device will be removed.
.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
<th>client</td>
<td>an existing GoogleApiClient. Must be connected at the time of this call.</td>
</tr>
<tr>
<th>bleDevice</td>
<td>the device to unclaim</td>
</tr>
</table>
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>a pending result containing if the unclaim was made successfully
</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>