/// <summary>
        /// Query top 10 battery consuming applications since the last time when the device has fully charged
        /// </summary>
        /// <returns>List of application history information</returns>
        public List <StatsInfoItem> QueryBatteryConsumingApplications()
        {
            try
            {
                // Create a BatteryStatistics instance
                var batteryStats = new BatteryStatistics();
                // Query top 10 battery consuming applications since the last time when the device has fully charged
                var batteryStatsResult = batteryStats.Query(BatteryStatistics.GetLastFullyChargedTime(), DateTime.Now, 10);

                List <StatsInfoItem> result = new List <StatsInfoItem>();
                foreach (var record in batteryStatsResult)
                {
                    var appInfo = new ApplicationInfo(record.AppId);

                    string name = (!appInfo.Label.Equals(string.Empty)) ? appInfo.Label : record.AppId;
                    string info = "Consumption: " + record.Consumption + " %";

                    // Add each record to the result list
                    result.Add(new StatsInfoItem(name, info));

                    appInfo.Dispose();
                }

                return(result);
            }
            catch (Exception e)
            {
                LogImplementation.DLog(e.Message.ToString());
            }

            return(null);
        }
Beispiel #2
0
        /// <summary>
        /// Gets list of the applications with their battery consumption since the device was fully charged.
        /// </summary>
        /// <returns>Information about applications battery consumption since the device was fully charged.</returns>
        public List <ApplicationStatisticsItem> QueryBatteryConsumingApplications()
        {
            try
            {
                var batteryStats = new BatteryStatistics();

                var batteryStatsResult = batteryStats.Query(BatteryStatistics.GetLastFullyChargedTime(), DateTime.Now);

                List <ApplicationStatisticsItem> result = new List <ApplicationStatisticsItem>();

                foreach (var record in batteryStatsResult)
                {
                    using (var appInfo = new ApplicationInfo(record.AppId))
                    {
                        string name = (!appInfo.Label.Equals(string.Empty)) ? appInfo.Label : record.AppId;

                        ApplicationStatisticsItem applicationItem = new ApplicationStatisticsItem()
                        {
                            Name    = name,
                            Battery = (int)record.Consumption
                        };

                        result.Add(applicationItem);
                    }
                }

                return(result);
            }
            catch (Exception e)
            {
                Log.Error("AppStatistics", e.Message);
            }

            return(null);
        }