View
379
Download
0
Category
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