Bu sayfada, Android'in çıkarılabilir pili olan veya dahili pili olmayan ürünleri nasıl ele aldığı açıklanmaktadır. Diğer cihazlar ise AC priz veya başka bir cihazdaki USB bağlantı noktası gibi harici bir güç kaynağına bağlanır.
Pil var mı?
Uygulamalar, cihazda pil olup olmadığını algılamak için aşağıdaki kodu kullanabilir:
```
final Intent batteryInfo = registerReceiver(null, new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));
return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
```
Pilsiz cihaz davranışı
Android, ürününüz için pilli bir cihaz algılamazsa pille ilgili aşağıdaki varsayılan değerler kullanılır. Android 9 sürümünde varsayılanların değiştiğini unutmayın. Farklılıklar bu tabloda gösterilir.
Pil durumu | Android 9 ve sonraki sürümler | Android 8.1 ve önceki sürümler |
---|---|---|
Şimdi | yanlış | doğru |
Durum | Bilinmeyen | şarj oluyor |
Kalan kapasite | 0 | %100 |
Sağlık | Bilinmeyen | iyi |
AC şarj cihazının çevrimiçi durumu | değiştirilmedi | doğruya zorlandı |
Üreticiler, bir çekirdek power_supply sürücüsü veya Health HAL kullanarak varsayılan ayarları değiştirebilir.
Android 9 ve sonraki sürümler
Android 9, varsayılan olarak pil varmış gibi görünen, %100 şarj edilen ve termistörden normal bir sıcaklık ölçümü sonucunda sağlıklı durumda olan pilsiz cihazlara ait bazı eski kodları kaldırır.
Bu bilgilerle ilgilenen birçok çerçeve API'si, genel durumları öncekiyle aynı şekilde ele almaya devam eder: Sistemin şarj ettiği (yani pil gücüyle çalışmadığı) kabul edilir ve pil gücü düşük olarak kabul edilmez. Kullanıcı arayüzünde pil simgesi çiziliyse bu simge bir ünlem işaretiyle, pil yüzdesi ise %0 olarak gösterilir. Ancak cihaz, düşük pil seviyesi nedeniyle kapanmaz ve şarj ya da pilin iyi durumda olmasını gerektiren işler planlanır.
Android 8.1 ve önceki sürümler
Pil durumu bilinmediğinden, Android çerçeve API'leri sistemin şarj olduğunu (veya pil gücüyle çalışmıyor olduğunu) varsayar ve düşük pil seviyesi olarak değerlendirilmez. Kullanıcı arayüzünde pil simgesi oluşturulursa bu simge bir ünlem işaretiyle ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz, düşük pil seviyesi nedeniyle kapanmaz ve şarj ya da pilin iyi durumda olmasını gerektiren işler planlanır.
Uygulama
Android 9'un varsayılan kodu, cihazınız için düzgün çalışabilir, ancak daha önce açıklandığı gibi ürününüzün güç ve pil durumunu doğru şekilde yansıtmak için bir çekirdek veya HAL değişikliği yapmanız önerilir. Android 9 ve sonraki sürümler Linux güç kaynağı sınıfı şarj cihazı algılamazsa varsayılan olarak tüm şarj cihazı türlerinin (AC, USB, Kablosuz) durumu çevrimdışı olur. Tüm şarj cihazları çevrimdışıysa ancak pil cihazı algılanmazsa daha önce açıklandığı gibi sistem, pil gücüyle değil harici güçle çalışıyormuş gibi yine de şarj oluyor olarak kabul edilir.
Ürününüzün pili yoksa ve her zaman bir güç kaynağına bağlıysa online sysfs
özelliğini true
olarak ayarlayan AC veya USB güç kaynağı için, Linux çekirdekli power_supply sınıfı şarj cihazı sürücüsü kullanmanız önerilir. Alternatif olarak, AC şarj cihazı online özelliğini cihazınıza ilişkin bir Sağlık HAL'sinde
yapılandırabilirsiniz. AC şarj cihazı online özelliğini Sağlık HAL'sinde yapılandırmak için Sağlık AIDL HAL sayfasına bakın.
Bu özel Durum HAL'si, BatteryProperties.chargerAcOnline = true
değerini değiştiren özel bir Health::getHealthInfo()
sürümünü uygular.
Başlamak için hardware/interfaces/health/aidl/default/Health.cpp
dosyasını kendi Health HAL uygulamanıza kopyalayın ve dosyayı Health AIDL HAL'ye göre değiştirin.