Получите CellID, MCC, MNC, LAC, мощность сигнала, качество и сеть в iOS 8.3

Как получить идентификатор ячейки с помощью частного API-интерфейса в ios 8.3, поскольку предыдущие частные API-интерфейсы базовой телефонии не работают в последней версии SDK для iOS 8.3.


person Pooja Maha    schedule 22.04.2015    source источник


Ответы (2)


Вы все еще можете использовать это. Работает на iOS 8.3. Я не знаю, как получить силу сигнала. В последнее время Apple многое изменила в Core Telephony. :(

CTTelephonyNetworkInfo *telephonyInfo = [CTTelephonyNetworkInfo new];
NSString *carrierNetwork = telephonyInfo.currentRadioAccessTechnology;
NSLog(@"Mobile Network): %@", carrierNetwork);

CTCarrier *carrier = [telephonyInfo subscriberCellularProvider];

NSString *mobileCountryCode = [carrier mobileCountryCode];
NSLog(@"Mobile Country Code (MCC): %@", mobileCountryCode);

NSString *mobileNetworkCode = [carrier mobileNetworkCode];
NSLog(@"Mobile Network Code (MNC): %@", mobileNetworkCode);

NSString *carrierName = [carrier carrierName];
NSLog(@"Mobile Network name: %@", carrierName);

NSString *isoCountryCode = [carrier isoCountryCode];
NSLog(@"Mobile Network isoCode: %@", isoCountryCode);

Изменить: я нашел решение, как получить силу сигнала. *! Обратите внимание, что приведенное ниже решение использует частный API и будет отклонено Apple при отправке в App Store.

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];

NSLog(@"signal %d", signalStrength);
person Mateusz Mirkowski    schedule 23.04.2015
comment
Из этого я могу получить только MNC и MCC, но я ищу идентификатор ячейки, LAC и мощность сигнала, которые были доступны с использованием частного API до 8.3, но теперь не работают в новом обновлении. Любое обновление для того же? - person Pooja Maha; 23.04.2015
comment
Я знаю, что этот пост старше, но мне было интересно, нашел ли кто-нибудь решение этой проблемы. - person RockPaperScissors; 05.06.2015
comment
Неа. Решение есть, но работает только на взломанных устройствах. - person Mateusz Mirkowski; 20.07.2015
comment
Я нашел решение, как получить силу сигнала !!! Работает на iOS 8.3. Проверить отредактированный ответ. - person Mateusz Mirkowski; 23.07.2015
comment
Спасибо @Mateusz Mirkowski ... за MCC, MNC. Но как получить LAC и Cell ID? - person Keyur Akbari; 10.08.2015
comment
@MateuszMirkowski - отличный ответ, но будет ли он принят Apple для отправки. - person Pooja Maha; 24.08.2015
comment
Да, он будет отклонен Apple, потому что он использует частные переменные. - person Mateusz Mirkowski; 16.09.2015

Получите CellID, MCC, MNC, LAC и Сеть в iOS 5.1

вы можете перейти по ссылке выше, и там можно будет получить лак и ячейку ниже ios 8.2. если вы хотите получить lac и cell выше ios 8.3, вы должны добавить право:

<key>com.apple.CommCenter.fine-grained</key>
<array>
    <string>spi</string>
</array>

Кроме того, в нем говорится, что вашему телефону нужен джейлбрейк.

Но правда, на настоящем телефоне не могу попробовать. если получилось, просто поделитесь, спасибо.

person cellmap    schedule 19.10.2015