查找正在使用的运营商信息,而不是 SIM 卡信息

Find carrier info in use, not the SIM one

是否可以获取有关当前正在使用的运营商的信息? CoreTelefony 返回有关 SIM 运营商的信息。

我在互联网上没有找到任何讨论这个话题的文章。由于用户在其他国家/地区移动时 SIM 卡也可能相同,因此我想检查 phone 使用的当前网络信息。

有机会实现这个结果吗?

我对 iOS 和 Android 代码都感兴趣。

I ran into this problem a while back,我设法找到了一种适合我的目的的方法。它不漂亮,也不是未来的证据,也没有记录。但我目前在 AppStore 中有一个使用它的应用程序。

哦,它只在 iOS 7.0 - 8.2 上测试过!

所以是的,对于 iOS,我知道可以找到 MMC and MNC,这样您就可以找到国家和提供商:

// This is the location of the operator symlink
static NSString * operatorPListSymLinkPath = @"/var/mobile/Library/Preferences/com.apple.operator.plist";

// Here we get the path where the symlink points to
NSFileManager * fileManager = [NSFileManager defaultManager]
NSError * error;
NSString * operatorPListPath = [fileManager destinationOfSymbolicLinkAtPath:operatorPListSymLinkPath error:&error];

运营商路径包含一些数字,其中前 3 个是提供商的 MCC(移动国家代码),后面的几个是 MNC(移动网络代码)

我只是想找到国家(MCC),所以我用了这个:

operatorPListPath = [operatorPListPath stringByTrimmingCharactersInSet:[[NSCharacterSet characterSetWithCharactersInString:@"1234567890"] invertedSet]];
NSString * countryMCC = [operatorPListPath substringToIndex:3];

您只需要一本 MCC > 国家/地区词典和一本 MNC > 网络词典来检查这些代码代表什么

不过 Android 帮不了你.. :)