Courtesy: GitHub

Android Fit Sensors Api Sample

A simple example of how to use the Sensors API on the Android Fit platform.

Getting Started

This sample uses the Gradle build system. To build this project, use the "gradlew build" command or use "Import Project" in Android Studio.

NOTE: You must register an Android client underneath a Google Project in order for the Google Fit API to become available for your app. The process ensures your app has proper consent screen information for users to accept, among other things required to access Google APIs. See the instructions for more details: http://developers.google.com/fit/android/get-started

Support

The most common problem using these samples is a SIGN_IN_FAILED exception. Users can experience this after selecting a Google Account to connect to the FIT API. If you see the following in logcat output then make sure to register your Android app underneath a Google Project as outlined in the instructions for using this sample at: http://developers.google.com/fit/android/get-started

10-26 14:40:37.082 1858-2370/? E/MDM: [138] b.run: Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}

Use the following channels for support:

If you've found an error in this sample, please file an issue: https://github.com/googlesamples/android-fitness/issues

Patches are encouraged, and may be submitted according to the instructions in CONTRIB.md.

License

Copyright 2014 Google, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

compileSdkVersion 26

applicationId "com.google.android.gms.fit.samples.basicsensorsapi"

minSdkVersion 14

targetSdkVersion 26

versionCode 2

versionName "1.1"

compile "com.google.android.gms:play-services-fitness:${google_play_services_library}"

compile "com.google.android.gms:play-services-auth:${google_play_services_library}"

compile "com.android.support:appcompat-v7:${google_support_library}"

compile "com.android.support:design:${google_support_library}"

compile fileTree(dir: 'libs', include: ['*.jar'])

package com.google.android.gms.fit.samples.basicsensorsapi

uses-permission

  • android.permission.ACCESS_FINE_LOCATION

MainActivity

This sample demonstrates how to use the Sensors API of the Google Fit platform to find available data sources and to register/unregister listeners to those sources. It also demonstrates how to authenticate a user with Google Play Services.

A wrapper for {@link #findFitnessDataSources}. If the user account has OAuth permission, continue to {@link #findFitnessDataSources}, else request OAuth permission for the account.

Gets the {@link FitnessOptions} in order to check or request OAuth permission for the user.

Checks if user's account has OAuth permission to Fitness API.

Launches the Google SignIn activity to request OAuth permission for the user.

Finds available data sources and attempts to register on a specific {@link DataType}.

Registers a listener with the Sensors API for the provided {@link DataSource} and {@link DataType} combo.

Unregisters the listener with the Sensors API.

Initializes a custom log class that outputs both to in-app targets and logcat.

Returns the current state of the permissions needed.

Callback received when a permissions request has been completed.