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 elektrik prizi 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 altı
Sunmak YANLIŞ NS
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 kullanarak varsayılan ayarları değiştirebilir power_supply sürücü veya Sağlık HAL .

Android 9 ve üstü

Android 9, varsayılan olarak bir pil varmış gibi davranan, %100'de şarj edilen ve termistöründeki normal sıcaklık okumasıyla iyi durumda olan pilsiz cihazlar için önceki bazı kodları kaldırır.

Sistemi (pil gücüyle çalışmıyor olduğunu) şarj olarak kabul edilecek ve düşük pil olması dikkate alınmayacaktır: bu bilgilerle anlaşma aynı şekilde daha önce ortak durumlarla başa devam ettiğini Çoğu çerçeve API'leri. 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 altı

Pil durumu bilinmediği için, Android çerçeve API'leri sistem şarj edilecek (veya pil gücüyle çalışırken değil) ve düşük bir pil olması dikkate alınmayacaktır dikkate alacaktır. 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 tespit etmezse Linux güç kaynağı sınıfı şarj cihazı, varsayılan olarak tüm şarj türleri (AC, USB, kablosuz) durumu çevrimdışı 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 pili yok ve her zaman bir güç kaynağına bağlıysa, AC veya onun çevrimiçi setleri USB güç kaynağı için bir Linux çekirdeği power_supply sınıf şarj sürücüsünü uygulamak en iyisidir sysfs için niteliğini true . Veya cihazınız için bir Sağlık HAL'inde AC şarj cihazı çevrimiçi özelliğini yapılandırabilirsiniz. Açıklandığı gibi bu bir sağlık HAL uygulamak yapmak için Uygulama Sağlık 2.0 .

Bu özel Sağlık HAL özel bir sürümünü uygulayan Health::getHealthInfo() o değiştirir değeri BatteryProperties.chargerAcOnline = true .

Başlamak için, dosya kopyalama hardware/interfaces/health/2.0/default/Health.cpp Kendi Sağlık HAL uygulamasına ve uygun değiştirmek Sağlık 2.0 README .