Các đặc điểm sau khi thiết lập để thiết lập camera

Các đặc điểm có thể dùng sau khi thiết bị được thiết lập là:

Đặc điểm OtaSoftwareUpdateRequestor

Đặc điểm này cung cấp một giao diện để theo dõi bản cập nhật phần mềm OTA trên thiết bị camera. Sau khi được thiết lập, camera sẽ bắt đầu quá trình cập nhật và báo cáo trạng thái của quá trình này cho ứng dụng. Sau khi ứng dụng nhận được trạng thái cho biết quá trình cập nhật phần mềm đã hoàn tất, camera có thể bắt đầu phát trực tiếp.

Đoạn mã mẫu và nội dung giải thích sau đây minh hoạ cách sử dụng đặc điểm này.

withTimeout(OTA_TIMEOUT_MS) {
  device.type(OtaRequestorDevice)
    .mapNotNull { it?.trait(OtaSoftwareUpdateRequestor) }
    .distinctUntilChanged()
    .transformWhile { trait ->
      emit(trait)
      !isTerminalState(trait.updateState)
    }
    .collect { trait ->
      updateState = trait.updateState
      updateStateProgress = trait.updateStateProgress
    }
}
  • Thời gian chờ: withTimeout áp dụng thời lượng tối đa (OTA_TIMEOUT_MS) cho quy trình giám sát. Nếu quá trình cập nhật không hoàn tất trong thời gian này, thì quá trình sẽ hết thời gian chờ.

  • Theo dõi các thay đổi về đặc điểm: Toán tử .distinctUntilChanged() đảm bảo rằng mã tiếp theo trong chuỗi chỉ phản ứng khi trạng thái của đặc điểm thực sự thay đổi, điều này giúp mã hiệu quả hơn so với việc liên tục thăm dò.

  • Xử lý cho đến khi hoàn tất: Toán tử .transformWhile tiếp tục xử lý các bản cập nhật miễn là OTA updateState không phải là trạng thái kết thúc (chẳng hạn như thành công hoặc thất bại).

  • Thu thập trạng thái: Đối với mỗi thay đổi trạng thái, khối .collect sẽ được thực thi để cập nhật các biến updateStateupdateStateProgress bằng các giá trị mới nhất từ đặc điểm.

Để biết thêm thông tin, hãy tham khảo tài liệu tham khảo về đặc điểm OtaSoftwareUpdateRequestor.

Đặc điểm ConfigurationDone

Đặc điểm này không bắt buộc để kích hoạt camera, nhưng cho phép ứng dụng theo dõi thời điểm thiết bị được thiết lập đầy đủ và có thể sử dụng bằng cách đặt thuộc tính AppConfigurationComplete thành true. Bạn nên sử dụng đặc điểm này sau đặc điểm OtaSoftwareUpdateRequestor.

device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }