Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

Inicio rápido: administrar límites de costos de red de uso medido

Este tema detalla los procedimientos recomendados para mantener el reconocimiento de los cambios de estado del plan de datos y costo de la conexión, y para permitir que la aplicación use esta información, de modo tal de evitar costos adicionales de roaming y no superar el límite especificado para la transferencia de datos.

Requisitos previos

Es importante saber qué es un ConnectionProfile y cómo tener acceso a la información que representa. Si quieres obtener más información, consulta el tema sobre el inicio rápido: recuperar información de conexión de red. Si quieres ver más ejemplos de código, descarga la muestra de información de red.

Para asegurarte de que la aplicación de la Tienda Windows está lista para la red, debes establecer la funcionalidad en el archivo Package.appxmanifest del proyecto. Para obtener una definición de cada funcionalidad de red, consulta el tema sobre el procedimiento para configurar las funcionalidades de aislamiento de red.

¿Qué son las redes de uso medido?

Una red de uso medido es cualquier red que impone un costo al usuario por el uso de una cantidad específica de datos o por el servicio de roaming. La mayoría de los proveedores de red móvil han establecido límites en la cantidad de datos transferidos por mes, para cada usuario, y exceder el límite de datos (o transferir datos con roaming) puede significar un alto costo para el usuario. Con la creciente popularidad de las tecnologías de banda ancha móvil, aumentar la demanda del consumo de datos exacerbará este problema y podrá generar un conjunto más variable de planes de datos. Como consecuencia, las aplicaciones de la Tienda Windows necesitan reconocer tales limitaciones de la red y comportarse en consecuencia, a medida que cambian las condiciones.

Windows 8 categoriza las redes de uso medido según tengan límites de costos variables, fijos o no restringidos; NetworkCostType define estos valores. Si un usuario supera el límite especificado por el plan de datos o usa el servicio de roaming, la mayoría de las redes imponen un costo excesivo ya sea en términos financieros, o al bloquear o desacelerar el acceso.

La mayoría de los usuarios de redes móviles se desplazan entre varias redes, de uso medido y otras, durante el transcurso del día. El rango de una red de 3 G podría extenderse únicamente al garaje o al hogar del usuario, aun cuando una red Wi-Fi doméstica esté disponible; de manera similar, esa misma red Wi-Fi estará eventualmente inaccesible cuando un usuario abandone su hogar. Debido a la proliferación de redes de banda ancha móvil y Wi-Fi, estos escenarios de cambio de red son cada vez más habituales. Si quieres obtener más información acerca del registro de los cambios de estado de la conexión que indican la disponibilidad de red, consulta Inicio rápido: administrar eventos de conexión y cambios de disponibilidad.

¿Quiénes se ven afectados?

El uso incorrecto del ancho de banda de red de uso medido puede afectar el prestigio de tu aplicación y el de tu organización. En general, se deben respetar las siguientes instrucciones para todas las aplicaciones de la Tienda Windows (en especial, aquellas que transfieren grandes cantidades de datos):

Instrucciones generales

Las siguientes propiedades ConnectionCost se pueden usar para recopilar información e identificar la configuración actual del plan de datos de una conexión específica:

PropiedadDescripción

ApproachingDataLimit

Obtiene un valor que indica si una conexión se está acercando a la concesión de uso especificada por el plan de datos, definido por el operador.

NetworkCostType

Obtiene un valor que indica el costo actual de red para una conexión.

  • Unrestricted: el uso de esta conexión de red es ilimitado en términos de restricciones de capacidad y cargos por uso.
  • Fixed: el uso de esta conexión de red no tiene restricciones hasta un límite de datos especificado por el operador.
  • Variable: el uso de esta conexión de red se mide en función de los bytes.
  • Unknown: la información sobre costos no está disponible para esta conexión de red.

OverDataLimit

Obtiene un valor que indica si una conexión ha superado la concesión de uso especificada por el plan de datos, definido por el operador.

Roaming

Obtiene un valor que indica si la conexión está conectada a una red fuera del proveedor doméstico.

 

Para las aplicaciones que se conectan a destinos en Internet, se debe obtener información sobre los costos de la red con la que envían y reciben datos llamando a GetInternetConnectionProfile. Sigue las siguientes instrucciones según los límites de transferencias de datos que establece el operador:

ComportamientoDirectricesEjemplo

Normal

Si el NetworkCostType es Unrestricted o Unknown y el ConnectionCost no es Roaming, entonces la aplicación debería implementar un comportamiento Normal.

En escenarios Normal, la aplicación no debería implementar restricciones. La conexión debería tratarse como Unlimited en costo y Unrestricted por cargos por uso y límites de capacidad.

