我使用下面提到的代码来检测iOS设备中的信号强度,此代码在iOS 9或更低版本中返回完美的信号强度结果。
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"]valueForKey:@"foregroundView"] subviews];
NSString *dataNetworkItemView = nil;
if ([CommonUtils objectIsValid:subviews])
{
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]])
{
dataNetworkItemView = subview;
break;
}
}
NSInteger checkSignalValue = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] integerValue];
self.dynamicMessageValue = [NSString stringWithFormat:@"%ld dBm",(long)checkSignalValue];
但是在iOS 10或更高版本中,每次返回0值时此代码都不起作用。 我还要检查设备,通过设备键盘拨打 3001#12345# ,然后在状态栏左侧显示结果顶部,但在iOS 9或更低版本中版本,在iOS 10以上它无法正常工作。
任何人,请让我知道另一种获取设备信号强度的方法吗?
请以正确的答案发帖。谢谢!