1

我们使用私有框架(包括 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 拒绝使用私有框架。

任何帮助将不胜感激。

4

1 回答 1

0

在后台状态下[app valueForKey:@"statusBar"]将等于 nil。这是因为在您的应用程序中无法从 bg 访问 statusBar。

于 2016-09-22T10:26:29.570 回答