Pilsiz cihazları destekleme

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

Pil var mı?

Uygulamalar, cihazda pil olup olmadığını algılamak için aşağıdaki kodu kullanabilir:

```
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 pilli bir 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. Farklılıklar bu tabloda gösterilir.

Pil durumu Android 9 ve sonraki sürümler Android 8.1 ve önceki sürümler
Göster yanlış doğru
Durum Bilinmeyen şarj oluyor
Kalan kapasite 0 %100
Sağlık Bilinmeyen iyi
AC şarj cihazının çevrimiçi durumu değiştirilmedi 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 sonraki sürümler

Android 9, varsayılan olarak pil olduğunu, %100 şarj olduğunu ve termistöründe normal bir sıcaklık ölçümü olduğunu iddia eden pilsiz cihazlara yönelik bazı eski kodları kaldırır.

Bu bilgilerle ilgilenen birçok çerçeve API'si, genel durumları öncekiyle aynı şekilde ele almaya devam eder: Sistemin şarj ettiği (yani pil gücüyle çalışmadığı) kabul edilir ve pilin düşük olduğu kabul edilmez. Kullanıcı arayüzünde pil simgesi çiziliyse bu simge bir ünlem işaretiyle, pil yüzdesi ise %0 olarak gösterilir. Ancak cihaz, pil seviyesi düşük olduğu için kapanmaz ve şarj veya iyi pil gerektiren işler planlanır.

Android 8.1 ve önceki sürümler

Pil durumu bilinmediği için Android çerçeve API'leri sistemin şarj edildiğini (veya pil gücüyle çalışmadığını) düşünür ve pilin düşük olduğu kabul edilmez. Kullanıcı arayüzünde pil simgesi oluşturulursa bir ünlem işaretiyle, pil yüzdesi de %0 olarak gösterilir. Ancak cihaz düşük pil seviyesi nedeniyle kapanmaz ve şarj ya da pilin iyi olmasını gerektiren işler planlanır.

Uygulama

Android 9'un 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 bir şekilde yansıtmak için bir çekirdek veya HAL değişikliği yapmanız önerilir. Android 9 ve sonraki sürümler Linux güç kaynağı sınıfı şarj cihazı algılamazsa varsayılan olarak tüm şarj cihazı türleri (AC, USB, kablosuz) çevrimdışı olarak görünür. Tüm şarj cihazları çevrimdışıysa ancak pil cihazı algılanmazsa daha önce açıklandığı gibi sistem, pil gücüyle değil, harici olarak çalışıyormuş gibi şarj oluyor kabul edilir.

Ürününüzün pili yoksa ve her zaman bir güç kaynağına bağlıysa online sysfs özelliğini true olarak ayarlayan AC veya USB güç kaynağı için, Linux çekirdekli power_supply sınıfı şarj cihazı sürücüsü kullanmanız önerilir. Alternatif olarak, cihazınız için Health HAL'de AC şarj cihazı online mülkünü yapılandırabilirsiniz. Bunu yapmak için Health 2.0'ı Uygulama bölümünde açıklandığı şekilde bir Sağlık HAL'si uygulayın.

Bu özel Durum 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 BENİOKU'ya göre değiştirin.