Cechy, których można używać po uruchomieniu urządzenia:
Cecha OtaSoftwareUpdateRequestor
Wdrożono w przykładowej aplikacji na Androida
Ta cecha udostępnia interfejs do monitorowania aktualizacji oprogramowania OTA na urządzeniu z kamerą. Po uruchomieniu kamera rozpoczyna aktualizację i przesyła jej stan do aplikacji. Gdy aplikacja otrzyma informację o zakończeniu aktualizacji oprogramowania, kamera może rozpocząć transmisję na żywo.
Poniższy przykładowy kod i wyjaśnienie pokazują, jak można używać tej cechy.
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
}
}
Czas oczekiwania:
withTimeoutwymusza maksymalny czas trwania (OTA_TIMEOUT_MS) procesu monitorowania. Jeśli aktualizacja nie zakończy się w tym czasie, nastąpi przekroczenie limitu czasu.Obserwowanie zmian cech: operator
.distinctUntilChanged()zapewnia, że następny kod w łańcuchu reaguje tylko wtedy, gdy stan cechy faktycznie się zmieni, co jest bardziej wydajne niż ciągłe odpytywanie.Przetwarzanie do zakończenia: operator
.transformWhilekontynuuje przetwarzanie aktualizacji, dopóki OTAupdateStatenie osiągnie stanu końcowego (np. powodzenia lub niepowodzenia).Stan zbierania: przy każdej zmianie stanu wykonywany jest blok
.collect, aby zaktualizować zmienneupdateStateiupdateStateProgresso najnowsze wartości z atrybutu.
Więcej informacji znajdziesz w OtaSoftwareUpdateRequestordokumentacji cech.
Cecha ConfigurationDone
Ten atrybut nie jest wymagany do aktywacji aparatu, ale umożliwia aplikacji śledzenie, kiedy urządzenie jest w pełni skonfigurowane i gotowe do użycia, poprzez ustawienie atrybutu AppConfigurationComplete na true.
Ten atrybut powinien być używany po atrybucie OtaSoftwareUpdateRequestor.
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }