我只是想以编程方式了解iPhone是否处于飞行模式。我知道我们必须在信息plist中添加SBUsesNetwork布尔标志,但这不符合我的目的。实际上我正在使用可访问性类来识别互联网可用性,所以当我的应用程序以飞行模式启动时,从我的代码中提供两个警报,而另一个来自SBUsesNetwork标志。我想要显示这两个警报中的任何一个。所以我想以编程方式知道手机是否处于飞行模式?
答案 0 :(得分:0)
如果不使用私有库,我们无法获取此信息。这是一些代码,但是当载波信号不可用时它将不起作用。
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");
}
答案 1 :(得分:-1)
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
[infoDict objectForKey:@"SBUsesNetwork"];
希望这有帮助。