Đồng bộ smartwatch với ứng dụng sức khỏe hoạt động thế nào?
- Dữ liệu được tạo và xử lý trên smartwatch trước khi đồng bộ
- Smartwatch truyền dữ liệu sang điện thoại hoặc nền tảng trung gian
- Kho sức khỏe chuẩn hóa và quản lý các bản ghi từ nhiều nguồn
- Ứng dụng chỉ đọc được những loại dữ liệu người dùng cho phép
- Vì sao dữ liệu có thể chậm, thiếu hoặc xuất hiện không giống nhau
- Có thể kiểm tra lỗi đồng bộ theo đúng thứ tự của dòng dữ liệu
Có thể hình dung luồng phổ biến như sau:
Cảm biến → smartwatch → kết nối truyền dữ liệu → ứng dụng đồng hành hoặc kho sức khỏe hệ thống → ứng dụng sức khỏe
Tùy hệ sinh thái, một số bước có thể được gộp lại hoặc dữ liệu có thể đi qua máy chủ của nhà sản xuất. Điểm quan trọng là “đồng bộ” không phải một lần sao chép duy nhất mà là nhiều lần ghi, truyền, xác thực và đọc dữ liệu nối tiếp nhau.
Dữ liệu được tạo và xử lý trên smartwatch trước khi đồng bộ
Quá trình bắt đầu tại các cảm biến của đồng hồ. Gia tốc kế có thể ghi nhận chuyển động, cảm biến quang học tạo tín hiệu phục vụ ước tính nhịp tim, GPS cung cấp vị trí cho hoạt động ngoài trời, còn những cảm biến khác phụ trách các phép đo mà thiết bị hỗ trợ.
Dữ liệu cảm biến thô thường chưa phải bản ghi mà ứng dụng sức khỏe sử dụng trực tiếp. Phần mềm trên smartwatch phải xử lý tín hiệu, gắn thời gian và chuyển chúng thành các loại dữ liệu có ý nghĩa như số bước, nhịp tim, quãng đường hoặc phiên tập luyện. Với những chỉ số được tính toán từ nhiều tín hiệu, thuật toán của thiết bị còn phải tổng hợp dữ liệu trước khi tạo kết quả.
Do đó, tần suất cảm biến đo không nhất thiết bằng tần suất ứng dụng nhận được bản ghi. Đồng hồ có thể lấy nhiều mẫu nhưng chỉ lưu hoặc truyền kết quả theo từng khoảng thời gian nhằm giảm tiêu thụ pin và lượng dữ liệu phải trao đổi.

