Как определить, находится ли телефон в режиме полета - программно?
Я просто хочу программно узнать, находится ли iPhone в режиме полета. Я знаю, что мы должны добавить логический флаг SBUsesNetwork в информационный лист, но эта доза не служит моей цели. На самом деле я использую класс reachabillity для определения доступности Интернета, поэтому, когда мое приложение при запуске в режиме полета выдает два предупреждения, одно из моего кода, а другое - из флага SBUsesNetwork. Я просто хочу отобразить одно из этих двух предупреждений. Поэтому я хочу, чтобы программно узнать, находится ли телефон в режиме полета?
Любая идея или предложения будут иметь большую помощь?
Заранее спасибо!!
4 ответа
Уже было опубликовано о здесь. Может быть, это поможет.
Мы не можем получить эту информацию без использования частных библиотек. Вот некоторый код, но он не будет работать, когда сигнал несущей недоступен.
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSString *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
double signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
if (signalStrength > 0) {
NSLog(@"Airplane mode or NO signal");
}
else{
NSLog(@"signal available");
}
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
[infoDict objectForKey:@"SBUsesNetwork"];
Надеюсь это поможет.