إبقاء تطبيقك مرئيًا على Wear

يتعامل Wear OS تلقائيًا مع الانتقال إلى وضع الطاقة المنخفضة لتطبيق نشط عندما يتوقف المستخدم عن استخدام الساعة. يُعرَف ذلك باسم وضع الإضاءة السينمائية في النظام. إذا تفاعل المستخدم مع الساعة مرة أخرى خلال فترة زمنية معيّنة، سيعيد نظام التشغيل Wear OS المستخدم إلى التطبيق من حيث توقّف.

وفي حالات استخدام معيّنة، على سبيل المثال، عندما يريد المستخدم معرفة معدّل نبضات قلبه وسرعته أثناء الجري، يمكنك أيضًا التحكّم في ما يتم عرضه في وضع الاستراحة عندما تكون طاقة البطارية منخفضة. تُسمّى تطبيقات Wear OS التي تعمل في وضعَي "وضع عدم النشاط" و"التفاعل" باسم التطبيقات التي يتم تشغيلها دائمًا.

إنّ جعل التطبيق مرئيًا باستمرار يؤثر على عمر البطارية، لذا يجب مراعاة تأثيره عند إضافة هذه الميزة إلى تطبيقك.

ضبط إعدادات مشروعك

لإتاحة "وضع الإضاءة السينمائية"، اتّبِع الخطوات التالية:

  1. يمكنك إنشاء مشروعك أو تعديله استنادًا إلى الإعدادات في صفحة إنشاء تطبيق قابل للارتداء وتشغيله.
  2. أضِف إذن WAKE_LOCK إلى ملف بيان Android:
<uses-permission android:name="android.permission.WAKE_LOCK" />

تفعيل وضع التشغيل الدائم

لاستخدام الصف AmbientLifecycleObserver، يُرجى اتّباع الخطوات التالية:

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

    Kotlin

        val ambientCallback = object : AmbientLifecycleObserver.AmbientLifecycleCallback {
          override fun onEnterAmbient(ambientDetails: AmbientLifecycleObserver.AmbientDetails) {
            // ... Called when moving from interactive mode into ambient mode.
          }
    
          override fun onExitAmbient() {
            // ... Called when leaving ambient mode, back into interactive mode.
          }
    
          override fun onUpdateAmbient() {
            // ... Called by the system in order to allow the app to periodically
            // update the display while in ambient mode. Typically the system will
            // call this every 60 seconds.
          }
        }
        
  2. أنشِئ AmbientLifecycleObserver وسجِّل المراقب. ويتم عادةً استخدام هذه السياسة في onCreate() أو في الجزء العلوي القابل للإنشاء في حال استخدام ComposeAllowed لنظام التشغيل Wear OS، للسماح بتفعيل سلوك التشغيل الدائم طوال دورة حياة النشاط.

    Kotlin

    private val ambientObserver = AmbientLifecycleObserver(activity, callback)
    
    override fun onCreate(savedInstanceState: Bundle) {
      super.onCreate(savedInstanceState)
      lifecycle.addObserver(observer)
    
      // ...
    }
    
  3. يمكنك إزالة المراقب من خلال طلب الرقم removeObserver() عندما لا يكون سلوك التشغيل الدائم مطلوبًا. على سبيل المثال، يمكنك استدعاء هذه الطريقة في طريقة onDestroy() الخاصة بنشاطك.

تعديل المظهر المرئي في "وضع الإضاءة السينمائية"

وفقًا للإعدادات التلقائية، عند تفعيل وضع "التشغيل دائمًا"، لن يتغيّر مظهر الشاشة عند الدخول في "وضع الإضاءة السينمائية". يمكنك تعديل هذا السلوك من خلال إلغاء الطرق الواردة في AmbientLifecycleCallback.

للمساعدة في الحفاظ على الطاقة، اتّبِع الخطوات التالية:

  • يجب توضيح عدد وحدات بكسل أقل وترك معظم الشاشة سوداء. ننصحك بعرض المعلومات المهمة فقط في "وضع الإضاءة السينمائية" وتقديم مزيد من التفاصيل عندما يدخل المستخدم في وضع التفاعل.
  • يمكنك ضبط أي محتوى للاستفادة من التحديثات الأقل تكرارًا. على سبيل المثال، اعرض الموقّتات على أقرب دقيقة بدلاً من أقرب ثانية.
  • في العنصر AmbientDetails الذي تم تمريره إلى onEnterAmbient():
    • وإذا تم ضبط deviceHasLowBitAmbient، عليك إيقاف إضفاء لمسات خاصة على منع التشويش متى أمكن.
    • في حال ضبط السمة burnInProtectionRequired، يجب تغيير أماكن العرض المرئي بشكل دوري وتجنُّب المناطق البيضاء الخالصة.

عند استخدام ميزة ComposeAllowed على نظام التشغيل Wear OS، ننصح باستخدام طُرق معاودة الاتصال هذه لتعديل الحالة، ما يتيح للنظام إعادة إنشاء واجهة المستخدم بشكل مناسب.

للحصول على مثال عن كيفية تحقيق ذلك، تحقق من عينة التمرين القائمة على الإنشاء على GitHub، والتي تستخدم AmbientAware قابلة للإنشاء من مكتبة Horology.