2010-06-09 15 views

Répondre

7

Oui. Vous devez d'abord ajouter la clé UIRequiresPersistentWiFi à vos applications Info.plist. Cela garantit que la connexion Wi-Fi ne se met pas en veille pendant que votre application est ouverte.

Deuxièmement, vous devez interroger le système (en utilisant l'API SCNetworkReachability) pour voir quelle radio est actuellement activée. Voir cette question dans la documentation de l'iPhone.

+1

-1. Cela ne limite pas l'application à travailler uniquement sur le Wifi. Cette clé permet à votre application d'informer le système qu'elle préfèrerait le wifi, et de le maintenir en vie lorsque l'application est inactive (écran verrouillé, appel en cours, etc.). J'utilise cette clé dans mon application, mais j'autorise également l'accès au réseau 3G. – Jasarien

+1

@Jasarien Oui, vous avez raison, cela ne répond pas directement à la question. (Bien que vous disiez que vous préférez le WiFi sur 3G, c'est généralement ce que les gens veulent.) J'ai mis à jour ma réponse. –

+0

Pas exactement une réponse à la question, mais la meilleure réponse jusqu'à présent. – hpique

0

Networking and Internet how-to's

Si votre application nécessite WiFi, vous devez ajouter la clé UIRequiresPersistentWiFi à Info.plist et le mettre vrai. Cette touche avertit le système que votre application utilise le réseau WiFi pour la communication .

3

Vous pouvez également obtenir la classe Accessibilité à partir de l'exemple d'accessibilité du centre de développement Apple. Il offre un moyen de vérifier comment l'iPhone est connecté.

+1

Je recommanderais cette approche. Vous pouvez spécifiquement dire quand l'appareil est connecté au wifi ou non et restreindre les parties de l'application qui nécessitent le WiFi. La clé wifi persistante requise ne restreindra pas complètement l'accès au wifi uniquement. – Jasarien