我们使用私有框架(包括 UIStatusBarSignalStrengthItemView.h)来计算细胞信号强度。它在前台模式下完美运行,但是一旦我的应用程序进入后台,它就会停止更新细胞信号强度。
我们使用的代码是:
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;
}
}
int signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
请注意,我们将应用程序用于企业用途,因此我们无需担心 Apple 拒绝使用私有框架。
任何帮助将不胜感激。