Ejemplos:

  • Reproducir una película en HD completa.
  • Descargar un archivo grande sin restricciones ni peticiones de interfaz de usuario.
  • La aplicación de reproductor multimedia puede reproducir una película HD completa.
  • Una aplicación descarga un archivo grande sin restricciones ni peticiones.

Conservador

Si el NetworkCostType es Fixed o Variable y el ConnectionCost no es Roaming ni OverDataLimit, entonces la aplicación debería implementar un comportamiento Conservative.

En escenarios conservadores, la aplicación debería implementar restricciones para optimizar el uso de la red para controlar transferencias en redes de uso medido.

Ejemplos:

  • Reproducir películas en resoluciones bajas.
  • Demorar descargas que no sean críticas.
  • Evitar la captura previa de información a través de una red.
  • Alternar a un modo de solo encabezado al recibir mensajes de correo electrónico.
  • La aplicación de reproductor multimedia puede reproducir películas con resoluciones bajas.
  • La aplicación demora las descargas que no son críticas.

Participación

Si el ConnectionCost es Roaming o OverDataLimit, tu aplicación debería implementar un comportamiento Opt-In.

En escenarios de participación, la aplicación debería controlar casos en los que el costo de acceso de red es substancialmente superior al costo del plan. Por ejemplo, cuando un usuario está en modo roaming, un proveedor móvil puede cargar una tarifa más alta por el uso de datos.

Ejemplos:

  • Preguntar al usuario antes de acceder a la red.
  • Suspender todas las actividades de red de datos en segundo plano.
  • La aplicación pregunta al usuario por el acceso a la red.
  • La aplicación suspende todas las actividades de red de datos en segundo plano.

 

El siguiente ejemplo de código demuestra de qué manera determinar el costo de una conexión e implementar un comportamiento específico en función de los valores devueltos:


var connectionCost = InternetProfile.getConnectionCost();

function costBasedSuggestions(connectionCost) {

    if (connectionCost.roaming) {
        mySample.displayStatus(" Implement Opt-In Behavior");

     }

    else {
        switch (connectionCost.networkCostType) {
            case networkCostInfo.variable:
                mySample.displayStatus(" Implement Conservative Behavior");
                break;

            case networkCostInfo.fixed:
                if (connectionCost.overDataLimit) {
                     mySample.displayStatus(" Implement Opt-In Behavior");
                }
                else {
                    mySample.displayStatus(" Implement Conservative Behavior");
                }
                break;

            case networkCostInfo.unrestricted:
            case networkCostInfo.unknown:
                mySample.displayStatus(" Implement Normal Behavior");
                
                break;
        }
    }
  
}


Controlar el tamaño máximo de transferencias

Transferir archivos grandes en una red de uso medido puede ocasionar costos imprevistos para el usuario. Las aplicaciones que sincronizan, cargan y descargan archivos en una red de uso medido pueden hacerlo sin el permiso del usuario solo si el tamaño de los archivos es menor al tamaño máximo de transferencia especificado por el operador.

Para transferir datos grandes, las aplicaciones deberían tener el permiso del usuario o esperar tener acceso a una red sin restricciones. De manera opcional, la aplicación puede permitirle al usuario omitir mensajes futuros de permiso.

El siguiente código de ejemplo demuestra de qué manera recuperar el tamaño máximo de transferencias de una conexión:


var dataPlanStatus = InternetProfile.getDataPlanStatus();

if (dataPlanStatus.maxTransferSizeInMegabytes !== null) {
  
    mySample.displayStatus("Maximum Transfer Size in Megabytes: " + dataPlanStatus.maxTransferSizeInMegabytes);
}
else{

     mySample.displayError("Maximum Transfer Size in Megabytes: " + "Not Defined");
}


Resumen

En este tema revisamos escenarios de red de uso medido y cómo prevenir de la mejor manera que la aplicación conectada incurra en cargos adicionales en nombre del usuario final.

Si bien aquí se cubren escenarios básicos de red de uso medido, un evento NetworkStatusChanged también puede representar cambios en la disponibilidad de una conexión. Si quieres obtener más información e instrucciones acerca de cómo proceder mejor ante estos escenarios, consulta Inicio rápido: administrar eventos de conexión y cambios de disponibilidad.

Temas relacionados

Ejemplo de información de red
Inicio rápido: administrar eventos de conexión y cambios de disponibilidad
Inicio rápido: recuperar la información de conexión de red
Windows.Networking.Connectivity

 

 

Mostrar:
© 2018 Microsoft