/// <summary> /// Gets the current device's battery status. /// See <seealso cref="BatteryStatus"/>. /// </summary> /// <returns>A BatteryStatus object with the battery's current status.</returns> public static BatteryStatus GetBatteryStatus() { Update(); if (!AnyDevice) { return(null); } ManualResetEvent mre = new ManualResetEvent(false); BatteryStatus status = new BatteryStatus(); string lvl = null; string ac = null; CConsole.GCFM("battery").OutputReceived += (output, e) => { if (output.Contains("level:") && !output.Contains("level: 50")) { lvl = output.Trim(); mre.Set(); } else if (output.Contains("AC powered:")) { ac = output.Trim().Split()[2]; mre.Set(); } }; CConsole.GCFM("battery").ExecuteCommand("adb -s " + SelectedDeviceSerial + " shell dumpsys battery"); mre.WaitOne(); status.ACConnected = bool.Parse(ac); mre.Reset(); mre.WaitOne(); status.Level = int.Parse(lvl.Split()[1]); return(status); }
/// <summary> /// Gets the current device's battery status. /// See <seealso cref="BatteryStatus"/>. /// </summary> /// <returns>A BatteryStatus object with the battery's current status.</returns> public static BatteryStatus GetBatteryStatus() { Update(); if (!AnyDevice) return null; ManualResetEvent mre = new ManualResetEvent(false); BatteryStatus status = new BatteryStatus(); string lvl = null; string ac = null; CConsole.GCFM("battery").OutputReceived += (output, e) => { if (output.Contains("level:") && !output.Contains("level: 50")) { lvl = output.Trim(); mre.Set(); } else if (output.Contains("AC powered:")) { ac = output.Trim().Split()[2]; mre.Set(); } }; CConsole.GCFM("battery").ExecuteCommand("adb -s " + SelectedDeviceSerial +" shell dumpsys battery"); mre.WaitOne(); status.ACConnected = bool.Parse(ac); mre.Reset(); mre.WaitOne(); status.Level = int.Parse(lvl.Split()[1]); return status; }