我正在寻找一种分析来自 UWP 应用的数据消耗的方法。为此,我需要:
- 获取每个NewTork的数据使用情况(WiFi,蜂窝,漫游等(
- 获取每个已安装应用的详细信息
在Windows 10中,我们可以轻松找到这些信息:
- 对于数据使用情况
- 有关每个应用的使用情况详细信息
但是如何在应用程序中获取相同的信息呢?
我唯一最接近的话题是这个,但它并不是一回事......
在 UWP 中,我们可以使用 ConnectionProfile 类从网络连接获取网络使用情况,该类提供有关连接状态和连接统计信息的信息。
对于您的数据使用情况,您可以尝试以下代码,
try
{
var ConnectionProfiles = NetworkInformation.GetConnectionProfiles();
if (ConnectionProfiles != null)
{
Debug.WriteLine(ConnectionProfiles.Count);
foreach (var profile in ConnectionProfiles)
{
//Profile name
var name = profile.ProfileName;
NetworkUsageStates networkUsageStates = new NetworkUsageStates();
networkUsageStates.Roaming = TriStates.DoNotCare;
networkUsageStates.Shared = TriStates.DoNotCare;
//get the data usage from the last 30 day
DateTime startTime = DateTime.Now.AddDays(-30);
DateTime endTime = DateTime.Now;
var usages = await profile.GetNetworkUsageAsync(startTime,
endTime, DataUsageGranularity.Total, networkUsageStates);
if (usages != null)
{
foreach (var use in usages)
{
//Data usage.
var TotalDataUsage = use.BytesReceived + use.BytesSent;
}
}
}
}
}
catch (Exception e)
{
Debug.WriteLine(e.Message);
}
您可以配置不同的DataUsageGranularity
和NetworkUsageStates
来获取所需的数据使用情况。
但对于使用情况详细信息,由于 UWP 应用以沙盒方式运行,因此无法获取详细信息,并且 UWP 中没有相应的 API。