コード例 #1
0
        /// <summary>
        /// Gets list of the applications usage history.
        /// </summary>
        /// <param name="option">Specifies which range should be considered.</param>
        /// <returns>List of applications usage history.</returns>
        public List <ApplicationStatisticsItem> QueryApplicationsUsageHistory(Range option)
        {
            DateTime range = new DateTime();

            if (option == Range.LastDay)
            {
                range = DateTime.Now.AddDays(-1);
            }
            else if (option == Range.LastWeek)
            {
                range = DateTime.Now.AddDays(-7);
            }
            else if (option == Range.LastMonth)
            {
                range = DateTime.Now.AddMonths(-1);
            }
            else if (option == Range.Livetime)
            {
                range = new DateTime(1970, 1, 1);
            }

            try
            {
                var usageStats = new UsageStatistics(UsageStatistics.SortOrderType.LastLaunchTimeNewest);

                var usageStatsResult = usageStats.Query(range, DateTime.Now);

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

                int id = 0;

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

                        ApplicationStatisticsItem applicationItem = new ApplicationStatisticsItem()
                        {
                            ID             = id,
                            Name           = name,
                            LastLaunchTime = record.LastLaunchTime.ToString(),
                            LaunchCount    = record.LaunchCount,
                            Duration       = record.Duration
                        };

                        result.Add(applicationItem);
                        id++;
                    }
                }

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

            return(null);
        }
コード例 #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);
        }