Android Google Fit

Preview:

Citation preview

Google Fit

FiNC.Inc Yuki Nanri

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

Introduction

• Yuki Nanri (@neonankiti) • Bison • FiNC Android Developer

What is FiNC

Digital Healthcare Company

We have various specialists such as doctors, pharmacists, personal trainers, nutritionists, researchers, and engineers

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

What you can learn today

Whole Picture of Google Fit

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

What is Google Fit

The Healthcare Platform Sharing Data Through APIs

• aggregates Any Kind of Healthcare Data

• shares Them with APIs

• can Access from Multiple Platforms

• keeps Some Records automatically

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

How Google Fit Works

reference: https://developers.google.com/fit/overview

Components

• The Fitness Store

• The Sensor Framework

• Permissions and User Controls

• Google Fit APIs

Main Components of Google Fit

Points of Today

Focus on Fitness APIs

reference: https://developers.google.com/fit/android/

• Sensor API

• Record API

• History API • Session API

• Others(BLE, Config APIs)

Before Discussing APIs

There are 3 Fitness Data Types

• Public Data Types

• Private Custom Data Types

• Shareable Data Types

Fitness APIs

Sensor API

reference: https://developers.google.com/fit/android/

• read Raw Sensor in Real Time

• list Data Sources

• use Listeners

Fitness APIs

reference: https://developers.google.com/fit/android/

• store Data of Sensor by Subscriptions.

• use Multiple Subscriptions at the same time

• the Data Stored will be Here Used from History API

Record API

Fitness APIs

reference: https://developers.google.com/fit/android/

• can Use Reading, Inserting and Deleting Data

• can Use Synchronously and Asynchronously

• arrange Period Freely

History API

Fitness APIs

Session API

reference: https://developers.google.com/fit/android/

• create Session with Record API

• read Fitness Data Using Session

• show Sessions in Other Apps

• use Session Broadcast Intents

Preparation

reference: https://developers.google.com/fit/android/

• Install Google Play Services

• Get a Google Account

• Create an OAuth Client ID

• Register the Public Certificate

• Add Google Play Service in Build Gradle

• Enjoy Fit APIs !!

All You Have to Do is

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

Use Case in FiNC

Many Tasks that Logs Users Health

Weight Sleeping Time Food

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

Steps

Step2 Use Location API

Step1 Create Google API Client

• add API Types • add Scopes(Permission) • add Callbacks

Step1 Create Google API Client

private void buildFitnessClient() { mClient = new GoogleApiClient.Builder(this) // can add multiple api types .addApi(Fitness.SENSORS_API) .addApi(Fitness.RECORDING_API) .addApi(Fitness.HISTORY_API) // can add multiple scopes .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) .addScope(new Scope(Scopes.FITNESS_LOCATION_READ)) .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE)) .addScope(new Scope(Scopes.FITNESS_BODY_READ_WRITE)) // .addConnectionCallbacks( new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(Bundle bundle) { Log.i(TAG, "Connected!!!"); // use fitness apis freely!! } @Override public void onConnectionSuspended(int i) { } } ) .addOnConnectionFailedListener( new GoogleApiClient.OnConnectionFailedListener() { // Called whenever the API client fails to connect. @Override public void onConnectionFailed(ConnectionResult result) { } } ) .build(); }

Step2 Use Location API

Fitness.SensorsApi.findDataSources(mClient, new DataSourcesRequest.Builder() // at least one datatype must be specified. .setDataTypes(DataType.TYPE_LOCATION_SAMPLE) .setDataSourceTypes(DataSource.TYPE_RAW) .build()) .setResultCallback(new ResultCallback<DataSourcesResult>() { @Override public void onResult(DataSourcesResult dataSourcesResult) { for (DataSource dataSource : dataSourcesResult.getDataSources()) { Log.i(TAG, "Data source found: " + dataSource.toString()); Log.i(TAG, "Data Source type: " + dataSource.getDataType().getName()); if (dataSource.getDataType().equals(DataType.TYPE_LOCATION_SAMPLE) && mListener == null) { Log.i(TAG, "Data source for LOCATION_SAMPLE found! Registering."); registerFitnessDataListener(dataSource, DataType.TYPE_LOCATION_SAMPLE); } } } });

Step2 Use Location API

private OnDataPointListener mListener;

private float latitude, longitude, altitude, accuracy; private void registerFitnessDataListener(DataSource dataSource, DataType dataType) { mListener = new OnDataPointListener() { @Override public void onDataPoint(DataPoint dataPoint) { for (Field field : dataPoint.getDataType().getFields()) { final Value val = dataPoint.getValue(field); Log.i(TAG, "Detected DataPoint field: " + field.getName()); Log.i(TAG, "Detected DataPoint value: " + val); switch (field.getName()) { case "latitude": latitude = val.asFloat(); break; case "longitude": longitude = val.asFloat(); break; case "altitude": altitude = val.asFloat(); break; case "accuracy": accuracy = val.asFloat(); break; } } runOnUiThread(new Runnable() { @Override public void run() { latitudeView.setText(String.valueOf(latitude)); longitudeView.setText(String.valueOf(longitude)); altitudeView.setText(String.valueOf(altitude)); accuracyView.setText(String.valueOf(accuracy)); } }); } }; //register listener

Introduction What you can learn today What is Google Fit How Google Fit works Use Case in FiNC Implementation Recruitment

Recruitment・Good knowledge of Android Application

・Strong Coding Skills and Computer Science

 Fundamentals

・Experience Shipping Products

ç√

FiNC.Inc Yuki Nanri

Thank You

Recommended