Frage

meine App greift auf das Internet und ich möchte nur feststellen, ob es eine Verbindung entweder über WLAN oder über Trägerdatennetz oder nicht

Apple hat ein Beispiel für die "Erreichbarkeits"

gemacht

https://developer.apple.com/iphone/library/samplecode/ Erreichbarkeits /

Ich denke, es erkennt nur die WiFi und nicht das Trägernetz

kann mir jemand sagen, was ist die beste zu erkennen zu tun, wenn es eine Verbindung ist (jede Art von Verbindung)

Appreciate ur Hilfe!

War es hilfreich?

Lösung

Das Beispiel ist genau das, was Sie brauchen.

Schauen Sie sich Reachability.m. es wird Ihnen sagen, ob Sie eine Verbindung haben, und dann sagen, welche Art von Verbindung, die Sie haben.

Andere Tipps

Das Erreichbarkeits Beispiel kann zu viel des Guten, wenn Sie wollen einfach nur erkennen, ob Sie verbunden sind, und welche Art von Verbindung, die Sie verwenden, wenn Sie verbunden sind. In der Tat auch das Beispiel enthält Code, der zeigt, wie die Einrichtung und Rückrufe verwenden, die Sie von Zustandsänderungen informieren.

Für einen Ausschnitt des Quellcodes sagen Ihnen genau, wenn Sie verbunden sind oder nicht, und welche Art von Verbindung, die Sie verwenden, können Sie einen Blick auf meine Antwort auf eine ähnliche Frage nehmen wollen, geschrieben hier .

Wenn Sie eine Anfrage an einem beliebigen Web-Ressource zu machen, das iPhone nutzt jede Verbindung es findet, verwendet es Wi-Fi (als eine höhere Priorität), und wenn Wi-Fi nicht angeschlossen ist es nutzt Carrier-Netzwerk. Es gibt keine Code-Einstellungen das ist Carrier-Netzwerk zu verhindern.

Alles, was Sie tun müssen:

  • Überprüfen Sie das Signal am Prüfungsort.
  • Überprüfen Sie den Link, den Sie auf Safari zu erreichen versuchen, um sicherzustellen, dass es nicht Ihre Anwendung, die das Problem haben.
  • Wenden Sie sich Träger Unterstützung, wenn der Link auf Safari funktioniert nicht (sicher das Trägernetz verwendet wird)

Diese Techniken nützlich, aber denken Sie daran, dass das Weg des Geräts mit dem Internet von mehreren verschiedenen Arten von Verbindungen bestehen könnte. Zum Beispiel könnte ein iPhone oder iPod touch wird mit WiFi zu einem mobilen Hotspot zu verbinden, die wiederum ihre eigene 3G-Wireless-Verbindung hat. So ist es nicht sicher davon ausgehen, dass das Vorhandensein einer WiFi-Verbindung mit höherer Bandbreite impliziert als 3G.

Erreichbarkeits (beide Apple-Beispielcode und andere ähnliche Code des Menschen, und die darunter liegende SCNetworkReachability wird Ihnen sagen, entweder, dass es keinen Internetzugang, oder dass Sie den Internet-Zugang über WiFi bekommen, oder dass Sie den Internet-Zugang über mobile erhalten Daten.

Wenn Sie sowohl WiFi und mobile Daten zur Verfügung haben, wird es Ihnen sagen, „WiFi“. Es gibt keinen Weg, um herauszufinden, dass mobile Daten zur Verfügung, wenn Sie WiFi haben. (Sie können leicht herausfinden, dass mobile Daten verfügbar sind, wenn kein WLAN). Sie können nicht herausfinden, ob Flugmodus (das wäre anders WiFi und mobile Daten ausgeschaltet) gedreht wird.

WiFi garantiert nicht, dass ein Download wird verwenden WiFi und nicht mobile Daten. Sie könnten einen Download zu Hause beginnen, lassen Sie eine Minute später, WiFi verschwindet und iOS wird gerne weiter über 3G heruntergeladen werden. Sie können ein Flag im Download Rufaufbau 3G zu verbieten. Der Fehlercode wird -1.009 = Kein Internetzugang, nicht erwähnt, dass 3G verfügbar gewesen wäre.

CTTelephonyNetworkInfo verwenden können Sie feststellen, dass Sie auf einem Gerät sind, dass könnte hat mobile Daten (kein iPod Touch oder iPad ohne mobile Daten, und es gibt eine SIM-Karte in dem Gerät).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top