2015-04-22 294 views

回答

5

你仍然可以使用它。它在iOS 8.3上工作。我不知道如何獲得信號強度。最近,蘋果公司在覈心電話中改變了很多東西。 :(

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的,因此將蘋果時提交到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); 
+0

從這我只能得到MNC和MCC,但我正在尋找細胞ID,LAC和信號強度,這是使用私人APIS befor 8.3,但現在不能在新的升級工作。任何更新相同? –

+1

我知道這篇文章比較老,但想知道是否有人找到了解決這個問題的方法 – RockPaperScissors

+0

沒有。有一個解決方案,但只適用於越獄設備。 –

0

Get CellID, MCC, MNC, LAC, and Network in iOS 5.1

,您可以訪問上面的鏈接,並且可以得到下面的ios LAC和電池8.2 如果你想獲得LAC和電池上面搭載iOS 8.3版本,您應該添加的權利:

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

另外,它說你的手機需要越獄。

但是,真的,我不能嘗試真正的手機。如果你成功了,就分享,謝謝。

相關問題