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