Pilsiz Cihazları Destekleme

Bu sayfada Android'in çıkarılabilir pili 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 cihazda mevcut bir pilin bulunup bulunmadığı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 Android9 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ının çevrimiçi durumu modifiye edilmemiş doğruya zorlandım

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

Android9 ve üzeri

Android 9, varsayılan olarak bir pilin mevcut olduğunu, %100 şarj edildiğini ve termistöründe normal bir sıcaklık okumasıyla sağlığının iyi olduğunu iddia eden pilsiz cihazlara yönelik bazı önceki kodları kaldırır.

Bu bilgilerle ilgilenen çoğu çerçeve API'si, genel durumları daha önce olduğu gibi ele almaya devam ediyor: 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, ünlem işaretiyle birlikte görünecek ve pil yüzdesi %0 olarak gösterilecektir. Ancak cihaz düşük pil nedeniyle kapanmayacaktır ve şarj gerektiren veya pilin iyi olması gereken işler planlanacaktı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 düşük olduğu kabul edilmeyecektir. Kullanıcı arayüzü pil simgesini oluşturursa, bu simge bir ünlem işaretiyle birlikte görünecek ve pil yüzdesi %0 olarak gösterilecektir. Ancak cihaz düşük pil nedeniyle kapanmayacaktır ve şarj gerektiren veya pilin iyi olması gereken işler planlanacaktır.

Uygulama

Android 9 varsayılan kodu cihazınız için düzgün çalışabilir ancak yukarıda 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 üzeri, Linux güç kaynağı sınıfından bir şarj cihazı tespit etmezse varsayılan olarak tüm şarj cihazı türleri (AC, USB, Kablosuz) çevrimdışı durumuna sahip olacaktır. Tüm şarj cihazları çevrimdışıysa ancak herhangi bir pil cihazı algılanmadıysa, sistemin daha önce açıklandığı gibi pil gücüyle değil, harici güçle çalıştığı anlamında şarj olduğu 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 özelliğini true olarak ayarlayan bir Linux çekirdeği power_supply sınıfı şarj cihazı sürücüsü uygulamak en iyisidir. Veya cihazınız için Sağlık HAL'inde 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'i uygulayın.

Bu özel Sağlık HAL'si BatteryProperties.chargerAcOnline = true değerini değiştiren Health::getHealthInfo() işlevinin ö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.