Xamarin.Essentials: Pil

Pil sınıfı, cihazın pil bilgilerini denetlemenizi ve değişiklikleri izlemenizi sağlar ve cihazın enerji tasarrufu durumu hakkında bilgi sağlar ve bu da cihazın düşük güç modunda çalıştırılıp çalışmay olduğunu gösterir. Cihazın enerji tasarrufu durumu etkinse uygulamalar arka plan işlemeden kaçınılmalıdır.

başlarken

Bu API'yi kullanmaya başlamak için kitaplığın projelerinize düzgün bir şekilde yük olduğundan ve ayar olduğundan emin olmak için başlangıç kılavuzunu okuyun.

Pil işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.

Batteryİzin gereklidir ve Android projesinde yapılandırılması gerekir. Bu, aşağıdaki yollarla eklenebilir:

Properties klasörünün altındaki AssemblyInfo.csdosyasını açın ve şunları ekleyin:

[assembly: UsesPermission(Android.Manifest.Permission.BatteryStats)]

VEYA Android Bildirimini Güncelleştir:

Özellikler AndroidManifest.xmldosyanın altındaki dosyanın adını açın ve bildirim düğümünün içine aşağıdakini ekleyin.

<uses-permission android:name="android.permission.BATTERY_STATS" />

Veya Android projesine sağ tıklayın ve projenin özelliklerini açın. Android Bildirimi altında Gerekli izinler: alanına bakın ve Pil iznini denetleyin. Bu, dosyanın AndroidManifest.xml güncelleştirmesi.

Pil Kullanma

sınıfınıza Xamarin.Essentials bir başvuru ekleyin:

using Xamarin.Essentials;

Geçerli pil bilgilerini kontrol edin:

var level = Battery.ChargeLevel; // returns 0.0 to 1.0 or 1.0 when on AC or no battery.

var state = Battery.State;

switch (state)
{
    case BatteryState.Charging:
        // Currently charging
        break;
    case BatteryState.Full:
        // Battery is full
        break;
    case BatteryState.Discharging:
    case BatteryState.NotCharging:
        // Currently discharging battery or not being charged
        break;
    case BatteryState.NotPresent:
        // Battery doesn't exist in device (desktop computer)
        break;
    case BatteryState.Unknown:
        // Unable to detect battery state
        break;
}

var source = Battery.PowerSource;

switch (source)
{
    case BatteryPowerSource.Battery:
        // Being powered by the battery
        break;
    case BatteryPowerSource.AC:
        // Being powered by A/C unit
        break;
    case BatteryPowerSource.Usb:
        // Being powered by USB cable
        break;
    case BatteryPowerSource.Wireless:
        // Powered via wireless charging
        break;
    case BatteryPowerSource.Unknown:
        // Unable to detect power source
        break;
}

Pilin özellikleri her değiştirlendiğinde bir olay tetiklenir:

public class BatteryTest
{
    public BatteryTest()
    {
        // Register for battery changes, be sure to unsubscribe when needed
        Battery.BatteryInfoChanged += Battery_BatteryInfoChanged;
    }

    void Battery_BatteryInfoChanged(object sender, BatteryInfoChangedEventArgs   e)
    {
        var level = e.ChargeLevel;
        var state = e.State;
        var source = e.PowerSource;
        Console.WriteLine($"Reading: Level: {level}, State: {state}, Source: {source}");
    }
}

Piller üzerinde çalıştıran cihazlar düşük güç enerji tasarrufu moduna alınarak kullanılabilir. Bazen pil %20 kapasitenin altına düştüğünde cihazlar otomatik olarak bu moda geçer. İşletim sistemi, pil tüketilen etkinlikleri azaltarak enerji tasarrufu moduna yanıt verir. Uygulamalar, enerji tasarrufu modu etkinken arka plan işlemeyi veya diğer yüksek güç etkinliklerini önlemeye yardımcı olabilir.

Statik özelliği kullanarak cihazın geçerli enerji tasarrufu durumunu da elde Battery.EnergySaverStatus edebilirsiniz:

// Get energy saver status
var status = Battery.EnergySaverStatus;

Bu özellik, , EnergySaverStatus veya olan bir numaralama üyesi OnOffUnknown döndürür. özelliği On döndürürse, uygulama arka plan işlemeden veya çok fazla güç tüketen diğer etkinliklerden kaçınılmalıdır.

Uygulama ayrıca bir olay işleyicisi de yüklemeli. Pil sınıfı, enerji tasarrufu durumu değişirken tetiklenen bir olayı gösterir:

public class EnergySaverTest
{
    public EnergySaverTest()
    {
        // Subscribe to changes of energy-saver status
        Battery.EnergySaverStatusChanged += OnEnergySaverStatusChanged;
    }

    private void OnEnergySaverStatusChanged(EnergySaverStatusChangedEventArgs e)
    {
        // Process change
        var status = e.EnergySaverStatus;
    }
}

Enerji tasarrufu durumu olarak değişirse On uygulamanın arka plan işlemeyi durdurması gerekir. durum veya olarak UnknownOff değişirse, uygulama arka plan işlemeyi sürdürebilir.

Platform Farkları

Platform farkı yoktur.

API

Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.