Получить CellID, MCC, MNC, LAC, мощность сигнала, качество и сеть в iOS 8.3
Как получить идентификатор ячейки с помощью private apis в ios 8.3, так как частная apis предыдущей базовой телефонии не работает в последней версии ios sdk 8.3.
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);
Получить 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>
Кроме того, он говорит, что ваш телефон нуждается в джейлбрейке.
Но на самом деле, я не могу примерить реальный телефон. если вам это удалось, просто поделитесь, спасибо.