คุณสมบัติที่ใช้ได้หลังจากเปิดใช้อุปกรณ์มีดังนี้
ลักษณะ OtaSoftwareUpdateRequestor
ลักษณะนี้มีอินเทอร์เฟซสำหรับตรวจสอบการอัปเดตซอฟต์แวร์ผ่าน OTA ในอุปกรณ์กล้อง เมื่อมีการจัดสรรแล้ว กล้องจะเริ่มอัปเดตและรายงานสถานะไปยังแอป เมื่อแอปได้รับสถานะว่าการอัปเดตซอฟต์แวร์เสร็จสมบูรณ์แล้ว กล้องจะเริ่มไลฟ์สดได้
โค้ดตัวอย่างและคำอธิบายต่อไปนี้แสดงวิธีใช้ลักษณะ
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
}
}
การหมดเวลา:
withTimeoutบังคับใช้ระยะเวลาสูงสุด (OTA_TIMEOUT_MS) สำหรับกระบวนการตรวจสอบ หากการอัปเดตไม่เสร็จสมบูรณ์ภายในเวลานี้ ระบบจะหมดเวลาการสังเกตการเปลี่ยนแปลงลักษณะ: ตัวดำเนินการ
.distinctUntilChanged()ช่วยให้มั่นใจได้ว่าโค้ดที่ตามมาในเชนจะตอบสนองเมื่อสถานะของ ลักษณะมีการเปลี่ยนแปลงจริงเท่านั้น ซึ่งทำให้มีประสิทธิภาพมากกว่าการสำรวจอย่างต่อเนื่องประมวลผลจนเสร็จสมบูรณ์: ตัวดำเนินการ
.transformWhileจะประมวลผลการอัปเดตต่อไป ตราบใดที่ OTAupdateStateยังไม่ได้อยู่ใน สถานะสิ้นสุด (เช่น สำเร็จหรือล้มเหลว)การรวบรวมสถานะ: สำหรับการเปลี่ยนแปลงสถานะแต่ละครั้ง ระบบจะเรียกใช้บล็อก
.collectเพื่ออัปเดตตัวแปรupdateStateและupdateStateProgressด้วย ค่าล่าสุดจากลักษณะ
ดูข้อมูลเพิ่มเติมได้ที่
OtaSoftwareUpdateRequestorการอ้างอิงลักษณะ
ลักษณะ ConfigurationDone
คุณไม่จำเป็นต้องใช้ลักษณะนี้ในการเปิดใช้งานกล้อง แต่จะช่วยให้แอป
ติดตามได้เมื่อตั้งค่าอุปกรณ์เรียบร้อยและพร้อมใช้งานโดยการตั้งค่าแอตทริบิวต์ AppConfigurationComplete เป็น true
ควรใช้ลักษณะนี้หลังจากลักษณะ OtaSoftwareUpdateRequestor
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }