UWP/C# 获取每个网络类型和每个应用的数据使用情况



我正在寻找一种分析来自 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);
}

您可以配置不同的DataUsageGranularityNetworkUsageStates来获取所需的数据使用情况。

但对于使用情况详细信息,由于 UWP 应用以沙盒方式运行,因此无法获取详细信息,并且 UWP 中没有相应的 API。

相关内容

  • 没有找到相关文章

最新更新