السمات التي يمكن استخدامها بعد إعداد الجهاز هي:
سمة 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) }