Cómo recuperar datos de uso de conexión de red (HTML)
[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente
En este tema se explica cómo usar las clases del espacio de nombres Windows.Networking.Connectivity para acceder a la información de uso de ancho de banda de una conexión de red durante un periodo de tiempo concreto.
Para obtener instrucciones generales sobre cómo recuperar perfiles de conexión y acceder a la información usando estos objetos, consulta Cómo recuperar información de conexión de red.
Lo que debes saber
Tecnologías
Requisitos previos
El siguiente ejemplo usa JavaScript y se basa en la muestra de información de red. Para obtener ayuda sobre cómo crear una aplicación de Windows en tiempo de ejecución con JavaScript, consulta Crear la primera aplicación de Windows en tiempo de ejecución con JavaScript.
Recuperar los datos de costo de la conexión a Internet de la última hora
La siguiente función de ejemplo recupera el ConnectionProfile de la conexión a Internet. Para recuperar los datos que necesitamos, se pasa el sistema DateTime (currTime) y un valor de startTime al método getNetworkUsageAsync. Se devuelve un objeto NetworkUsage que contiene los valores enviados y recibidos, en bytes, para el período de tiempo solicitado.
En el caso de las aplicaciones móviles, puedes agregar un valor RoamingStates a la llamada a getNetworkUsageAsync para acotar los datos de tráfico solicitados a períodos de tiempo en que un dispositivo estaba en movilidad.
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";
}
Nota Sigue un proceso similar para recuperar información de costo específica del tiempo para las conexiones que no ofrecen conectividad a Internet. La diferencia es la enumeración inicial de perfiles de conexión disponibles con NetworkInformation.getConnectionProfiles.
Diferencias de comportamiento entre aplicaciones de la Tienda Windows y aplicaciones de Windows Phone
El método GetNetworkUsageAsync tiene un comportamiento distinto en Windows 8.1 y Windows Phone 8.1. Cuando se llama al método GetNetworkUsageAsync en Windows Phone, la matriz de objetos NetworkUsage devuelta siempre tendrá la propiedad ConnectionDuration establecida en 0 puesto que esta propiedad no es compatible con Windows Phone.
Temas relacionados
Otros
Crear la primera aplicación de Windows en tiempo de ejecución con JavaScript
Cómo controlar excepciones en aplicaciones de red
Cómo administrar límites de costos de red de uso medido
Cómo administrar eventos de conexión y cambios de disponibilidad
Cómo recuperar información de localidad y adaptador de red
Cómo recuperar información de conexión de red
Referencia
ConnectionProfile.getNetworkUsageAsync
NetworkInformation.getConnectionProfiles
Windows.Networking.Connectivity
Muestras