Xamarin.Essentials: Baterie

Třída baterie vám umožní zjistit informace o baterii zařízení a monitorovat změny a poskytuje informace o stavu energie zařízení, který označuje, jestli je zařízení spuštěné v režimu s nízkou spotřebou. Aplikace by se měly vyhnout zpracování na pozadí, pokud je stav energie zařízení zapnutý.

Začínáme

Pokud chcete začít používat toto rozhraní API, přečtěte si příručku Začínáme pro, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Chcete-li získat přístup k funkci baterie , je nutné použít následující nastavení pro konkrétní platformu.

BatteryOprávnění je povinné a musí být nakonfigurováno v projektu pro Android. Dá se přidat následujícími způsoby:

Ve složce Properties (vlastnosti ) otevřete soubor AssemblyInfo. cs a přidejte:

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

NEBO aktualizovat manifest Android:

Ve složce Properties (vlastnosti ) otevřete soubor AndroidManifest.xml a přidejte následující dovnitř uzlu manifestu .

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

Nebo klikněte pravým tlačítkem na projekt pro Android a otevřete vlastnosti projektu. V části manifest pro Android Najděte požadovaná oprávnění: oblast a ověřte oprávnění pro baterii . Tím se automaticky aktualizuje soubor AndroidManifest.xml .

Použití baterie

Do třídy přidejte odkaz Xamarin.Essentials :

using Xamarin.Essentials;

Ověřit aktuální informace o baterii:

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;
}

Vždy, když se aktivuje kterákoli z vlastností baterie, dojde k aktivaci události:

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}");
    }
}

Zařízení, která běží na bateriích, je možné přepnout do úsporného režimu úspory energie. Zařízení se někdy přepínají do tohoto režimu, například když baterie klesne pod 20% kapacitu. Operační systém reaguje na úsporný režim energie tím, že snižuje aktivity, které mají za následek vyčerpání baterie. Aplikace můžou pomoci zabránit zpracování na pozadí nebo jiným vysokým aktivitám, když je zapnutý režim energie.

Aktuální stav spořiče energie zařízení můžete také získat pomocí Battery.EnergySaverStatus vlastnosti static:

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

Tato vlastnost vrací člena EnergySaverStatus výčtu, který je buď On , Off nebo Unknown . Pokud se vlastnost vrátí On , aplikace by se měla vyhnout zpracování na pozadí nebo jiným aktivitám, které by mohly spotřebovat spoustu výkonu.

Aplikace by měla také nainstalovat obslužnou rutinu události. Třída baterie zpřístupňuje událost, která se aktivuje, když se změní stav úspory energie:

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;
    }
}

Pokud se stav úspory energie změní na On , aplikace by měla přestat provádět zpracování na pozadí. Pokud se stav změní na Unknown nebo Off , aplikace může pokračovat v zpracování na pozadí.

Rozdíly platformy

Žádné rozdíly platforem.

rozhraní API

Další videa Xamarin najdete na webu Channel 9 a YouTube.