0

我正在寻找一种方法来分析 UWP 应用程序的数据消耗。为此,我需要:

  • 获取每个 newtork的数据使用情况(wifi、蜂窝、漫游,...)
  • 获取每个已安装应用的详细信息

Windows 10中,我们可以轻松找到这些信息:

但是如何在应用程序中获取相同的信息?

我发现的唯一最接近的主题是这个,但它并不是一回事......

4

1 回答 1

0

在 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。

于 2018-05-04T07:43:00.797 回答