Question

mon application accède à Internet et je veux juste détecter s'il y a une connexion via wifi ou via un réseau de données d'opérateur ou non

apple a créé un exemple pour cela "Accessibilité"

https://developer.apple.com/iphone/library/samplecode/ Accessibilité /

Je pense qu'il détecte simplement le wifi et non le réseau de l'opérateur

Quelqu'un peut-il me dire quel est le meilleur moyen de détecter s'il existe une connexion (tout type de connexion)

Appréciez votre aide!

Était-ce utile?

La solution

Cet échantillon est exactement ce dont vous avez besoin.

Regardez Accessibilité.m. il vous dira si vous avez une connexion, puis quel type de connexion vous avez.

Autres conseils

L'exemple d'accessibilité peut être excessif si vous souhaitez simplement savoir si vous êtes connecté ou non, et quel type de connexion vous utilisez si vous êtes connecté. En effet, l'exemple contient également du code indiquant comment configurer et utiliser les rappels qui vous avertissent des changements d'état.

Pour obtenir un extrait de code source vous indiquant exactement si vous êtes connecté ou non, et quel type de connexion vous utilisez, vous pouvez consulter ma réponse à une question similaire, posté ici .

Une fois que vous faites une demande à une ressource Web, l'iPhone utilise toutes les connexions qu'il trouve, il utilise le wifi (priorité supérieure) et, si le wifi n'est pas connecté, il utilise le réseau de l'opérateur. Il n’existe aucun paramètre de code qui empêche le réseau de l'opérateur.

Tout ce que vous avez à faire:

  • Vérifiez le signal sur le lieu de test.
  • Vérifiez le lien que vous essayez d’atteindre lors d’un safari pour vous assurer que ce n’est pas votre application qui pose le problème.
  • Contactez le support technique de votre opérateur si le lien ne fonctionne pas en safari (utilisez le réseau de votre opérateur)

Ces techniques sont utiles, mais gardez à l'esprit que le chemin d'accès du périphérique à Internet peut consister en plusieurs types de connexions. Par exemple, un iPhone ou un iPod touch utilise peut-être le WiFi pour se connecter à un point d'accès mobile, lequel dispose de sa propre connexion sans fil 3G. Il n’est donc pas prudent de supposer que la présence d’une connexion WiFi implique une bande passante supérieure à la 3G.

Accessibilité (le code exemple d’Apple et le code similaire d’autres personnes, ainsi que le SCNetworkReachability sous-jacent, vous indiqueront soit qu’il n’ya pas d’accès Internet, soit que vous obtiendrez un accès Internet par WiFi, ou que vous obtiendrez un accès Internet par mobile. données.

Si vous disposez à la fois de données Wi-Fi et mobiles, le système vous indiquera "WiFi". Il n'y a aucun moyen de savoir que les données mobiles sont disponibles lorsque vous avez le WiFi. (Vous pouvez facilement savoir que les données mobiles sont disponibles lorsqu'il n'y a pas de WiFi). Vous ne pouvez pas savoir si le mode Avion est activé (ce qui serait différent du WiFi et des données mobiles désactivées).

Le WiFi disponible ne garantit pas qu'un téléchargement utilisera le WiFi et non les données mobiles. Vous pouvez commencer un téléchargement à la maison, laisser une minute plus tard, le WiFi disparaît et iOS continuera volontiers à télécharger en 3G. Vous pouvez définir un indicateur dans l'appel de téléchargement pour interdire la 3G. Le code d'erreur sera -1009 = Pas d'accès Internet, aucune mention que la 3G aurait été disponible.

En utilisant CTTelephonyNetworkInfo, vous pouvez savoir que vous êtes sur un appareil pour lequel pourrait disposer de données mobiles (pas un iPod Touch ou un iPad sans données mobiles, et il y a une carte SIM dans l'appareil).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top