1.加入一个Framework(CoreTelephony.framework).
2.引入头文件
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
3.初始化
# import <UIKit/UIKit.h>
# import <CoreTelephony/CTTelephonyNetworkInfo.h>
# import <CoreTelephony/CTCarrier.h>
@interface RootViewController : UITableViewController
{
//声明变量
CTTelephonyNetworkInfo *networkInfo;
}
@end
@implementation RootViewController
- ( void )viewDidLoad
{
[ super viewDidLoad];
self.navigationItem.prompt = @ "CTTelephonyNetworkInfo" ;
self.navigationItem.title = @ "CTCarrier" ;
//初始化
networkInfo = [[CTTelephonyNetworkInfo alloc] init];
//当sim卡更换时弹出此窗口
networkInfo.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@ "Sim card changed" delegate:nil cancelButtonTitle:@ "Dismiss" otherButtonTitles:nil];
[alert show];
};
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//获取sim卡信息
CTCarrier *carrier = networkInfo.subscriberCellularProvider;
static NSString *CellIdentifier = @ "Cell" ;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
switch (indexPath.row) {
case 0 : //供应商名称(中国联通 中国移动)
cell.textLabel.text = @ "carrierName" ;
cell.detailTextLabel.text = carrier.carrierName;
break ;
case 1 : //所在国家编号
cell.textLabel.text = @ "mobileCountryCode" ;
cell.detailTextLabel.text = carrier.mobileCountryCode;
break ;
case 2 : //供应商网络编号
cell.textLabel.text = @ "mobileNetworkCode" ;
cell.detailTextLabel.text = carrier.mobileNetworkCode;
break ;
case 3 :
cell.textLabel.text = @ "isoCountryCode" ;
cell.detailTextLabel.text = carrier.isoCountryCode;
break ;
case 4 : //是否允许voip
cell.textLabel.text = @ "allowsVOIP" ;
cell.detailTextLabel.text = carrier.allowsVOIP?@ "YES" :@ "NO" ;
break ;
default :
break ;
}
return cell;
}
获取手机号码
1.NSString *number = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
只能获取的是机主设置的本机号码,不能读取sim卡上的电话号码
2. CTSettingCopyMyPhoneNumber(); 毕竟私有API
1.NSString *number = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
只能获取的是机主设置的本机号码,不能读取sim卡上的电话号码
2. CTSettingCopyMyPhoneNumber(); 毕竟私有API