GOOGLE FIT LÀ GÌ

Gần đây, chúng ta nghe thấy không ít xu hướng áp dụng mobile vào chăm lo sức khỏe đúng không? Google đã và đang cho ra mắt nền tảng Google Fit để cung cấp developer từ bỏ xây dựng ứng dụng sức khỏe. Vậy Google Fit là gì? biện pháp sử dụng như thế nào?

Bài viết này, họ sẽ cùng nhau mày mò xem Google Fit là gì? với tự xây cất một ứng dụng thực hiện Google fit.

Bạn đang xem: Google fit là gì

*


#Google Fit là gì?

Google Fit là một trong những phần trong gói Google Play Services, cho phép bạn cũng có thể theo dõi được sức khoẻ của fan dùng. Các dữ liệu họ có lấy được theo ngày cùng tuần mon năm tuỳ nhu yếu sử dụng.

Ngoài ra những dữ liệu trọn vẹn được lưu trữ trực tuyến đường và trọn vẹn uy tín và an toàn.

Các ông lớn trong làng technology đều sẽ tham gia với coi chính là chiến lược cải tiến và phát triển quan trọng.

Có thể kể đến một số vận dụng sức khỏe nổi tiếng như: Samsung Health, táo bị cắn dở Health…

#Các một số loại của Google Fit

Google Fit mang lại Android bao gồm nhiều một số loại API khác nhau, cho phép developer thực hiện các các bước cụ thể.

Có thể phân loại các loại API của Google Fit như sau:

Sensors(Cảm biến): có thể chấp nhận được truy cập dữ liệu từ cảm ứng trên thiết bị.Recording: được cho phép người dùng đăng ký vào phần dữ liệu rõ ràng và tự động hóa lưu trữ chúng.History: dùng làm truy cập vào các lịch sử các tài liệu đã đưa lên server.Sessions: thực hiện việc ghi chéplại tài liệu trong một khoảng thời hạn để tổng phù hợp thông tin.Bluetooth Low Energy: cho phép ứng dụng của người tiêu dùng truy cập vào dữ liệu cảm ứng từ các thiết bị đeo cung cấp Google Fit

Qua phần giới thiệu trên hẳn là chúng ta đã đọc được phần nào Google Fit là gì. Bài hôm nay mình đã hướng dẫn chúng ta theo dõi số bước chân trong 1 ngày hoặc 1 tuần hoặc 1 tháng.

#Thiết lập dự án công trình theo dõi sức cách chân

1. Google Fit là gì? Đăng cam kết Google Fit như thế nào?

Trước khi người tiêu dùng sử dụng thì bạn phải đăng ký thông qua Google develop console.

Các bạn hãy đăng ký với google developes console tại đây.

Và các bạn phải tạo ra một client ID OAuth 2.0.

Xem thêm: Top Máy Ảnh Chụp Ra Ảnh Luôn, Top 5 Máy Ảnh Chụp Lấy Liền Tốt Nhất Hiện Nay

*

Nếu chúng ta nào chưa xuất hiện project nào thì tạo mới, còn có rồi thì chúng ta chọn vào project bạn muốn thiết lập.

Sau đó các bạn hãy tìm kiếm với từ khóa “fit” rồi enable google fit.

*
 Rồi các bạn nhấn vào Credentials.

*

Và tạo ra project trong game android studio như thông thường rồi địa chỉ tên gói cùng sha1 vào để cài đặt.

Cuối cùng các bạn lấy API key tại đây.

2. Thêm thư viện Google Fit

Đầu tiên các bạn hãy mở tập tin build.gradle để thêm những dependencies nên thiết(Nhớ thừa nhận nút sync sau khoản thời gian thay đổi)

compile "com.google.android.gms:play-services-fitness:11.6.0"compile "com.google.android.gms:play-services-auth:11.6.0"Bây tiếng là bạn đã sở hữu đầy đủ các lớp và phương thức không thiếu của google fit.

