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