ios获取sim卡信息以及手机号码

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值