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