我正在寻找一种方法来分析 UWP 应用程序的数据消耗。为此,我需要:
- 获取每个 newtork的数据使用情况(wifi、蜂窝、漫游,...)
- 获取每个已安装应用的详细信息
在Windows 10中,我们可以轻松找到这些信息:
但是如何在应用程序中获取相同的信息?
我发现的唯一最接近的主题是这个,但它并不是一回事......
我正在寻找一种方法来分析 UWP 应用程序的数据消耗。为此,我需要:
在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。