نظام توفير البطارية الروتيني

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

تكوين الجهاز

مواصفات المزود

لإعلام واجهة مستخدم الإعدادات بأن الجهاز قد تم تكوينه بشكل صحيح، استخدم تراكب التكوين لتجاوز القيمة 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>

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

تثبيت

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

تفعيل توفير البطارية

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

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

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

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

تخضع واجهة برمجة التطبيقات هذه لتجاوزات المستخدم وتأجيل توفير البطارية بنفس طريقة توفير البطارية التلقائي المستند إلى النسبة المئوية. راجع وثائق API لمزيد من المعلومات.

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

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