在iPhone中获取操作员详细信息

Shi*_*ddy 5 iphone

如何获取当前使用iPhone的操作员详细信息(如Airtel或Idea等).

是否有可能获得这些细节或有任何方法来确定我们当前正在使用哪个运营商.我正在开发一个基于运营商的应用程序,如果用户更改他的SIM(操作员),那么应用程序不应该工作,它必须为那个特定的运营商工作.

dar*_*s0n 12

CTCarrier应该包含您需要的信息.

编辑:CTTelephonyNetworkInfo响应用户在会话中切换SIM,并CTCarrier为您提供实例.

示例代码(在您的应用代理中):

#import <CoreTelephony/CoreTelephony.h>

static NSString *requiredCarrier = @"Verizon"; // example carrier

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  CTTelephonyNetworkInfo *myNetworkInfo = [[CTTelephonyNetworkInfo alloc] init];
  CTCarrier *myCarrier = [myNetworkInfo subscriberCellularProvider];

  if(![[myCarrier carrierName] isEqualToString:requiredCarrier])
  {
    // lock the app, possibly terminate the app after displaying a UIAlertView
    // informing the user of the network-lock.
  }

  // ...
  return YES;
}
Run Code Online (Sandbox Code Playgroud)

请注意以下关于属性的CTCarrier建议(如果读取nil载波,我建议不要进行永久性单向锁定):

" nil如果符合以下任何条件,则此属性的价值适用:

  • 设备处于飞行模式.
  • 设备中没有SIM卡.
  • 该设备不在蜂窝服务范围内."

CTCarrier要验证的属性中,我会carrierName特别推荐,因为它在用户漫游时不会改变,因此只要SIM绑定到您想要的操作员,应用程序仍然可以工作.