Wissen, ob das iOS-Gerät über Mobilfunkdaten verfügt
Habe ich einen Knebel in mein app "download auf WiFi only". Aber das Umschalten ist nutzlos für den iPod touch oder WiFi-iPads.
Gibt es eine Möglichkeit zu wissen, ob das Gerät über eine Handy-Daten-Funktionen im code? Etwas, das funktionieren würde, in der Zukunft würde zu groß sein (wie wenn Sie einen iPod touch der 5. Generation mit 3G raus kommt).
InformationsquelleAutor der Frage gcamp | 2011-08-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hi Sie sollten in der Lage sein zu überprüfen, ob es die pdp_ip0 Schnittstelle
Diese keine privaten APIs.
InformationsquelleAutor der Antwort bentech
3G von selbst, so scheint es schwer zu finden. Finden Sie heraus, ob ein Gerät kann telefonieren Verwendung
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]
. Sie können überprüfen, ob ein Gerät auf das internet zugreifen können, Zeit (und durch welche Methode kann derzeit geschehen) mit Erreichbarkeit code:..aber abgesehen davon, ich glaube nicht, können Sie prüfen, die für die Existenz eines 3G-modem in das Gerät.***** Wenn Sie keinen Anruf tätigen kann, und nicht haben derzeit cell Daten eingeschaltet und WLAN aktiviert auswerden Sie nicht in der Lage sein, um herauszufinden, ob es 3G-fähig ist.
Einen alternativen Weg (nicht aufwärtskompatibel, so dass Sie wahrscheinlich nicht wollen, dies zu tun) zu vergleichen ist das Gerät s-Modell mit einer umfassenden Liste, zu wissen, welche 3G-modems in Ihnen, wie gezeigt,hier.
***** Als pro bentech Antwort, wenn Sie wollen, zu gehen, zu Graben um mit dem Geräte-Namen (dies kann aufhören zu arbeiten, ohne Vorwarnung, wenn Apple sich entscheiden, zu ändern, die 3g-Schnittstelle, name), rufen Sie
getifaddrs
und überprüfen Sie diepdp_ip0
- Schnittstelle.InformationsquelleAutor der Antwort darvids0n
In iOS 6.1, habe ich in der Lage zu verwenden Core-Telefonie erfolgreich überprüfen Sie das Vorhandensein von zellulären Basisband-Funktionen. Dies funktioniert auf allen iPads, die ich getestet habe: Verizon mit service aktiviert und ohne, AT&T service derzeit deaktiviert, SIM-Karte ein und aus, und eine Wi-Fi-only iPad.
Den code, den ich verwendet, sieht wie folgt aus:
Für alle iPads mit Mobilfunk-Basisband-hardware
carrier
ist nicht null. Für die Wi-Fi-only iPad,carrier
ist null.InformationsquelleAutor der Antwort Rick
Swift 3.0 (UIDevice+Erweiterung) @bentech Antwort
Fügen Sie die folgende Zeile zu Ihrer BridgingHeader.h:
Woanders:
InformationsquelleAutor der Antwort Mark Bourke
Ich würde denken, Sie sollten in der Lage sein zu verwenden, die CoreTelephony Rahmen.
Tut es nennen, heraus, dass es für die Träger zu verwenden, so bin ich nicht sicher, ob es gegen die TOS zugreifen können.
InformationsquelleAutor der Antwort Chris Wagner
Einen Weg, es zu tun, ist zu Fragen, für den Benutzer Lage. Wenn es so genau wie möglich, Sie werden wissen, wenn das Gerät über GPS. Alle Geräte, die über GPS wird 3G. Und jene, die nicht GPS nicht 3G.
InformationsquelleAutor der Antwort Liye Zhang
Apple bereitgestellten code hier.
https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html
Sollten Sie kopieren Erreichbarkeit.h und Erreichbarkeit.m zu Ihrem Projekt, und importieren
- Erreichbarkeit.h zu Ihrer Klasse,dann
InformationsquelleAutor der Antwort Suraj K Thomas
Anderen Weg ist zu erweitern: https://github.com/monospacecollective/UIDevice-Hardware/blob/master/UIDevice-Hardware.m:
}
(Klar, könnte es sein, bearbeitet nach unten, wenn Sie entweder NEIN oder JA nur je nachdem, auf welche Art und Weise Sie irren in Fall gibt es ein neues Modell...)
InformationsquelleAutor der Antwort middleseatman