Kiểu dữ liệu

Google Fit cung cấp một tập hợp các loại dữ liệu về sức khoẻ thể chất và tinh thần trong không gian tên com.google.

Loại dữ liệu xác định định dạng của giá trị bên trong các điểm dữ liệu. Một điểm dữ liệu có thể đại diện cho:

  • Chỉ số đọc hoặc quan sát tức thì
  • Dữ liệu tổng hợp có số liệu thống kê trong một khoảng thời gian

Google Fit xác định các kiểu dữ liệu cho các quan sát tức thì và các kiểu dữ liệu cho dữ liệu tổng hợp. Điểm dữ liệu bao gồm các giá trị cho các trường của loại dữ liệu và thông tin về dấu thời gian. Các điểm biểu thị quan sát tức thì bao gồm dấu thời gian, còn các điểm thuộc loại dữ liệu tổng hợp cũng bao gồm thời gian bắt đầu của khoảng thời gian này.

Google Fit cũng cho phép bạn xác định các loại dữ liệu mới.

Nhóm loại dữ liệu

Google Fit có các loại dữ liệu sau:

Loại dữ liệu công khai
Các loại dữ liệu chuẩn do nền tảng cung cấp có tiền tố "com.google". Ví dụ: com.google.step_count.delta. Các loại dữ liệu này thu thập các chỉ số tức thì về dữ liệu sức khoẻ thể chất và tinh thần, bao gồm cả hoạt động thể dục, giấc ngủ và dinh dưỡng. Mọi ứng dụng đều có thể yêu cầu các quyền liên quan để đọc và ghi vào các loại dữ liệu này, ngoại trừ một số loại dữ liệu vị trí mà chỉ ứng dụng đã ghi mới có thể đọc được.

Để biết thêm thông tin, hãy xem các bài viết sau:

Loại dữ liệu sức khoẻ
Các loại dữ liệu do nền tảng cung cấp đã bị hạn chế quyền truy cập do dữ liệu có thể có tính nhạy cảm. Để biết thêm thông tin, hãy xem phần Các loại dữ liệu sức khoẻ.
Các loại dữ liệu tổng hợp
Các loại dữ liệu dùng để đọc thông tin về sức khoẻ thể chất và tinh thần được tổng hợp theo thời gian hoặc loại hoạt động. Để biết thêm thông tin, hãy xem bài viết Tổng hợp các loại dữ liệu.
Loại dữ liệu tuỳ chỉnh riêng tư
Các loại dữ liệu tuỳ chỉnh do một ứng dụng cụ thể xác định. Chỉ ứng dụng xác định loại dữ liệu này mới có thể đọc và ghi dữ liệu thuộc loại này. Để biết thêm thông tin, hãy xem bài viết Các loại dữ liệu tuỳ chỉnh.

Sử dụng các loại dữ liệu

Android

Trên Android, các loại dữ liệu được định nghĩa là trường công khai của lớp DataType. Cách bạn gọi API Thể dục bằng loại dữ liệu phụ thuộc vào mục tiêu bạn muốn đạt được:

  • Để ghi lại dữ liệu, hãy sử dụng Record API (API Bản ghi) để tạo gói thuê bao cho từng loại dữ liệu bạn muốn ghi.
  • Để đọc dữ liệu, hãy sử dụng API Lịch sử để gửi yêu cầu đọc cho từng loại dữ liệu.
  • Để chèn dữ liệu trong quá khứ, hãy sử dụng API Lịch sử để gửi yêu cầu chèn cho từng loại dữ liệu.
  • Để tạo phiên, hãy sử dụng Sessions API (API Phiên) để chèn hoặc ghi lại dữ liệu bằng siêu dữ liệu phiên.

Để tạo điểm dữ liệu cho một đối tượng DataType không đồng nhất, hãy chỉ định các giá trị có định dạng đúng. Ví dụ sau cho bạn thấy cách chỉ định món ăn dưới dạng chuỗi, loại bữa ăn dưới dạng hằng số từ lớp Field và nội dung dinh dưỡng dưới dạng giá trị số thực được liên kết.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Sau khi đặt các điểm dữ liệu trong ứng dụng, bạn có thể chèn, đọc hoặc xoá dữ liệu trong quá khứ bằng API Lịch sử.

Kiến trúc chuyển trạng thái đại diện (REST)

Tài nguyên dataSources bao gồm loại dữ liệu (và danh sách các trường của tài nguyên đó) cho từng nguồn dữ liệu. Bạn có thể chỉ định một trong các kiểu dữ liệu này khi tạo nguồn dữ liệu, đồng thời có thể lấy tên của kiểu dữ liệu và danh sách các trường của kiểu dữ liệu đó khi truy xuất nguồn dữ liệu từ kho dữ liệu thể dục.

Ví dụ: bản trình bày nguồn dữ liệu chỉ định loại dữ liệu của nó như sau:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Phạm vi uỷ quyền