3. Tạo bối cảnh ứng dụng

Mình sẽ xây cất layout không thiếu như sau đây.

*
Giao diện áp dụng theo dõi bước chân

Mình thi công cả spinner để chúng ta lựa chọn những type mà google fit hỗ trợ:

mDataTypeList.add(DataType.TYPE_STEP_COUNT_DELTA); mDataTypeList.add(DataType.TYPE_STEP_COUNT_CUMULATIVE); mDataTypeList.add(DataType.TYPE_STEP_COUNT_CADENCE); mDataTypeList.add(DataType.TYPE_ACTIVITY_SEGMENT); mDataTypeList.add(DataType.TYPE_CALORIES_EXPENDED); mDataTypeList.add(DataType.TYPE_BASAL_METABOLIC_RATE); mDataTypeList.add(DataType.TYPE_POWER_SAMPLE); mDataTypeList.add(DataType.TYPE_ACTIVITY_SAMPLE); mDataTypeList.add(DataType.TYPE_HEART_RATE_BPM); mDataTypeList.add(DataType.TYPE_LOCATION_SAMPLE); mDataTypeList.add(DataType.TYPE_LOCATION_TRACK); mDataTypeList.add(DataType.TYPE_DISTANCE_DELTA); mDataTypeList.add(DataType.TYPE_DISTANCE_CUMULATIVE); mDataTypeList.add(DataType.TYPE_SPEED); mDataTypeList.add(DataType.TYPE_CYCLING_WHEEL_REVOLUTION); mDataTypeList.add(DataType.TYPE_CYCLING_WHEEL_RPM); mDataTypeList.add(DataType.TYPE_CYCLING_PEDALING_CUMULATIVE); mDataTypeList.add(DataType.TYPE_CYCLING_PEDALING_CADENCE); mDataTypeList.add(DataType.TYPE_HEIGHT); mDataTypeList.add(DataType.TYPE_WEIGHT); mDataTypeList.add(DataType.TYPE_BODY_FAT_PERCENTAGE); mDataTypeList.add(DataType.TYPE_NUTRITION); mDataTypeList.add(DataType.TYPE_WORKOUT_EXERCISE); mDataTypeList.add(DataType.AGGREGATE_ACTIVITY_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_BASAL_METABOLIC_RATE_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_STEP_COUNT_DELTA); mDataTypeList.add(DataType.AGGREGATE_DISTANCE_DELTA); mDataTypeList.add(DataType.AGGREGATE_CALORIES_EXPENDED); mDataTypeList.add(DataType.AGGREGATE_HEART_RATE_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_LOCATION_BOUNDING_BOX); mDataTypeList.add(DataType.AGGREGATE_POWER_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_SPEED_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_BODY_FAT_PERCENTAGE_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_WEIGHT_SUMMARY); mDataTypeList.add(DataType.AGGREGATE_NUTRITION_SUMMARY);

4.Viết những phương thức trong activity

Trong hàm oncreate() chúng ta hãy khởi chế tạo GoogleApiClient.

mClient = new GoogleApiClient.Builder(this) .addApi(Fitness.HISTORY_API) .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ)) .addScope(new Scope(Scopes.FITNESS_BODY_READ)) .addScope(new Scope(Scopes.FITNESS_LOCATION_READ)) .addScope(new Scope(Scopes.FITNESS_NUTRITION_READ)) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build();Sau đó bọn họ sẽ phải tạo connect và disconnect vào hàm onStart() cùng onDestroy()


Overrideprotected void onStop() super.onStop(); if (mClient.isConnected()) mClient.disconnect(); Và chúng ta hãy thừa kế 2 lớp này để lắng nghe sự kiện fan dùng đồng ý hay đồng ý xác thực:

GoogleApiClient.ConnectionCallbacks·GoogleApiClient.OnConnectionFailedListener

