Pilsiz cihazları destekleyin

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 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 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 eder: sistemin şarj olduğu (yani pil gücüyle çalışmadığı) kabul edilir ve pilin zayıf olduğu kabul edilmez. Kullanıcı arayüzü pil simgesini çizerse, ünlem işaretiyle birlikte görünür ve pil yüzdesi %0 olarak gösterilir. Ancak pilin düşük olması nedeniyle cihaz kapanmaz ve şarj edilmesi gereken veya pilinin iyi olması gereken işler planlanı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ı arayüzü pil simgesini oluşturursa, bu simge bir ünlem işaretiyle birlikte görünür ve pil yüzdesi %0 olarak gösterilir. Ancak pilin düşük olması nedeniyle cihaz kapanmaz ve şarj edilmesi gereken veya pilinin iyi olması gereken işler planlanı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 bir ç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 Health::getHealthInfo() nun BatteryProperties.chargerAcOnline = true değerini değiştiren ö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.