سلسلة إجراءات توفير شحن البطارية

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

إعداد الجهاز

مواصفات موفّر الخدمة

لإعلام واجهة مستخدم الإعدادات بتهيئة الجهاز بشكل صحيح، استخدم تراكب الإعدادات لإلغاء القيمة config_batterySaverScheduleProvider مع اسم حزمة تطبيقك.

على سبيل المثال، إذا كنت تريد أن تتحكّم حزمة التطبيق com.google.android.apps.turbo في الإعداد استنادًا إلى الروتين، عليك ضبط قيمة الإعدادات التالية:

<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>

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

الحدّ الأدنى التلقائي لإيقاف الميزة

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

إعدادات التطبيق

الأذونات

إنّ واجهات برمجة التطبيقات اللازمة للتطبيق لتفعيل ميزة "توفير شحن البطارية" من التطبيق محمية. من خلال الإذن android.permission.POWER_SAVER. هذا هو إذن التوقيع أو الإذن المميّز، لذا يجب منح التطبيق الذي تريد التمكّن من تشغيله توفير شحن البطارية هذا الإذن في privapp-whitelist.

إليك مثال على منح إذن privapp لأحد التطبيقات:

<privapp-permissions package="com.google.android.apps.turbo">
   <permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>

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

التثبيت

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

تشغيل ميزة "توفير شحن البطارية"

واجهات برمجة التطبيقات

بافتراض أنّ الإعداد ناجح حتى الآن، على تطبيق المصنّع الأصلي للجهاز المحدّد في الإعدادات. ستتمكن من استدعاء الطريقة المرتبطة في PowerManager بنجاح لبدء التشغيل توفير شحن البطارية:

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

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

تخضع واجهة برمجة التطبيقات هذه لعمليات إلغاء المستخدم وتأجيل ميزة "توفير شحن البطارية" بالطريقة نفسها. توفير شحن البطارية التلقائي المستند إلى النسبة المئوية. يمكنك الاطّلاع على مستندات حول واجهة برمجة التطبيقات لمزيد من المعلومات.

للتحقّق من استدعاء واجهات برمجة التطبيقات بنجاح، يمكنك طلب إعدادات عامة للتحقّق من تغيير قيمة إعداد الدعم وفقًا لطلبات بيانات من واجهة برمجة التطبيقات

على سبيل المثال، إذا اختار المستخدم وضع توفير شحن البطارية الروتيني وكان التطبيق مضبوطًا على عند الاتصال بـ setDynamicPowerSaveHint(true, 10)، يجب أن تتضمن الإعدادات العامة القيم التالية:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1

إذا طلبت بعد ذلك setDynamicPowerSaveHint(false, 25)، فإن القيم يجب أن تكون:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0

يمكنك التحقّق من هذه القيم باستخدام الأمر adb التالي:

adb shell settings get global <setting-name>

التحقق

ويُرجى العِلم بأنّه ما مِن طريقة مبرمَجة للتحقّق من هذه الميزة، لأنّه لا تتوفّر طريقة لمعرفة نوع السلوك الذي سيستخدمه المصنّع الأصلي للجهاز لتحديد وقت تفعيل ميزة "توفير شحن البطارية" الروتينية الحالي. وبالتالي فإن المصنّعين الأصليين للأجهزة مسئولون عن اختبار التكامل للتأكد من أن السلوك يلبي التوقعات. وعلى وجه التحديد، تحقَّق من أن الجهاز يمكنه تنفيذ المهام التالية:

  • يختار المستخدم حسب النسبة المئوية في واجهة مستخدم الجدول الزمني لميزة "توفير شحن البطارية". ويختار %15 من المفترض أن يتم تفعيل ميزة "توفير شحن البطارية" تلقائيًا فقط عند هبوط نسبة شحن البطارية إلى ‎15%.
  • يختار المستخدم استنادًا إلى سلسلة الإجراءات في واجهة مستخدم الجدول الزمني لميزة "توفير شحن البطارية". فعندما يطلب التطبيق واجهة برمجة التطبيقات مع true، ويتم تفعيل ميزة "توفير شحن البطارية". بالإضافة إلى ذلك، يتم إيقاف ميزة "توفير شحن البطارية" تلقائيًا إذا كان الجهاز مشحونًا يشير إلى مستوى الحد الأدنى وغير موصول بمصدر طاقة.
  • يختار المستخدم لا شيء في واجهة مستخدم الجدول الزمني لتوفير شحن البطارية. توفير شحن البطارية يجب ألا يظهر تلقائيًا أبدًا.
  • في حال فعَّل التطبيق ميزة "توفير شحن البطارية" وتجاهل المستخدم البطارية يدويًا التوقف عن التشغيل مرة أخرى (باستخدام الإعدادات السريعة والإعدادات وما إلى ذلك)، فيجب أن يظل إيقاف التشغيل إلى أن يُعيد المستخدم تشغيله مرة أخرى يدويًا أو يوصّل جهاز واحد.