Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

دعم الأجهزة التي لا تعمل ببطارية

تصف هذه الصفحة كيفية تعامل Android مع المنتجات التي تحتوي على بطاريات قابلة للإزالة أو لا تحتوي على بطاريات داخلية. بدلاً من ذلك ، يتم توصيل الأجهزة الأخيرة بمصدر طاقة خارجي ، مثل منفذ طاقة التيار المتردد أو منفذ USB على جهاز آخر.

هل البطارية موجودة؟

قد تستخدم التطبيقات الرمز التالي لاكتشاف ما إذا كان الجهاز يحتوي على بطارية موجودة حاليًا:

```
final Intent batteryInfo = registerReceiver(null, new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));

return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
```

سلوك الجهاز بدون بطارية

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

حالة البطارية Android 9 والإصدارات الأحدث Android 8.1 والإصدارات الأقدم
حاضر خاطئة صحيح
الحالة غير معروف الشحن
القدرة المتبقية 0 100٪
الصحة غير معروف حسن
حالة شاحن التيار المتردد على الإنترنت غير معدل أجبر على الحقيقة

قد تغير الشركات المصنعة الإعدادات الافتراضية باستخدام برنامج تشغيل kernel power_supply أو Health HAL .

Android 9 والإصدارات الأحدث

يزيل Android 9 بعض الرموز السابقة للأجهزة التي لا تحتوي على بطارية والتي تظاهرت افتراضيًا بوجود بطارية ، وتم شحنها بنسبة 100٪ ، وكانت بصحة جيدة مع قراءة درجة حرارة عادية على الثرمستور الخاص بها.

تستمر معظم واجهات برمجة التطبيقات (API) الخاصة بإطار العمل التي تتعامل مع هذه المعلومات في التعامل مع المواقف الشائعة كما في السابق: سيتم اعتبار النظام قيد الشحن (أي أنه لا يعمل على طاقة البطارية) ، ولن يتم اعتباره يحتوي على بطارية منخفضة. إذا قامت واجهة المستخدم برسم رمز البطارية ، فستظهر بعلامة تعجب ، وستظهر النسبة المئوية للبطارية على أنها 0٪. ولكن لن يتم إغلاق الجهاز بسبب انخفاض البطارية ، وسيتم تحديد المهام التي تتطلب شحنًا أو بطارية جيدة.

Android 8.1 والإصدارات الأقدم

نظرًا لأن حالة البطارية غير معروفة ، ستعتبر واجهات برمجة تطبيقات إطار عمل Android أن النظام قيد الشحن (أو لا يعمل على طاقة البطارية) ولن يتم اعتباره بطارية منخفضة. إذا عرضت واجهة المستخدم رمز البطارية ، فستظهر بعلامة تعجب ، وستظهر النسبة المئوية للبطارية على أنها 0٪. ولكن لن يتم إغلاق الجهاز بسبب انخفاض البطارية ، وسيتم تحديد المهام التي تتطلب شحنًا أو بطارية جيدة.

التنفيذ

قد يعمل رمز Android 9 الافتراضي بشكل صحيح لجهازك ، ولكن يوصى بإجراء تغيير على kernel أو HAL ليعكس بدقة حالة الطاقة والبطارية لمنتجك ، كما هو موضح أعلاه. إذا لم يكتشف Android 9 والإصدارات الأحدث جهاز شاحن من فئة مزود الطاقة من Linux ، فسيكون لجميع أنواع الشاحن افتراضيًا (AC ، USB ، Wireless) حالة غير متصلة بالإنترنت . إذا كانت جميع أجهزة الشحن غير متصلة بالإنترنت ولكن لم يتم اكتشاف جهاز بطارية ، فسيظل النظام قيد الشحن بمعنى أنه يعمل بالطاقة الخارجية ، وليس طاقة البطارية ، كما هو موضح سابقًا.

إذا لم يكن منتجك يحتوي على بطارية وكان دائمًا متصلاً بمصدر طاقة ، فمن الأفضل تنفيذ برنامج تشغيل شاحن فئة power_supply من Linux kernel لمصدر طاقة التيار المتردد أو USB الذي يضبط سمة sysfs عبر الإنترنت على true . أو يمكنك تكوين خاصية شاحن التيار المتردد عبر الإنترنت في Health HAL لجهازك. للقيام بذلك ، قم بتطبيق Health HAL كما هو موضح في تنفيذ Health 2.0 .

يطبق HAL Health المخصص هذا إصدارًا مخصصًا من Health::getHealthInfo() يعدل قيمة BatteryProperties.chargerAcOnline = true .

للبدء ، انسخ ملف hardware/interfaces/health/2.0/default/Health.cpp إلى تطبيق Health HAL الخاص بك وقم بتعديله وفقًا لـ Health 2.0 README .