Phạm vi uỷ quyền bao gồm các nhóm loại dữ liệu mà người dùng có thể cho phép một ứng dụng truy cập. Chúng giúp người dùng hiểu ứng dụng muốn truy cập những loại dữ liệu nào. Các bản cập nhật này cũng giúp việc cấp cho các ứng dụng quyền sử dụng dữ liệu đó trở nên dễ dàng hơn mà không cần phải phê duyệt từng loại dữ liệu. Người dùng cấp các quyền này sau khi họ tải ứng dụng của bạn xuống.

Ví dụ về màn hình đồng ý phạm vi OAuth
Hình 2.Màn hình xin phép phạm vi OAuth.

Sau khi đã kiểm thử ứng dụng với một số ít người dùng, trước khi chạy ứng dụng, bạn cần yêu cầu xác minh dựa trên các phạm vi liên quan đến các loại dữ liệu đó. Hãy đọc qua các trang loại dữ liệu được liên kết ở trên để hiểu phạm vi nào áp dụng cho từng loại dữ liệu.

Ví dụ: nếu cần đọc và ghi huyết áp, thì ứng dụng của bạn cần khai báo rằng ứng dụng đang thực hiện cả thao tác đọc và ghi, đồng thời yêu cầu cả hai phạm vi. Nếu chỉ ghi dữ liệu huyết áp vào nền tảng Google Fit, thì ứng dụng chỉ cần yêu cầu phạm vi ghi.

Chọn loại dữ liệu một cách có trách nhiệm. Đừng yêu cầu mọi loại dữ liệu phòng trường hợp ứng dụng của bạn có thể cần đến. Các loại được chỉ định sẽ xác định phạm vi mà người dùng được nhắc cấp quyền. Chỉ yêu cầu các loại dữ liệu mà ứng dụng của bạn cần để người dùng có nhiều khả năng cấp quyền truy cập hơn. Người dùng dễ dàng cấp quyền truy cập vào các phạm vi giới hạn, được mô tả rõ ràng.

Hãy sử dụng bảng này để kiểm tra xem các phạm vi mà ứng dụng của bạn cần quyền truy cập có nhạy cảm hay bị hạn chế hay không (xác định các bước xác minh mà bạn cần thực hiện):

Phạm vi Nội dung mô tả Danh mục
https://www.googleapis.com/auth/fitness.activity.read Đọc dữ liệu hoạt động từ nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.activity.write Ghi dữ liệu hoạt động vào nền tảng Google Fit Bị hạn chế
https://www.googleapis.com/auth/fitness.blood_glucose.read Đọc dữ liệu đường huyết trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.blood_glucose.write Ghi dữ liệu đường huyết vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.blood_pressure.read Đọc dữ liệu huyết áp trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.blood_pressure.write Ghi dữ liệu huyết áp vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.body.read Đọc dữ liệu đo lường cơ thể (chiều cao, cân nặng, tỷ lệ phần trăm mỡ trong cơ thể) từ nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.body.write Ghi dữ liệu đo cơ thể vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.body_temperature.read Đọc dữ liệu thân nhiệt trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.body_temperature.write Ghi dữ liệu thân nhiệt vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.heart_rate.read Đọc dữ liệu nhịp tim từ nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.heart_rate.write Ghi dữ liệu nhịp tim vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.location.read Đọc dữ liệu vị trí từ nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.location.write Ghi dữ liệu vị trí vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.nutrition.read Đọc dữ liệu dinh dưỡng trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.nutrition.write Ghi dữ liệu dinh dưỡng vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Đọc dữ liệu về độ bão hoà oxy trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Ghi dữ liệu về độ bão hoà oxy vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.reproductive_health.read Đọc dữ liệu về sức khoẻ sinh sản trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.reproductive_health.write Ghi dữ liệu sức khoẻ sinh sản vào nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.sleep.read Đọc dữ liệu giấc ngủ trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.sleep.write Ghi dữ liệu giấc ngủ vào nền tảng Google Fit. Bị hạn chế

Thêm phạm vi mới vào ứng dụng hiện có

Khi bạn cập nhật ứng dụng để yêu cầu một phạm vi mới (ví dụ: nếu bạn thêm phạm vi giấc ngủ hoặc nhịp tim mới, hoặc thêm một phạm vi đọc), người dùng sẽ được nhắc rằng ứng dụng của bạn đang yêu cầu quyền truy cập vào những phạm vi này và họ có thể chọn cấp hoặc từ chối quyền truy cập.

Phương pháp hay nhất là yêu cầu người dùng uỷ quyền cho các tài nguyên vào thời điểm bạn cần. Làm theo hướng dẫn về cách yêu cầu uỷ quyền gia tăng.

Nhiều khả năng người dùng sẽ cấp quyền truy cập nếu họ hiểu lý do/cách ứng dụng của bạn sử dụng dữ liệu này:

  • Hãy cân nhắc thêm một màn hình để cảnh báo/thông báo cho người dùng rằng họ sẽ được yêu cầu đối với các phạm vi này.
  • Hãy giải thích rõ lý do ứng dụng của bạn yêu cầu quyền truy cập vào các phạm vi/dữ liệu này để người dùng có thể đưa ra quyết định sáng suốt.

Tìm hiểu thêm về các phương pháp hay nhất về quyền cho ứng dụng trên Android.