تصف هذه الصفحة كيفية تعامل Android مع المنتجات التي تحتوي على إمّا عناصر قابلة للإزالة. بطاريات أو لا بطاريات داخلية. بدلاً من ذلك، تم توصيل الأجهزة الأخيرة مصدر طاقة خارجي، مثل مقبس تيار متردد أو منفذ USB على جهاز آخر الخاص بك.
هل هناك بطارية؟
قد تستخدم التطبيقات الرمز التالي لرصد ما إذا كان الجهاز يحتوي على بطارية:
```
final Intent batteryInfo = registerReceiver(null, new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));
return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
```
سلوك الجهاز بدون بطارية
إذا لم يرصد Android جهاز يعمل بالبطارية لمنتجك، في ما يلي الإجراءات التالية: يتم استخدام القيم الافتراضية المتعلقة بالبطارية. لاحظ أن الإعدادات الافتراضية قد تغيرت في إصدار Android 9 يعرض هذا الجدول الاختلافات.
حالة البطارية | الإصدار 9 من نظام Android والإصدارات الأحدث | الإصدار 8.1 من نظام التشغيل Android والإصدارات الأقدم |
---|---|---|
مشاركة العرض | خطأ | صحيح |
الحالة | مرحلة غير محددة | جارٍ الشحن |
السعة المتبقية | 0 | 100% |
البطاقة | مرحلة غير محددة | جيد |
حالة اتصال شاحن AC بالإنترنت | لم يتم تعديله | تم ضبطها على "صحيح" |
يمكن للمصنعين تغيير الإعدادات التلقائية باستخدام ملف kernel power_supply أو برنامج تشغيل Health HAL.
الإصدار 9 من نظام Android والإصدارات الأحدث
نظام Android 9 يزيل بعض الرموز السابقة لشحن البطارية الأجهزة التي تظاهر بوجود بطارية بشكل افتراضي، وكان يتم شحنها في 100٪، وكان في صحة جيدة مع قراءة عادية لدرجة الحرارة على الثرموستور.
وتستمر معظم واجهات برمجة التطبيقات لإطار العمل التي تتعامل مع هذه المعلومات في معالجة الأدوات الشائعة المواقف نفسها كما في السابق: يُعد النظام الشحن (أي لا يعمل باستخدام طاقة البطارية)، ولن يتم اعتباره لكي تنخفض طاقة البطارية. إذا رسمت واجهة المستخدم رمز البطارية، فستظهر بعلامة تعجب، وتظهر نسبة شحن البطارية 0%. ولكن لن يتم إيقاف تشغيل الجهاز بسبب انخفاض طاقة البطارية والمهام التي تتطلب تمت جدولة شحن الجهاز أو استخدام بطارية جيدة.
الإصدار 8.1 من نظام التشغيل Android والإصدارات الأقدم
وبما أنّ حالة البطارية غير معروفة، ستعتبر واجهات برمجة التطبيقات لإطار عمل Android أنّه يتم شحن النظام (أو أنّه لا يعمل باستخدام طاقة البطارية)، ولن يتم اعتباره أنّه يحتوي على بطارية منخفضة. إذا كانت واجهة المستخدم تعرض مستوى شحن البطارية ستظهر مع علامة تعجب، وتكون النسبة المئوية للبطارية تظهر على شكل 0٪. ولكن لن يتم إيقاف تشغيل الجهاز بسبب انخفاض طاقة البطارية، والمهام التي تتطلب الشحن أو تمت جدولة طاقة البطارية.
التنفيذ
قد يعمل الرمز التلقائي لنظام Android 9 بشكل صحيح من أجل ولكن يوصى بإجراء تغيير في النواة أو تغيير HAL تعكس بدقة حالة الطاقة والبطارية للمنتج، كما هو موضح أعلاه. في حال لم يرصد نظام Android 9 والإصدارات الأحدث مصدر إمداد طاقة Linux الصف شاحن، ثم ستتوفّر بشكل تلقائي لجميع أنواع الشواحن (التيار المتردد وUSB واللاسلكي) الحالة غير متصل. إذا كانت جميع الشواحن غير متصلة بالإنترنت ولكن لا يتوفّر جهاز بطاريات سيتم اعتبار أن النظام قيد الشحن بمعنى أنه يعمل الجهاز باستخدام طاقة خارجية وليس بالبطارية كما هو موضح سابقًا.
إذا كان المنتج لا يحتوي على بطارية ويتم توصيله دائمًا بمصدر طاقة
يُفضل تنفيذ شاحن kernel kernel power_supply فئة Linux
برنامج التشغيل لمصدر طاقة AC أو USB الذي يضبط السمة online sysfs
إلى true
. أو يمكنك ضبط موقع شاحن التيار المتّصل على الإنترنت في Health HAL
لجهازك. ولإجراء ذلك، يجب تنفيذ "HAL" للصحة كما هو موضّح في المقالة تنفيذ
Health 2.0:
يُنفّذ ملف Health HAL المخصّص هذا إصدارًا مخصّصًا من Health::getHealthInfo()
.
تعمل على تعديل قيمة BatteryProperties.chargerAcOnline = true
.
للبدء، انسخ الملف
hardware/interfaces/health/2.0/default/Health.cpp
إلى تطبيق Health HAL الخاص بك وتعديله بما يتوافق مع Health 2.0
الملف التمهيدي.