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.