/// <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); }
/// <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); }