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
rozhraní API
- Xamarin. Essentials /Battery "data-LINKTYPE =" External "– zdrojový kód baterie >
- Dokumentace k rozhraní API pro baterii