public class HistoryActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListenerỞ hàm onActivityResult chúng ta hãy connect khi có thông tin người dùng.


Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) if (requestCode == REQUEST_OAUTH && resultCode == RESULT_OK) if (!mClient.isConnecting() && !mClient.isConnected()) mClient.connect(); Và đây là hàm đặc trưng nhất hãy áp dụng AsynTask do nó đang update lại giao diện. Hàm này giúp hiểu các lịch sử vẻ vang bước đi của chúng ta theo mỗi tháng năm cùng ngày.

public class ReadFromHistoryTask extends AsyncTask protected Void doInBackground(Void... Params) long endTime = mEndDateCalendar.getTimeInMillis(); long startTime = mStartDateCalendar.getTimeInMillis(); DataReadResult dataReadResult = null; if(isDataAggregated) mAggregateDataTypeList.addAll(DataType.getAggregatesForInput(mSelectedDataType)); if(mAggregateDataTypeList.size()>0) DataReadRequest readRequest = new DataReadRequest.Builder() .aggregate(mSelectedDataType, mAggregateDataTypeList.get(0)) .bucketByTime(1, TimeUnit.DAYS) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .build(); dataReadResult = Fitness.HistoryApi.readData(mClient,readRequest).await(); else runOnUiThread(new Runnable()
Override public void run() mResultsText.setText("Aggregation of data not supported"); mListAdapter.notifyDataSetChanged(); ); else DataReadRequest readRequest = new DataReadRequest.Builder().read(mSelectedDataType) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS).build(); dataReadResult = Fitness.HistoryApi.readData(mClient, readRequest).await(); if(isDataAggregated) if(mAggregateDataTypeList.size()>0 && dataReadResult!=null) readBucketValues(dataReadResult); else DataSet dataSet = dataReadResult.getDataSet(mSelectedDataType); readDataSetValues(dataSet, false); return null; Mình cũng thu xếp lọc tài liệu theo ngày và random chúng ta chỉ cần kiểm tra vào checkbox aggregate data by day.

Mình cũng thực hiện listview nhằm get các sữ liệu đem được để nhìn trực quan hơn.

Xem cách thực hiện Listview sinh sống đây: https://bepgasvuson.vn/huong-dan-recyclerview-trong-android-phan-1.html

public class ListAdapter extends BaseAdapter private TextView mTextView1; private TextView mTextView2; private TextView mTextView3;
Override public View getView(int position, View convertView, ViewGroup parent) if(convertView==null) convertView = getLayoutInflater().inflate(R.layout.list_rows, parent, false); StringBuilder dataValue = new StringBuilder(); for (Field field : mDataPointList.get(position).getDataType().getFields()) Value val = mDataPointList.get(position).getValue(field); dataValue.append("Name: " + field.getName() + " Value: " + val.toString()); mTextView1 = (TextView)convertView.findViewById(R.id.text1); mTextView1.setText("Data Type: "+ mDataPointList.get(position).getDataType().getName()); mTextView2 = (TextView)convertView.findViewById(R.id.text2); mTextView2.setText(dataValue.toString()); mTextView3 = (TextView)convertView.findViewById(R.id.text3); mTextView3.setText("Start Time: " + mSimpleDateFormat.format(mDataPointList.get(position).getStartTime(TimeUnit.MILLISECONDS)) + " End Time: " + mSimpleDateFormat.format(mDataPointList.get(position).getEndTime(TimeUnit.MILLISECONDS))); return convertView; Và đấy là kết quả

*

#Tạm kết

Hy vọng bài viết này sẽ giúp bạn phần nào gọi google fit là gì cùng tự viết được google fit của riêng rẽ mình.

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Cách xin nghỉ hẳn học thêm

  • Cách xóa gợi ý tìm kiếm trên messenger

  • Hình nền điện thoại chất full hd 4k

  • Hướng dẩn cách mở khóa khi bị chặn chức năng gửi tin nhắn.

  • x