Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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;
        }