Уровень сигнала в iOS (дБм)? - PullRequest
0 голосов
/ 06 июня 2018

Я использую приведенный ниже код для определения уровня сигнала в устройстве 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 или ниже, выше iOS10 это не работает.

Кто-нибудь, пожалуйста, дайте мне знать альтернативу, чтобы получить уровень сигнала устройства?

Пожалуйста, сделайте пост с правильным ответом.Спасибо!

...