如何检索网络连接使用情况数据 (HTML)
[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]
本主题演示如何使用 Windows.Networking.Connectivity 命名空间中的类访问关于特定时间内的网络连接的带宽使用情况信息。
有关检索连接配置文件和使用这些对象访问信息的常规指南,请参阅如何检索网络连接信息。
你需要了解的内容
技术
先决条件
以下示例使用 JavaScript,且基于网络信息示例。 有关创建使用 JavaScript 的 Windows 运行时应用的常规帮助,请参阅创建第一个使用 JavaScript 的 Windows 运行时应用。
检索过去一小时的 Internet 连接成本数据
以下示例函数检索 Internet 连接的 ConnectionProfile。要检索需要的数据,系统 DateTime (currTime) 和 startTime 值会传递给 getNetworkUsageAsync 方法。然后将返回 NetworkUsage 对象,包含所请求时间段内的已发送和接收值(以字节为单位)。
对于移动应用的情况,可以向 RoamingStates 调用添加 getNetworkUsageAsync 值,以将请求的流量数据的作用域指定为漫游设备的时间段。
var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
function DisplayLocalDataUsage() {
var currTime = new Date();
//Set start Time to 1 hour (3600000ms) before current time
var startTime = new Date(currTime - 3600000);
//Get the ConnectionProfile that is currently used to connect to the Internet
var connectionProfile = networkInfo.getInternetConnectionProfile();
var LocalUsage = connectionProfile.getNetworkUsageAsync(startTime, currTime);
var lclString = "Local Data Usage: \n\r";
lclString += "Bytes Sent: " + LocalUsage.bytesSent + "\n\r";
lclString += "Bytes Received: " + LocalUsage.bytesReceived + "\n\r";
}
注意 对于不提供 Internet 连接的连接,可以按照类似的流程来检索这些连接在特定时间段内的成本信息。不同之处在于使用 NetworkInformation.getConnectionProfiles 进行可用连接配置文件的初始枚举。
Windows 应用商店应用和 Windows Phone 应用商店应用之间的行为差异
GetNetworkUsageAsync 方法在 Windows 8.1 和 Windows Phone 8.1 上具有不同的行为。当 GetNetworkUsageAsync 方法已在 Windows Phone 上调用时,NetworkUsage 对象的返回数组始终将此属性设置为 0,因为 ConnectionDuration 属性在 Windows Phone 上不受支持。
相关主题
其他
创建第一个采用 JavaScript 的 Windows 运行时应用
参考
ConnectionProfile.getNetworkUsageAsync
NetworkInformation.getConnectionProfiles
Windows.Networking.Connectivity
示例