| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using Android.App;
- using Android.Content;
- using Android.OS;
- using BatteryStatus;
- namespace BatteryStatus.Android
- {
- public class PowerStatus : IPowerStatus
- {
- public string BatteryChargeStatus
- {
- get
- {
- var filter = new IntentFilter(Intent.ActionBatteryChanged);
- var battery = Application.Context.RegisterReceiver(null, filter);
- if (battery != null)
- {
- int status = battery.GetIntExtra(BatteryManager.ExtraStatus, -1);
- switch ((global::Android.OS.BatteryStatus)status)
- {
- case global::Android.OS.BatteryStatus.Charging:
- return "Charging";
- case global::Android.OS.BatteryStatus.Full:
- return "Full";
- case global::Android.OS.BatteryStatus.Discharging:
- return "Discharging";
- case global::Android.OS.BatteryStatus.NotCharging:
- return "Not Charging";
- case global::Android.OS.BatteryStatus.Unknown:
- default:
- return "Unknown";
- }
- }
- return "Unknown";
- }
- }
- public string PowerLineStatus
- {
- get
- {
- var filter = new IntentFilter(Intent.ActionBatteryChanged);
- var battery = Application.Context.RegisterReceiver(null, filter);
- if (battery != null)
- {
- int plugged = battery.GetIntExtra(global::Android.OS.BatteryManager.ExtraPlugged, -1);
- if (plugged == (int)global::Android.OS.BatteryPlugged.Ac)
- return "AC";
- if (plugged == (int)global::Android.OS.BatteryPlugged.Usb)
- return "USB";
- if (plugged == (int)global::Android.OS.BatteryPlugged.Wireless)
- return "Wireless";
- }
- return "Unplugged";
- }
- }
- public int BatteryLifePercent
- {
- get
- {
- var filter = new IntentFilter(Intent.ActionBatteryChanged);
- var battery = Application.Context.RegisterReceiver(null, filter);
- if (battery != null)
- {
- int level = battery.GetIntExtra(global::Android.OS.BatteryManager.ExtraLevel, -1);
- int scale = battery.GetIntExtra(global::Android.OS.BatteryManager.ExtraScale, -1);
- if (level >= 0 && scale > 0)
- return (int)((level / (float)scale) * 100);
- }
- return -1;
- }
- }
- }
- }
|