Pilsiz cihazları destekleme

Bu sayfada, Android'in çıkarılabilir pilleri olan veya dahili pili olmayan ürünleri nasıl işlediği açıklanmaktadır. Bu cihazlar bunun yerine bir AC prizi 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);
```

Pil içermeyen cihazların davranışı

Android, ürününüz için bir pil cihazı algılamazsa pille ilgili aşağıdaki varsayılan değerler kullanılır. Varsayılanların Android 9 sürümünde değiştiğini unutmayın. Bu tabloda farklılıklar gösterilmektedir.

Pil durumu Android 9 ve sonraki sürümler Android 8.1 ve önceki sürümler
Sun yanlış doğru
Durum Bilinmeyen şarj oluyor
Kalan kapasite 0 %100
Sağlık Bilinmeyen iyi
AC şarj cihazının bağlantı durumu değiştirilmedi true olarak zorlanır

Üreticiler, varsayılan ayarları bir çekirdek power_supply sürücüsü veya Health HAL kullanarak değiştirebilir.

Android 9 ve sonraki sürümler

Android 9, pilsiz cihazlar için daha önce kullanılan ve varsayılan olarak pilin mevcut olduğunu, %100 şarj edildiğini ve termistöründe normal bir sıcaklık değeriyle iyi durumda olduğunu gösteren bazı kodları kaldırır.

Bu bilgilerle ilgilenen çoğu çerçeve API'si, yaygın durumları daha önce olduğu gibi işlemeye devam eder: Sistem şarj oluyor (yani pil gücüyle çalışmıyor) olarak kabul edilir ve pilinin az olduğu düşünülmez. Kullanıcı arayüzü pil simgesini çiziyorsa simge ünlem işaretiyle görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz, pil seviyesi düşük olduğu için kapanmaz ve şarj veya iyi pil gerektiren işler planlanır.

Android 8.1 ve önceki sürümler

Pil durumu bilinmediğinden Android çerçeve API'leri sistemi şarj oluyor (veya pil gücüyle çalışmıyor) olarak kabul eder ve pilin düşük olduğu düşünülmez. Kullanıcı arayüzünde pil simgesi oluşturulursa simge ünlem işaretiyle birlikte görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz, pil seviyesi düşük olduğu için kapatılmaz ve şarj veya iyi bir pil gerektiren işler planlanır.

Uygulama

Android 9'un varsayılan kodu cihazınızda 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 çekirdek veya HAL değişikliği yapmanız önerilir. Android 9 ve sonraki sürümlerde Linux güç kaynağı sınıfı şarj cihazı algılanmazsa 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ılanmadıysa sistem, daha önce açıklandığı gibi pil gücüyle değil harici güçle çalıştığı için yine de şarj oluyor olarak kabul edilir.

Ürününüzde pil yoksa ve her zaman bir güç kaynağına bağlıysa AC veya USB güç kaynağı için online sysfs özelliğini true olarak ayarlayan bir Linux çekirdeği power_supply sınıfı şarj cihazı sürücüsü uygulamanız önerilir. Alternatif olarak, cihazınız için bir Health HAL'de AC şarj cihazı online özelliğini yapılandırabilirsiniz. Sağlık HAL'ında AC şarj cihazı online mülkünü yapılandırmak için Health AIDL HAL bölümüne bakın.

Bu özel Health HAL, Health::getHealthInfo() özel bir sürümünü uygular ve BatteryProperties.chargerAcOnline = true değerini değiştirir.

Başlamak için hardware/interfaces/health/aidl/default/Health.cpp dosyasını kendi Health HAL uygulamanıza kopyalayın ve Health AIDL HAL'e göre değiştirin.