在iOS 8.3中获取CellID、MCC、MNC、LAC、信号强度、质量和网络

在iOS 8.3中获取CellID、MCC、MNC、LAC、信号强度、质量和网络,ios,iphone-privateapi,core-telephony,signal-strength,ios8.3,Ios,Iphone Privateapi,Core Telephony,Signal Strength,Ios8.3,如何在ios 8.3中使用专用API获取单元id,因为以前的核心电话专用API在最新的ios sdk 8.3中不起作用 你仍然可以使用这个。它在iOS 8.3上运行。我不知道如何获得信号强度。苹果最近在核心电话方面做了很多改变( 编辑:我找到了如何获得信号强度的解决方案。 *!请注意,下面的解决方案使用了私有API,因此在提交到App Store时,Apple将拒绝该解决方案 UIApplication *app = [UIApplication sharedApplication]; NSAr

如何在ios 8.3中使用专用API获取单元id,因为以前的核心电话专用API在最新的ios sdk 8.3中不起作用

你仍然可以使用这个。它在iOS 8.3上运行。我不知道如何获得信号强度。苹果最近在核心电话方面做了很多改变(

编辑:我找到了如何获得信号强度的解决方案。 *!请注意,下面的解决方案使用了私有API,因此在提交到App Store时,Apple将拒绝该解决方案

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

您可以访问上面的链接,它可以获得低于ios 8.2的lac和cell。 如果您希望获得高于ios 8.3的lac和cell,则应添加以下权限:

<key>com.apple.CommCenter.fine-grained</key>
<array>
    <string>spi</string>
</array>
com.apple.CommCenter.fine-grained
spi
还有,它说你的手机需要越狱


但事实上,我不能在真正的手机上尝试。如果你成功了,请分享,谢谢。

我只能从中获得MNC和MCC,但我正在寻找手机id、LAC和信号强度,它们在8.3之前使用私有API时可用,但现在在新的升级中不起作用。是否有更新?我知道这篇文章比较旧,但不知道是否有人在更新已经找到了这个问题的解决方案。没有。有一个解决方案,但只适用于越狱设备。我找到了如何获得信号强度的解决方案!!!它在iOS 8.3上工作。检查编辑的答案。是的,它将被苹果拒绝,因为它使用了私有变量。
<key>com.apple.CommCenter.fine-grained</key>
<array>
    <string>spi</string>
</array>