How to retrieve network connection usage data (HTML)
This topic demonstrates how to access bandwidth usage information on a network connection for a specific period of time using classes in the Windows.Networking.Connectivity namespace.
For general guidance on retrieving connection profiles and accessing information using these objects, see How to retrieve network connection information.
What you need to know
Technologies
Prerequisites
The following example uses JavaScript and are based on the Network information sample. For general help creating a Windows Runtime app using JavaScript, see Create your first Windows Runtime app using JavaScript.
Retrieve internet connection cost data for the past hour
The following example function retrieves the ConnectionProfile for the Internet connection. To retrieve the data we need, the system DateTime (currTime), and a startTime value are passed to the getNetworkUsageAsync method. A NetworkUsage object is returned containing the sent and received values, in bytes, for the requested time period.
For mobile app scenarios, you can add a RoamingStates value to the getNetworkUsageAsync call to scope the requested traffic data to periods of time where a device was roaming.
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";
}
Note Follow a similar process to retrieve time-specific cost information for connections not providing internet connectivity. The difference is the initial enumeration of available connection profiles using NetworkInformation.getConnectionProfiles.
Behavior differences between Windows Store apps and Windows Phone Store apps
The GetNetworkUsageAsync method has a different behavior on Windows 8.1 and Windows Phone 8.1. When the GetNetworkUsageAsync method is called on Windows Phone, the returned array of NetworkUsage objects will always have the ConnectionDuration property set to 0 since this property is not supported on Windows Phone.
Related topics
Other
Create your first Windows Runtime app using JavaScript
How to handle exceptions in network apps
How to manage metered network cost constraints
How to manage network connection events and changes in availability
How to retrieve network adapter and locality information
How to retrieve network connection information
Reference
ConnectionProfile.getNetworkUsageAsync
NetworkInformation.getConnectionProfiles
Windows.Networking.Connectivity
Samples