Pilsiz Cihazları Destekleme

Bu sayfada, Android'in çıkarılabilir pilleri olan veya dahili pili olmayan ürünleri nasıl kullandığı açıklanmaktadır. İkinci cihazlar bunun yerine AC elektrik prizi veya başka bir cihazdaki USB bağlantı noktası gibi harici bir güç kaynağına bağlanır.

Pil mevcut mu?

Aşağıdaki kod, uygulamalar tarafından cihazın şu anda mevcut bir pili 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 üzeri Android 8.1 ve altı
Sunmak YANLIŞ doğru
Durum Bilinmeyen Doluyor
Kalan kapasite 0 100%
Sağlık Bilinmeyen iyi
AC şarj cihazı çevrimiçi durumu modifiye edilmemiş gerçek olmaya zorlandı

Üreticiler, bir çekirdek güç_supply sürücüsü veya Sağlık HAL kullanarak varsayılan ayarları değiştirebilir.

Android 9 ve üzeri

Android 9, varsayılan olarak bir pil varmış gibi davranan, %100 şarj ediliyor ve termistöründe normal bir sıcaklık okuması ile sağlık durumu iyi 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 ortak durumları ele almaya devam eder: sistemin şarj olduğu (yani, pil gücüyle çalışmadığı) kabul edilecek ve pilin zayıf olduğu kabul edilmeyecektir. Kullanıcı arayüzü pil simgesini çizerse, bir ünlem işaretiyle görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz düşük pil nedeniyle kapanmayacak ve şarj veya iyi pil gerektiren işler programlanacaktır.

Android 8.1 ve altı

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ı arabirimi pil simgesini oluşturursa, bir ünlem işaretiyle görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz düşük pil nedeniyle kapanmayacak ve şarj veya iyi pil gerektiren işler programlanacaktı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ü, Linux güç kaynağı sınıfında bir şarj cihazı algılamazsa varsayılan olarak tüm şarj cihazı türlerinin (AC, USB, Kablosuz) durumu çevrimdışı olacaktır. Tüm şarj cihazları çevrimdışıysa ancak pil aygıtı algılanmıyorsa, sistem yine de daha önce açıklandığı gibi pil gücüyle değil harici güçle çalıştığı anlamında şarj ediyor 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 kernel power_supply sınıfı şarj sürücüsü uygulamak en iyisidir. Veya cihazınız için bir Sağlık HAL'sinde AC şarj cihazı çevrimiçi özelliğini yapılandırabilirsiniz. Bunu yapmak için, Sağlık 2.0'ın Uygulanması bölümünde açıklandığı gibi bir Sağlık HAL'ı uygulayın.

Bu özel Sağlık 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/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.