التعبيرات الديناميكية في Wear OS

يتيح Wear OS إجراء التحديثات الديناميكية للمعلومات التي تظهر في المربّعات والإضافات.

باستخدام التعبيرات الديناميكية، يمكنك ربط البيانات التي تظهر على سطح تطبيقك، مثل مربّع أو إضافة، بمصدر بيانات معيّن. مثال على مصدر البيانات هذا هو بيانات معدل ضربات القلب التي يمكن للمنصة قراءتها. بعد إنشاء هذا الربط، يحدِّث النظام البيانات الموجودة في المربّعات والإضافات تلقائيًا.

إنشاء عمليات ربط البيانات الديناميكية

لإنشاء ربط بيانات ديناميكي، حدِّد متغيّرًا يستخدِم نوع بيانات ديناميكي. اربط هذا المتغيّر بمصدر البيانات الذي تريد استخدامه.

على سبيل المثال، يمكنك استرجاع القيم ذات الصلة بساعة النظام والمعلومات الصحية، كما هو موضّح في مقتطف الرمز التالي.

Kotlin

val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()

Java

DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();
DynamicInt32 steps = PlatformHealthSources.dailySteps();

يمكنك أيضًا إنشاء قيم ديناميكية من التعبيرات الثابتة وإجراء عمليات حسابية على أي قيمة ديناميكية، كما هو موضح في المقتطف التالي:

Kotlin

val dynamicValue = DynamicInt32.constant(1).plus(2)

Java

DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)

قائمة بأنواع البيانات الديناميكية المحتملة

يتوافق Wear OS مع أنواع البيانات الديناميكية التالية:

بالإضافة إلى ذلك، يمكنك تحويل نوع البيانات باستخدام إمكانات مدمجة، مثل ما يلي:

  • يتيح DynamicInt32 التحويل إلى DynamicString باستخدام format().
  • تتيح لك DynamicDuration استخراج أجزاء معيّنة، مثل جزء الثواني من مدّة، مثل عناصر DynamicInt32.

استخدام عدد محدود من التعبيرات الديناميكية على كل شاشة

يفرض النظام حدًا أقصى على عدد التعبيرات الديناميكية التي يمكنه معالجتها في الوقت نفسه على شاشة معيّنة. يقوم النظام بتحويل أي تعبيرات ديناميكية إضافية إلى قيم ثابتة.

يعتبر Wear OS التعبيرات الثابتة على أنّها تعبيرات ديناميكية أيضًا. على سبيل المثال، يحتوي مقتطف الرمز التالي على 4 تعبيرات ديناميكية:

  1. عملية plus().
  2. عملية animate().
  3. التعبير constant(1)
  4. التعبير constant(2)، والذي تشير إليه القيمة 2 في التعبير الديناميكي plus().
DynamicInt32.constant(1).plus(2).animate()