Pilsiz cihazları destekleme

Bu sayfada, Android'in kaldırılabilir olan ürünleri nasıl işlediği açıklanmaktadır. veya dahili pil yok. 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ı?

Aşağıdaki kod, cihazlarda aşağıdaki kod olup olmadığını algılamak için kullanılabilir: pil var:

```
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 pil içeren bir cihaz algılamazsa: pille ilgili varsayılan değerler kullanılır. Varsayılan değerlerin Android 9 sürümü 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
Prize takılı ş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, pilsiz kullanım için eski kodların bir kısmını kaldırır varsayılan olarak şarjı varmış gibi görünen ancak %100 sağlıklıydı ve termistör.

Bu bilgilerle ilgilenen birçok çerçeve API'si, yaygın olarak aynı durum söz konusu olabilir: Sistemin şarj (pil gücüyle çalışmıyor) olduğundan ve pilin düşük olmasına dikkat edin. Kullanıcı arayüzü pil simgesini çizdiğinde, ünlem işaretiyle görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz, düşük pil seviyesi ve şarj veya pil iyi olması planlandı.

Android 8.1 ve önceki sürümler

Pil durumu bilinmediğinden, Android çerçeve API'leri bunu dikkate alır sistem şarj (ya da pil gücüyle çalışmıyor) olacak pilin düşük olduğu kabul edilir. Kullanıcı arayüzü, pili oluşturuyorsa bir ünlem işaretiyle görünür ve pil yüzdesi %0 olarak gösterilir. Ancak cihaz, düşük pil seviyesi ve şarj edilmesi gerektiğini veya pilinin iyi olduğunu planladığınızdan emin olun.

Uygulama

Android 9'un varsayılan kodu Ancak, bunun için çekirdek veya HAL öğelerini seçmeniz açıklandığı gibi ürününüzün güç ve pil durumunu doğru bir şekilde yansıtmalıdır bölümünü ziyaret edin. Android 9 ve sonraki sürümler Linux güç kaynağı algılamazsa sınıf şarj cihazı, varsayılan olarak tüm şarj cihazı türlerinde (AC, USB, Kablosuz) durumu çevrimdışı. Tüm şarj cihazları çevrimdışıysa ancak pilli cihaz yoksa algılanırsa sistemin şu şekilde şarj olduğu kabul edilir: önceden açıklandığı gibi pil gücüyle değil, harici güçle çalıştığından emin olun.

Ürününüzde pil yoksa ve her zaman bir güç kaynağına bağlıysa AC veya USB güç kaynağı için online sysfs özelliğini true olarak ayarlayan bir Linux çekirdeği power_supply sınıfı şarj cihazı sürücüsü uygulamak en iyisidir. Alternatif olarak, AC şarj cihazı online mülkünü Sağlık HAL'sinde yapılandırabilirsiniz. seçin. Bunu yapmak için Uygulama Sağlık 2.0.

Bu özel Health HAL, BatteryProperties.chargerAcOnline = true değerini değiştiren Health::getHealthInfo() özel bir sürümünü uygular.

Başlamak için dosyayı kopyalayın hardware/interfaces/health/2.0/default/Health.cpp ve bunu Health 2.0 BENİOKU.