如何检索网络连接使用情况数据 (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

NetworkInformation.getConnectionProfiles

Windows.Networking.Connectivity

示例

网络信息示例

网络状态背景示例