Pilsiz cihazları destekleme

Bu sayfada, Android'in çıkarılabilir cihazlar olan ürünleri nasıl işlediği açıklanmaktadır. pilleri kullanmaması veya dahili pil olmaması gerekir. Diğer cihazlar ise başka bir cihazdaki AC priz veya USB bağlantı noktası gibi harici bir güç kaynağı olanak tanı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ü Bu tabloda farklar gösterilmektedir.

Pil durumu Android 9 ve sonraki sürümler Android 8.1 ve önceki sürümler
Şimdi 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, çekirdek kullanarak varsayılan ayarları değiştirebilir. güç_tedariki sürücüsünü veya Sağlık HAL'sini kullanabilirsiniz.

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üzün pili yoksa ve her zaman bir güç kaynağına bağlıysa bir Linux çekirdeği power_supply sınıfı şarj cihazı uygulamak en iyisidir. online sysfs özelliğini ayarlayan AC veya USB güç kaynağı için sürücü Hedef: true. 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 Sağlık HAL'si, Health::getHealthInfo() özelliğinin özel bir sürümünü uygular BatteryProperties.chargerAcOnline = true değerini değiştirir.

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