Advertisement
  1. Code
  2. Android

Google Fit cho Android: Recording API

This post is part of a series called Google Fit for Android.
Google Fit for Android: Reading Sensor Data
Google Fit for Android: History API

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Google Fit là một nền tảng cho phép các nhà phát triển xây dựng các ứng dụng tập trung vào dữ liệu sức khoẻ của người dùng. Một trong những công cụ mà Google đã cung cấp là Google Fit cho Android, nó tồn tại như là một gói trong Google Play Services.

Mặc dù có rất nhiều các API khác nhau có sẵn cho Google Fit, như đã thảo luận trong bài viết tổng quan này trên Envato Tuts+, nhưng hướng dẫn này tập trung vào việc thiết lập và sử dụng Google Fit để tạo ra các truy cập dữ liệu cảm biến chạy nền sử dụng ít năng lượng. Chúng ta sẽ khám phá cách làm thế nào để tận dụng Google Play Services để lưu trữ dữ liệu sức khoẻ để nó có thể được truy cập tại một thời điểm sau đó.

Recording API khác so với Sensors API trong đó dữ liệu cảm biến trực tiếp không được gởi tới Recording API, mà thay vào đó dữ liệu được lưu trực tuyến để lưu một bản ghi của hoạt động của người dùng. Hướng dẫn này bao gồm một dự án mẫu, bạn có thể tải về từ GitHub.

1. Thiết lập dự án

Bước 1: Thiết lập Developer Console

Để sử dụng Google Fit, bạn cần phải tạo ra một client ID OAuth 2.0 và đăng ký ứng dụng của bạn thông qua Google Developer Console. Bạn có thể tìm thấy một diễn giải chi tiết về cách để thiết lập Google Developer Console trong hướng dẫn của tôi về Sensors API của Google Fit.

Bước 2: Tạo dự án Android

Một khi bạn đã cấu hình ứng dụng của bạn để xác thực trong Google Developer Console, hãy sử dụng tên gói mà bạn đăng ký để tạo một ứng dụng Android mới với một SDK level tối thiểu là 14 và một Activity rỗng.

Với ứng dụng Android cơ bản đã được tạo ra, hãy mở tập tin build.gradle và bao gồm Google Play Services dưới phần dependencies và đồng bộ ứng dụng của bạn.

Bây giờ bạn có thể bao gồm các lớp cần thiết của Google Play Services vào ứng dụng của bạn. Trước khi chúng ta đi sâu vào code Java cho hướng dẫn, hãy mở activity_main.xml và sửa đổi nó để nó bao gồm hai phần tử Button mà sẽ được sử dụng để minh hoạ một số chức năng của Recording API.

Khi ứng dụng của bạn chạy, giao diện người dùng sẽ trông giống như hình dưới đây.

Simple User Interface for the Recording API Tutorial App

Để hoàn tất việc thiết lập dự án, mở MainActivity.java của bạn và cài đặt các hàm callback và các phương thức cần thiết của chúng sau đây:

  • GoogleApiClient.ConnectionCallbacks
  • GoogleAPiClient.OnConnectionFailedListener
  • View.OnClickListener

Bạn cũng cần phải thêm các biến thành viên cho lớp của bạn, như hình dưới đây.

2. Khởi tạo

Trước khi bạn có thể bắt đầu sử dụng các hàm callback và các View mà bạn đã định nghĩa ở trên, bạn cần phải khởi tạo chúng. Chúng ta làm điều này bằng cách tạo ra hai phương thức trợ giúp, một cho khởi tạo các View và một cho khởi tạo các hàm callback được gọi bên trong onCreate().

Phương thức initViews() tham chiếu đến các đối tượng Button được định nghĩa trong activity_main.xml và thiết lập một OnClickListener cho mỗi Button.

Trong initCallbacks(), mọi thứ hơi thú vị hơn một chút. Mỗi hàm callback được sử dụng cho một hoạt động không đồng bộ cụ thể của Recording API. Như tên gợi ý, mSubscribeResultCallback được gọi khi bạn lần đầu tiên thêm một subscription cho một cảm biến, mCancelSubscriptionResultCallback được gọi khi bạn hủy subscription đó, và mListSubscriptionResultCallback được sử dụng khi bạn yêu cầu một danh sách của tất cả các subscription.

Trong đoạn code sau, hai hàm callback liên quan đến bắt đầu và dừng lại một subscription chỉ ghi lại thành công hay thất bại. mListSubscriptionResultCallback nhận một danh sách subscription và lưu thông tin về mỗi subscription bằng cách lấy DataType và sau đó mỗi Field liên kết với subscription.

3. Kết nối và kiểm soát các Subscription

Bây giờ thì bạn đã có một cái sườn chung cho ứng dụng mẫu của bạn, đã đến lúc để tổng hợp tất cả mọi thứ bằng cách kết nối đến Google Play Services và yêu cầu các subscription.

Trong onCreate(), bạn có thể khởi tạo và kết nối đến Google Play Services bằng cách khai báo rằng bạn sử dụng Fitness.RECORDING_API, thêm một phạm vi cho việc đọc dữ liệu sức khoẻ, và thiết lập nó tự động kết nối/ngắt kết nối trong suốt vòng đời của ứng dụng.

Bất cứ lúc nào sau khi GoogleApiClient đã kết nối, bạn có thể yêu cầu một subscription. Đối với hướng dẫn này, chúng ta đăng ký trong onConnected(). Đoạn code sau đây cho thấy cách để bắt đầu một subscription cho những thay đổi ở trong số bước chân của người dùng, tuy vậy bạn có thể truy cập bất kỳ cảm biến nào mà Google Fit hỗ trợ.

Nếu một subscription đang chạy vì một hành động trước đó, thì hàm callback nhận được một mã trạng thái của FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED.

Đôi khi có thể hữu ích khi yêu cầu một danh sách các subscription. Trước đó, bạn đã tạo ra hai Button cho các hoạt động này. Trong phương thức onClick(), bạn kiểm tra xem Button nào đã được chạm vào và thực hiện hành động tương ứng.

Nếu showSubscriptions() được gọi, thì ứng dụng yêu cầu một danh sách các subscription kết hợp với Recording API.

Điều này làm cho mListSubscriptionsResultCallback đăng xuất tất cả các subscription đã kết nối. Kết quả sẽ như thế này:

Hủy bỏ một subscription thì đơn giản như bạn có thể thấy dưới đây.

Tổng kết

Bây giờ bạn đã có kiến thức cơ bản về cách kết nối với Google Fit từ một ứng dụng Android và làm việc với Recording API. Mặc dù bây giờ có vẻ như không nhiều lắm, nhưng nó giúp mở ra cách để bạn lưu trữ thông tin về các hoạt động thể chất của người dùng để chúng có thể được truy cập bởi các API khác của Google Fit trong ứng dụng của bạn.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.