Smartwatch truyền dữ liệu sang điện thoại hoặc nền tảng trung gian
Sau khi có bản ghi, smartwatch cần một kênh để chuyển dữ liệu ra ngoài thiết bị. Với đồng hồ ghép đôi cùng điện thoại, Bluetooth Low Energy là một cơ chế phổ biến. Chuẩn Bluetooth định nghĩa GATT để thiết bị cung cấp và nhận các đặc tính dữ liệu; chẳng hạn Heart Rate Profile xác định vai trò cảm biến nhịp tim và thiết bị thu nhận dữ liệu qua GATT trên Bluetooth LE.
Tuy nhiên, không phải smartwatch nào cũng đưa dữ liệu sức khỏe trực tiếp từ Bluetooth vào ứng dụng cuối. Một kiến trúc phổ biến là:
Smartwatch → ứng dụng đồng hành của hãng → kho dữ liệu sức khỏe → ứng dụng cần sử dụng dữ liệu
Ứng dụng đồng hành có nhiệm vụ nhận các bản ghi thuộc hệ sinh thái của đồng hồ, xác định dữ liệu nào chưa được đồng bộ và ghi chúng vào nơi lưu trữ phù hợp. Một số thiết bị có Wi-Fi hoặc kết nối di động còn có thể gửi dữ liệu đến dịch vụ đám mây của nhà sản xuất rồi đồng bộ xuống điện thoại sau.
Vì có lớp trung gian này, trạng thái “đồng hồ đã kết nối với điện thoại” chỉ chứng minh đường liên lạc giữa hai thiết bị đang tồn tại. Nó chưa chứng minh rằng ứng dụng đồng hành đã lấy dữ liệu, đã ghi dữ liệu vào kho sức khỏe hoặc ứng dụng cuối đã được phép đọc dữ liệu đó.
Kho sức khỏe chuẩn hóa và quản lý các bản ghi từ nhiều nguồn
Khi dữ liệu rời hệ sinh thái riêng của smartwatch, các nền tảng như HealthKit trên hệ sinh thái Apple hoặc Health Connect trên Android có thể đóng vai trò kho trung gian để nhiều ứng dụng trao đổi dữ liệu theo các kiểu bản ghi xác định.
Apple mô tả HKHealthStore là điểm truy cập cho dữ liệu do HealthKit quản lý; ứng dụng có thể lưu mẫu, thực hiện truy vấn và yêu cầu quyền đối với từng loại dữ liệu. Trên Android, Health Connect cho phép ứng dụng ghi các record như số bước hoặc nhịp tim; bản ghi còn có metadata mô tả nguồn và thiết bị, trong đó tài liệu của Google minh họa dữ liệu bước được đánh dấu là tự động ghi từ thiết bị loại đồng hồ.
Lớp trung gian này quan trọng vì cùng một loại chỉ số có thể đến từ nhiều nguồn. Ví dụ, số bước có thể được ghi bởi điện thoại, smartwatch và một ứng dụng tập luyện. Kho sức khỏe cần duy trì thông tin nguồn, thời điểm và loại record để ứng dụng đọc dữ liệu có thể xử lý chúng đúng hơn thay vì coi mọi con số là một phép đo duy nhất.
Đây cũng là lý do hai ứng dụng có thể hiển thị số liệu hơi khác nhau dù cùng sử dụng một smartwatch: chúng có thể đọc các nguồn khác nhau, chọn khoảng thời gian khác nhau hoặc áp dụng quy tắc tổng hợp khác nhau.
Ứng dụng chỉ đọc được những loại dữ liệu người dùng cho phép
Sau khi dữ liệu tồn tại trong kho sức khỏe, ứng dụng vẫn chưa mặc nhiên được truy cập. Quyền được kiểm soát theo loại dữ liệu và theo thao tác đọc hoặc ghi.
Trong HealthKit, ứng dụng phải yêu cầu quyền đối với những kiểu dữ liệu muốn đọc hoặc lưu. Apple cho phép người dùng cấp quyền theo từng kiểu dữ liệu và có thể giới hạn phạm vi dữ liệu lịch sử mà ứng dụng được đọc.
Health Connect cũng yêu cầu ứng dụng khai báo và xin quyền tương ứng, chẳng hạn quyền đọc hoặc ghi số bước và nhịp tim. Người dùng có thể từ chối hoặc thu hồi quyền, nên ứng dụng phải kiểm tra trạng thái quyền trước khi sử dụng dữ liệu.
Vì vậy, một người có thể cho phép ứng dụng xem số bước nhưng không cho xem nhịp tim. Trong trường hợp này, đồng hồ vẫn đo nhịp tim và dữ liệu thậm chí có thể đã được đồng bộ vào kho sức khỏe, nhưng ứng dụng không có quyền đọc nên không thể hiển thị nó.
Quyền đồng bộ vì thế nên được hiểu theo ba lớp riêng: smartwatch có thu thập dữ liệu hay không, nguồn dữ liệu có được phép ghi vào kho sức khỏe hay không và ứng dụng đích có được phép đọc loại dữ liệu đó hay không.
Vì sao dữ liệu có thể chậm, thiếu hoặc xuất hiện không giống nhau
Đồng bộ thường diễn ra bất đồng bộ, nên thời điểm đo và thời điểm dữ liệu xuất hiện trong ứng dụng không nhất thiết trùng nhau. Đồng hồ có thể lưu tạm khi không ở gần điện thoại; ứng dụng đồng hành có thể chỉ chạy tác vụ đồng bộ khi hệ điều hành cho phép; sau đó ứng dụng sức khỏe lại phải đọc các bản ghi mới.
Khả năng đọc trong nền cũng chịu kiểm soát của hệ điều hành. Health Connect phân biệt việc đọc ở foreground và background; muốn đọc dữ liệu trong nền, ứng dụng cần quyền bổ sung phù hợp. Điều này giúp giải thích vì sao mở ứng dụng đôi khi khiến dữ liệu mới xuất hiện: hành động đó có thể kích hoạt một phần quy trình đọc hoặc cập nhật chưa chạy trước đó.
Dữ liệu thiếu thường xuất phát từ một mắt xích cụ thể trong chuỗi thay vì toàn bộ hệ thống “không đồng bộ”. Các trường hợp điển hình gồm đồng hồ chưa chuyển bản ghi sang điện thoại, ứng dụng đồng hành chưa ghi chúng vào kho sức khỏe, quyền của một loại dữ liệu bị tắt hoặc ứng dụng đang đọc sai nguồn hay sai khoảng thời gian.
Dữ liệu trùng cũng có thể xuất hiện khi cùng một hoạt động được ghi bởi nhiều nguồn. Chẳng hạn smartwatch và điện thoại cùng tạo dữ liệu bước, hoặc ứng dụng của hãng vừa ghi trực tiếp vừa chuyển record qua một nền tảng trung gian. Vì thế, ứng dụng cần quan tâm tới nguồn gốc bản ghi thay vì đơn giản cộng tất cả dữ liệu có cùng loại.
Có thể kiểm tra lỗi đồng bộ theo đúng thứ tự của dòng dữ liệu
Khi một chỉ số không xuất hiện, cách kiểm tra hiệu quả là đi theo chính đường dữ liệu thay vì chỉ bật tắt Bluetooth.
1. Kiểm tra trên smartwatch xem chỉ số đó thực sự đã được đo và có bản ghi tại thời điểm cần xem
2. Kiểm tra kết nối với điện thoại hoặc Internet tùy cơ chế đồng bộ mà thiết bị sử dụng
3. Mở ứng dụng đồng hành của smartwatch và xác nhận dữ liệu đã xuất hiện tại đây
4. Kiểm tra quyền ghi vào kho sức khỏe nếu ứng dụng đồng hành cần chuyển dữ liệu sang HealthKit hoặc Health Connect
5. Kiểm tra quyền đọc của ứng dụng sức khỏe đối với đúng loại dữ liệu đang thiếu
6. Kiểm tra nguồn và khoảng thời gian của bản ghi nếu dữ liệu tồn tại nhưng con số giữa các ứng dụng không giống nhau
Trên Health Connect, dữ liệu có thể được đọc theo loại record, khoảng thời gian và DataOrigin, tức nguồn đã ghi bản ghi đó. Cách kiểm tra theo từng mắt xích vì thế giúp xác định dữ liệu bị dừng ở đâu: trước khi rời smartwatch, tại ứng dụng đồng hành, tại kho sức khỏe hay ở bước ứng dụng cuối đọc dữ liệu.
Đồng bộ smartwatch với ứng dụng sức khỏe là một pipeline nhiều lớp chứ không đơn thuần là kết nối hai thiết bị. Smartwatch tạo và xử lý phép đo; dữ liệu được chuyển qua Bluetooth, Wi-Fi, kết nối di động hoặc dịch vụ trung gian; ứng dụng nguồn ghi bản ghi vào kho sức khỏe; cuối cùng ứng dụng đích chỉ đọc được những loại dữ liệu mà người dùng đã cho phép.
Vì mỗi mắt xích có cơ chế và quyền riêng, một lỗi ở bất kỳ bước nào cũng có thể khiến dữ liệu đến chậm, thiếu hoặc khác giữa các ứng dụng. Khi cần xử lý sự cố, lần theo dữ liệu từ smartwatch đến ứng dụng đồng hành, kho sức khỏe và quyền đọc của ứng dụng sẽ chính xác hơn việc chỉ kiểm tra trạng thái ghép đôi.
