السمات التي يمكن استخدامها بعد إعداد الجهاز هي:
OtaSoftwareUpdateRequestor trait
توفّر هذه السمة واجهة لمراقبة تحديث البرنامج عبر الهواء على جهاز الكاميرا. بعد إعداد الكاميرا، تبدأ عملية التحديث وتُبلغ التطبيق بحالتها. وعندما يتلقّى التطبيق إشعارًا باكتمال تحديث البرنامج، يمكن للكاميرا بدء البث المباشر.
يوضّح نموذج الرمز البرمجي والشرح التاليان كيفية استخدام السمة.
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 trait
هذه السمة غير مطلوبة لتفعيل الكاميرا، ولكنها تتيح للتطبيق تتبُّع الوقت الذي يتم فيه إعداد الجهاز بالكامل وإمكانية استخدامه من خلال ضبط السمة AppConfigurationComplete على true.
يجب استخدام هذه السمة بعد السمة OtaSoftwareUpdateRequestor.
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }