Obter força do sinal do dispositivo

Estou tentando obter a força do sinal em dBm para a operadora, wifi, 3G e 4G.

Atualmente, estou usando esse código para obter a operadora e o wifi na barra de status e gostaria de saber se existe outra maneira ou uma maneira melhor? Também como consegui-lo para 3G e 4G?

UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSString *dataNetworkItemView = nil;
NSString *wifiNetworkItemView = nil;

for (id subview in subviews) {
    if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]]) {
        dataNetworkItemView = subview;
    }
    if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
        wifiNetworkItemView = subview;
    }
}

int carrierSignalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
int wifiSignalStrength = [[wifiNetworkItemView valueForKey:@"wifiStrengthRaw"] intValue];

Não importa se algum método que eu uso é privado ou não.

questionAnswers(2)

yourAnswerToTheQuestion