Yêu cầu về siêu dữ liệu

Hướng dẫn này tương thích với Health Connect phiên bản 1.1.0-alpha12.

Có những thay đổi đối với siêu dữ liệu trong Health Connect dành cho những nhà phát triển chọn nâng cấp lên phiên bản 1.1.0-alpha12.

Thông tin về thư viện

Mã nhận dạng cấu phần phần mềm Trình bổ trợ Gradle Android của Google Maven xác định thư viện Health Connect mà bạn sẽ cần nâng cấp. Thêm phần phụ thuộc SDK Health Connect này vào tệp build.gradle ở cấp mô-đun:

dependencies {
  implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}

Thay đổi về siêu dữ liệu

Hai thay đổi về siêu dữ liệu đã được đưa vào Health Connect Jetpack SDK kể từ phiên bản 1.1.0-alpha12 để đảm bảo rằng hệ sinh thái có thêm siêu dữ liệu hữu ích.

Bạn phải chỉ định thông tin chi tiết về siêu dữ liệu bất cứ khi nào một đối tượng thuộc loại Record() được tạo thực thể.

Bạn phải chỉ định một trong 4 phương thức ghi khi ghi dữ liệu vào Health Connect:

Phương pháp ghi Mô tả
RECORDING_METHOD_UNKNOWN Không xác minh được phương thức ghi hình.
RECORDING_METHOD_MANUAL_ENTRY Người dùng đã nhập dữ liệu.
RECORDING_METHOD_AUTOMATICALLY_RECORDED Một thiết bị hoặc cảm biến đã ghi lại dữ liệu.
RECORDING_METHOD_ACTIVELY_RECORDED Người dùng đã bắt đầu hoặc kết thúc phiên ghi hình trên một thiết bị.

Ví dụ:

StepsRecord(
    startTime \= Instant.ofEpochMilli(1234L),
    startZoneOffset \= null,
    endTime \= Instant.ofEpochMilli(1236L),
    endZoneOffset \= null,
    metadata \= Metadata.manualEntry(),
    Count \= 10,
)

Bạn phải chỉ định một loại thiết bị cho tất cả dữ liệu được ghi lại tự động và chủ động. Các loại thiết bị hiện tại bao gồm:

Loại thiết bị Mô tả
TYPE_UNKNOWN Không xác định được loại thiết bị.
TYPE_WATCH Loại thiết bị là đồng hồ.
TYPE_PHONE Loại thiết bị là điện thoại.
TYPE_SCALE Loại thiết bị là cân.
TYPE_RING Loại thiết bị là chuông.
TYPE_HEAD_MOUNTED Loại thiết bị là thiết bị gắn trên đầu.
TYPE_FITNESS_BAND Loại thiết bị là vòng đeo tay theo dõi sức khoẻ.
TYPE_CHEST_STRAP Loại thiết bị là dây đeo ngực.
TYPE_SMART_DISPLAY Loại thiết bị là màn hình thông minh.

Nếu có thể, hãy cung cấp nhà sản xuất và kiểu máy của thiết bị, ngoài loại thiết bị. Ví dụ:

private val TEST_DEVICE = Device(
    manufacturer = "Google",
    model = "Pixel Watch",
    type = Device.TYPE_WATCH
)

Đã cập nhật đoạn trích

Chúng tôi đã cập nhật các hướng dẫn về Health Connect ở những nơi cần có đoạn mã mới để tuân thủ các yêu cầu mới về siêu dữ liệu. Để xem một số ví dụ, hãy tham khảo trang Ghi dữ liệu.

Phương thức siêu dữ liệu mới

Bạn không thể trực tiếp tạo thực thể siêu dữ liệu nữa, vì vậy, hãy dùng một trong các phương thức của nhà máy để lấy một thực thể siêu dữ liệu mới. Mỗi hàm có 3 biến thể chữ ký:

  • activelyRecorded

    • fun activelyRecorded(device: Device): Metadata.
    • fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun activelyRecordedWithId(id: String, device: Device): Metadata
  • autoRecorded

    • fun autoRecorded(device: Device): Metadata
    • fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
    • fun autoRecordedWithId(id: String, device: Device): Metadata
  • manualEntry

    • fun manualEntry(device: Device? = null): Metadata
    • fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun manualEntryWithId(id: String, device: Device? = null): Metadata
  • unknownRecordingMethod

    • fun unknownRecordingMethod(device: Device? = null): Metadata
    • fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
    • fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata

Để biết thêm thông tin, hãy xem Dự án nguồn mở Android.

Dữ liệu kiểm thử

Sử dụng Thư viện kiểm thử để mô phỏng các giá trị siêu dữ liệu dự kiến:

private val TEST_METADATA =
    Metadata.unknownRecordingMethod(
        clientRecordId = "clientId",
        clientRecordVersion = 1L,
        device = Device(type = Device.TYPE_UNKNOWN),
    ).populatedWithTestValues(id = "test")

Điều này mô phỏng hành vi của việc triển khai Health Connect, tự động điền các giá trị này trong quá trình chèn bản ghi.

Đối với thư viện kiểm thử, bạn cần thêm phần phụ thuộc SDK Health Connect này vào tệp build.gradle ở cấp mô-đun:

dependencies {
  testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}

Nâng cấp thư viện

Các bước chính bạn cần thực hiện là:

  1. Nâng cấp thư viện lên phiên bản 1.1.0-alpha12.

  2. Khi tạo thư viện, các lỗi biên dịch sẽ xuất hiện khi cần siêu dữ liệu mới, vì vậy, hãy nhớ triển khai các thay đổi cần thiết về siêu dữ liệu bất cứ khi nào một đối tượng thuộc loại Record() được khởi tạo. Thao tác này sẽ hoàn tất quá trình di chuyển.