Ich muss sicherstellen, dass eingehende Telefonanrufe die Aufnahmen meiner Kunden nicht unterbrechen können, also fordere ich sie auf, in den Flugzeugmodus zu wechseln, aber trotzdem das WLAN einzuschalten. Die obige Methode von AlBeebe hat bei mir unter iOS 8.1.3 nicht funktioniert, aber ich habe diese Lösung gefunden, die unter iOS 7 und später funktionieren sollte:
Sie müssen die Datei CoreTelephony.framework hinzufügen und importieren.
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
Definieren Sie die Eigenschaft für Ihre Klasse, wenn Sie Änderungen verfolgen wollen
@property (strong, nonatomic) CTTelephonyNetworkInfo* networkInfo;
Initiieren Sie die CTTelephonyNetworkInfo
:
self.networkInfo = [[CTTelephonyNetworkInfo alloc] init];
NSLog(@"Initial cell connection: %@", self.networkInfo.currentRadioAccessTechnology);
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(radioAccessChanged) name:CTRadioAccessTechnologyDidChangeNotification object:nil];
Und dann erhalten Sie einen Rückruf, wenn sich die Daten ändern:
- (void)radioAccessChanged {
NSLog(@"Now you're connected via %@", self.networkInfo.currentRadioAccessTechnology);
}
Die Werte für currentRadioAccessTechnology
sind definiert in CTTelephonyNetworkInfo.h definiert und man erhält null / nil zurück, wenn es keine Mobilfunkverbindung gibt.
Hier habe ich es gefunden: http://www.raywenderlich.com/48001/easily-overlooked-new-features-ios-7