السمات التي يمكن استخدامها بعد إعداد الجهاز هي:
OtaSoftwareUpdateRequestor trait
تم التنفيذ في "تطبيق العيّنة" لنظام التشغيل Android
توفّر هذه السمة واجهة لمراقبة تحديث البرامج عبر الاتصال بشبكة لاسلكية على جهاز الكاميرا. بعد إتمام عملية الإعداد، تبدأ الكاميرا عملية التحديث وتُبلغ التطبيق بحالتها. وعندما يتلقّى التطبيق إشعارًا باكتمال تحديث البرنامج، يمكن للكاميرا بدء البث المباشر.
يوضّح نموذج الرمز البرمجي والشرح التاليان كيفية استخدام السمة.
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) }