سمات ما بعد إعداد الكاميرا

السمات التي يمكن استخدامها بعد إعداد الجهاز هي:

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) }