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

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