التوافق مع الأجهزة التي لا تعمل ببطارية

تصف هذه الصفحة كيفية تعامل 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 الملف التمهيدي.