我只想以编程方式知道 iPhone 是否处于飞行模式。我知道我们必须在信息列表中添加 SBUsesNetwork 布尔标志,但这不符合我的目的。实际上,我正在使用可达性类来识别互联网可用性,因此当我的应用程序以飞行模式启动时,会从我的代码中给出两个警报,另一个来自 SBUsesNetwork 标志。我只是想显示这两个警报中的任何一个。所以我想以编程方式知道手机是否处于飞行模式?
问问题
2697 次
2 回答
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");
}
于 2016-11-29T11:24:32.313 回答
-1
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
[infoDict objectForKey:@"SBUsesNetwork"];
希望这可以帮助。
于 2013-03-29T04:11:10.363 回答