首页 > 解决方案 > iOS(dbm)中的信号强度?

问题描述

我正在使用下面提到的代码来检测 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 之上它不起作用。

任何人,请让我知道获取设备信号强度的替代方法?

请用正确的答案发帖。谢谢!

标签: iosobjective-csignalsstatusbaruiapplication

解决方案


推荐阅读