2010-06-11 11 views
12

Estoy escribiendo una aplicación relacionada con la guía de viaje que descargará grandes bases de datos (60 meg) potencialmente en el extranjero, con el código de accesibilidad que puedo ver cuando un host es accesible a través de wifi o 3g PERO me preocupa que si por alguna razón el wifi la conexión se interrumpe durante aproximadamente un minuto, como es probable que algunas conexiones DSL hagan en ocasiones, el iPhone cambiará de forma transparente a 3G y sin darse cuenta de que podría estar acumulando facturas de teléfono con cargos de datos en el extranjero.¿Puedo evitar que iPhone use 3G bajo ninguna circunstancia?

Así que me pregunto si alguien tiene alguna experiencia, en el caso de tal interrupción en la conectividad wifi (wifi todavía funciona pero su conexión a la red está inactiva) ¿el código de accesibilidad informaría ReachableViaWWAN? Así que podría esperar a que mi código de descarga vuelva, ver cómo se puede acceder al host y si es a través de 3g podría abortar.

¿Es posible seleccionar qué tipo de conexión puedo usar aka 3g o wifi exclusivamente?

+3

Es agradable ver a un desarrollador preocupado por no molestar a sus usuarios. Tener un voto favorable. – samoz

+1

Si tiene control sobre qué red usar, tal vez sea una configuración configurable por el usuario. A algunas personas podría no importarles regresar a 3G cuando lo necesiten (por ejemplo, tienen el nuevo plan de 2 GB y no les importa una descarga de 60 MB). – Jeff

+1

Está destinado a ser configurable por el usuario, pero tengo que tener alguna forma de implementarlo si dicen "no 3g para descargas". – dageshi

Respuesta

0

Sí, en configuración-> general-> red, puede apagar 3G. Pero el iPhone aún usará celulares que no sean 3G.

Alternativamente, cuando viajo al extranjero pongo el iPhone en modo avión, y luego enciendo wi-fi manualmente.

+0

Creo que OP está preguntando si pueden rechazar datos 3G programáticamente desde dentro de la aplicación, como lo hizo la aplicación Skype. –

+0

OK, no estaba claro, pero en la segunda lectura creo que tienes razón. –

+0

Sí, pero gracias por eso, no sabía que podía activar el wifi durante el modo de vuelo. – dageshi

5

Si mira en la muestra de Accesibilidad, en Reachability.h, hay una constante definida como "kReachabilityChangedNotification". Si solicita que se le notifiquen los cambios, suponiendo que esto funcione como parece, podría detener la conexión cuando se reduzca a 3G.

+0

Sí, desde que lo leíste, esta parece ser la única manera. Solo mucha depuración para probar funciona como esperaba, supongo. – dageshi

1

En Configuración-> General-> Red hay "Roaming de datos". Esto le permite desactivar el roaming en otras redes de datos cuando viaja internacionalmente. El usuario ya tiene la opción de permitir conexiones 3G caras cuando viaja.

+1

ahhh o.k que podría ser útil. – dageshi

+0

apostar, siempre lo dejo ya que estoy cerca de la frontera – progrmr

0

No; La IP de estilo Unix no funciona así. Usar el código de accesibilidad hará principalmente lo correcto, pero aún existe la posibilidad de que envíe algunos paquetes a través de 3G antes de manejar la notificación.

Probablemente sea seguro asumir que los usuarios que no apaguen el "roaming de datos" lo harán muy rápidamente. Por otro lado, muchos usuarios no tendrán planes de internet ilimitados.

Una opción es mostrar algo así como "No está conectado a través de Wi-Fi, ¿desea descargar muchos datos a través de la red de la red? Se le puede cobrar". y almacenarlo en un entorno.

+0

FYI, AT & T se está moviendo hacia planes de datos limitados, que son más baratos si te quedas por debajo de 2G al mes (nunca llegué a ningún lado, yo mismo). Las cuentas ilimitadas están protegidas actualmente, pero las cuentas nuevas tendrán límites de 1G o 2G, y creo que $ 10/G después de eso y un límite de costo para el mes. –

Cuestiones relacionadas