Pilsiz Cihazları Destekleme

Bu sayfa, Android'in çıkarılabilir pili olan veya dahili pili olmayan ürünleri nasıl ele aldığını açıklar. İkinci aygıtlar bunun yerine başka bir aygıttaki bir AC güç çıkışı veya USB bağlantı noktası gibi harici bir güç kaynağına bağlanır.

Pil mevcut mu?

Aşağıdaki kod, uygulamalar tarafından, cihazda halihazırda mevcut bir pil olup olmadığını tespit etmek için kullanılabilir:

```
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 bir pil 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. Bu tablo farklılıkları göstermektedir.

Pil durumu Android 9 ve üstü Android 8.1 ve önceki sürümler
Sunmak YANLIŞ doğru
Durum Bilinmeyen Doluyor
Kalan kapasite 0 100%
Sağlık Bilinmeyen iyi
AC şarj cihazı çevrimiçi durumu modifiye edilmemiş 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 üstü

Android 9, varsayılan olarak bir pil varmış gibi davranan, %100 şarj ediliyor ve termistöründeki normal sıcaklık okumasıyla sağlıklı olan pilsiz cihazlar için önceki bazı kodları kaldırır.

Bu bilgilerle ilgilenen çerçeve API'lerinin çoğu, daha önce olduğu gibi genel durumları ele almaya devam eder: sistem şarj oluyor (yani pil gücüyle çalışmıyor) olarak kabul edilecek ve pilin zayıf olduğu kabul edilmeyecektir. Kullanıcı arayüzü pil simgesini çizerse, bir ünlem işareti ile görünecek ve pil yüzdesi %0 olarak gösterilecektir. Ancak düşük pil nedeniyle cihaz 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 sistemin şarj olduğunu (veya pil gücüyle çalışmadığını) kabul edecek ve pilin zayıf olduğu kabul edilmeyecektir. Kullanıcı arayüzü pil simgesini oluşturuyorsa, bir ünlem işaretiyle görünecek ve pil yüzdesi %0 olarak gösterilecektir. Ancak düşük pil nedeniyle cihaz kapanmaz ve şarj veya iyi pil gerektiren işler planlanır.

uygulama

Android 9 varsayılan kodu cihazınız için düzgün çalışabilir, ancak ürününüzün güç ve pil durumunu yukarıda açıklandığı gibi doğru bir şekilde yansıtmak için bir çekirdek veya HAL değişikliği yapmanız önerilir. Android 9 ve üstü bir Linux güç kaynağı sınıfı şarj cihazı algılamazsa, varsayılan olarak tüm şarj türleri (AC, USB, Kablosuz) çevrimdışı duruma sahip olacaktır. Tüm şarj cihazları çevrimdışıysa ancak herhangi bir pil cihazı algılanmadıysa, sistem daha önce açıklandığı gibi pil gücüyle değil, harici güçle çalıştığı anlamında hala şarj oluyor olarak kabul edilecektir.

Ürününüzün pili yoksa ve her zaman bir güç kaynağına bağlıysa, AC veya USB güç kaynağı için çevrimiçi sysfs özniteliğini true olarak ayarlayan bir Linux çekirdeği power_supply sınıfı şarj sürücüsü uygulamak en iyisidir. Veya cihazınız için bir Sağlık HAL'inde AC şarj cihazı çevrimiçi özelliğini yapılandırabilirsiniz. Bunu yapmak için, Uygulama Durumu 2.0'da açıklandığı gibi bir Sistem Durumu HAL'ı uygulayın.

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

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