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

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