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. 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 bir pil cihazı algılamazsa pille ilgili aşağıdaki varsayılan değerler kullanılır. Varsayılan değerlerin Android 9 sürümü Farklılıkları bu tabloda görebilirsiniz.

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, çekirdek kullanarak varsayılan ayarları değiştirebilir. güç_tedariki sürücüye veya Sağlık HAL'sine bağlanmayı deneyin.

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 çoğu çerçeve API'si, yaygın durumları daha önce olduğu gibi işlemeye devam eder: Sistem şarj oluyor (yani pil gücüyle çalışmıyor) olarak kabul edilir ve pilin düşük olduğu kabul edilmez. 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, 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ğinden, Android çerçeve API'leri bunu dikkate alır sistem şarj oluyor (ya da pil gücüyle çalışmıyor) pilin düşük olduğu kabul edilir. Kullanıcı arayüzünde pil simgesi oluşturuluyorsa ünlem işareti ile birlikte gösterilir ve pil yüzdesi %0 olarak görünür. 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ğı 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 sistem, daha önce açıklandığı gibi pil gücüyle değil harici güçle çalıştığı için şarj oluyor olarak kabul edilir.

Ü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, 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ığı gibi bir Health HAL uygulayın.

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.