Loại 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 các 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:

  • Đọc hoặc quan sát tức thì
  • 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 loại dữ liệu cho quan sát tức thì và các loại 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 một loại dữ liệu và thông tin về dấu thời gian. Các điểm biểu thị các quan sát tức thì bao gồm dấu thời gian và các điểm thuộc một 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 đó.

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 dữ liệu ngay lập tức để tìm dữ liệu về sức khoẻ thể chất và tinh thần, bao gồm hoạt động thể dục, giấc ngủ và dinh dưỡng. Bất kỳ ứng dụng nào cũng 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 vài loại dữ liệu vị trí mà ứng dụng chỉ có thể đọc được.

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

Các loại dữ liệu sức khoẻ
Loại dữ liệu do nền tảng cung cấp đã hạn chế quyền truy cập do có khả năng chứa dữ liệu nhạy cảm. Để biết thêm thông tin, hãy xem phần 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 để đọ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 Các loại dữ liệu tổng hợp.
Các loại dữ liệu tuỳ chỉnh riêng tư
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 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, loại dữ liệu được định nghĩa là các 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 những gì bạn muốn đạt được:

  • Để ghi lại dữ liệu, hãy sử dụng API bản ghi để tạo gói thuê bao cho từng loại dữ liệu mà 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 API phiên để chèn hoặc ghi lại dữ liệu bằng siêu dữ liệu của phiên.

Để tạo các điểm dữ liệu cho một đối tượng DataType không cố định, hãy chỉ định các giá trị theo đúng định dạng. Ví dụ sau cho bạn biết cách gán mục thực phẩm dưới dạng chuỗi, loại bữa ăn là một 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 của mình, 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 loại dữ liệu này khi tạo nguồn dữ liệu và lấy tên của loại dữ liệu cũng như danh sách các trường khi truy xuất nguồn dữ liệu từ cửa hàng thể dục.

Ví dụ: Cách biểu diễn nguồn dữ liệu chỉ định loại dữ liệu 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ể uỷ quyền cho một ứng dụng truy cập. Chúng giúp người dùng hiểu được loại dữ liệu mà một ứng dụng muốn truy cập. Các lớp này cũng giúp các ứng dụng dễ dàng cấp quyền sử dụng dữ liệu đó hơn bằng cách không 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 tải ứng dụng của bạn xuống.

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

Sau khi thử nghiệm ứ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 đó. Đọc qua các trang loại dữ liệu được liên kết ở trên để hiểu phạm vi áp dụng cho từng loại dữ liệu.

Ví dụ: nếu ứng dụng của bạn cần đọc và ghi huyết áp, thì ứng dụng cần khai báo rằng nó đ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ì 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ó 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 có giới hạn và được mô tả rõ ràng.

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 có quyền truy cập nhạy cảm hay bị hạn chế (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ả Category (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 từ 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 từ 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ể) trên nền tảng Google Fit. Bị hạn chế
https://www.googleapis.com/auth/fitness.body.write Ghi dữ liệu đo lường 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 về thân nhiệt của 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 trên 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 hòa oxy từ 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 hòa 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 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ủ từ 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 một ứng dụng hiện có

Khi bạn cập nhật ứng dụng để yêu cầu 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 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 các phạm vi này và họ có thể chọn cấp hoặc từ chối quyền truy cập.

Cách tốt nhất là yêu cầu người dùng cấp quyền cho tài nguyên tại thời điểm bạn cần. Làm theo nguyên tắc về việc yêu cầu uỷ quyền gia tăng.

Người dùng sẽ có nhiều khả năng cấp quyền truy cập hơn 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 trong các phạm vi nà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 đối với quyền cho ứng dụng trên Android.