UWP:ConnectionProfile.GetNetworkUsageAsync不起作用

时间:2017-12-01 07:52:43

标签: uwp win-universal-app windows-10-universal

我试图从WAN Miniport(IKEv2)接口获取传入和传出流量,但它不起作用。 首先,我创建一个新的VPN配置文件,然后我连接配置文件。这很好用。之后我想获得传入和传出的流量,但我每次都得到0.这是我的代码

var internetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
if (internetConnectionProfile.ProfileName != profileName) // I'm checking to see if this is my VPN profile
{
    return;
}

var usageStates = new NetworkUsageStates
{
    Roaming = TriStates.DoNotCare,
    Shared = TriStates.DoNotCare
};


var networkUsage = await internetConnectionProfile.GetNetworkUsageAsync(
    this.startTime, //Saved when the profile is connected
    DateTimeOffset.Now, 
    DataUsageGranularity.Total, 
    usageStates);

ulong completeTrafic = 0;
foreach(var usage in networkUsage)
{
    completeTrafic = usage.BytesReceived + usage.BytesSent; //Everytime it's 0
}

一个有趣的观点是,usage.ConnectionDuration它不是0,它在某种程度上是正确的。我认为比我在网络和共享中心看到的要少10秒 - >右键单击界面 - >状态。在“状态”对话框中,它正确显示“已发送和接收”字节。

我的项目设置:

enter image description here

我的Windows版本是Windows 10 1703。

1 个答案:

答案 0 :(得分:0)

通过我的测试,上面的代码片段可以很好地工作,发送和接收字节都不是0.所以代码本身没有任何问题。

enter image description here

请尝试检查是否有任何参数不正确。例如,profileName是您要测试的正确值,startTime正确设置以便能够使用。否则,连接配置文件可能会出现问题。请尝试检查互联网连接,或尝试其他连接配置文件进行测试。

更多详情请参阅official sample