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ı
API
İlgili Video
Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.