A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 滔哥 黑马帝   /  2015-6-21 19:40  /  2579 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


由于前段时间有个哥们在我睡觉的时候吵醒我,问了个很郁闷的问题:"iPhone 上如何获取Sim卡信息"我直接无语了,本身苹果的App 商城  如果有获取手机本机号码功能的应用是无法上线的.
下面是获取Sim信息Demo,能不能成功,听天由命了!:curse:
  1. /*

  2. iphone获取sim卡信息

  3. 1.加入一个Framework(CoreTelephony.framework).

  4. 2.引入头文件

  5. #import <CoreTelephony/CTTelephonyNetworkInfo.h>

  6. #import <CoreTelephony/CTCarrier.h>

  7. 3.初始化



  8. */

  9. //-----------------------------------


  10. //-----------------------------------

  11. #import <UIKit/UIKit.h>

  12. #import <CoreTelephony/CTTelephonyNetworkInfo.h>

  13. #import <CoreTelephony/CTCarrier.h>

  14. @interface RootViewController : UITableViewController

  15. {
  16.    
  17.     //声明变量
  18.    
  19.     CTTelephonyNetworkInfo *networkInfo;
  20.    
  21. }

  22. @end

  23. @implementation RootViewController

  24. - (void)viewDidLoad

  25. {
  26.    
  27.     [super viewDidLoad];
  28.    
  29.     self.navigationItem.prompt = @"CTTelephonyNetworkInfo";
  30.    
  31.     self.navigationItem.title = @"CTCarrier";
  32.    
  33.    
  34.    
  35.     //初始化
  36.    
  37.     networkInfo = [[CTTelephonyNetworkInfo alloc] init];
  38.    
  39.     //当sim卡更换时弹出此窗口
  40.    
  41.     networkInfo.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier *carrier){
  42.         
  43.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"Sim card changed" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
  44.         
  45.         [alert show];
  46.         
  47.         
  48.         
  49.     };
  50.    
  51.    
  52.    
  53. }

  54. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

  55. {
  56.    
  57.     //获取sim卡信息
  58.    
  59.     CTCarrier *carrier = networkInfo.subscriberCellularProvider;
  60.    
  61.     static NSString *CellIdentifier = @"Cell";
  62.    
  63.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  64.    
  65.     if (cell == nil) {
  66.         
  67.         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
  68.         
  69.     }
  70.    
  71.    
  72.    
  73.     switch (indexPath.row) {
  74.             
  75.         case 0://供应商名称(中国联通 中国移动)
  76.             
  77.             cell.textLabel.text = @"carrierName";
  78.             
  79.             cell.detailTextLabel.text = carrier.carrierName;
  80.             
  81.             break;
  82.             
  83.         case 1://所在国家编号
  84.             
  85.             cell.textLabel.text = @"mobileCountryCode";
  86.             
  87.             cell.detailTextLabel.text = carrier.mobileCountryCode;
  88.             
  89.             break;
  90.             
  91.         case 2://供应商网络编号
  92.             
  93.             cell.textLabel.text = @"mobileNetworkCode";
  94.             
  95.             cell.detailTextLabel.text = carrier.mobileNetworkCode;
  96.             
  97.             break;
  98.             
  99.         case 3:
  100.             
  101.             cell.textLabel.text = @"isoCountryCode";
  102.             
  103.             cell.detailTextLabel.text = carrier.isoCountryCode;
  104.             
  105.             break;
  106.             
  107.         case 4://是否允许voip
  108.             
  109.             cell.textLabel.text = @"allowsVOIP";
  110.             
  111.             cell.detailTextLabel.text = carrier.allowsVOIP?@"YES":@"NO";
  112.             
  113.             break;
  114.             
  115.             
  116.             
  117.         default:
  118.             
  119.             break;
  120.             
  121.     }
  122.    
  123.    
  124.    
  125.     return cell;
  126.    
  127. }
复制代码



2 个回复

倒序浏览
像这种扰人清梦的事情,简直是.....好赞啊!(滔哥,你主玩EZ?。。。)
回复 使用道具 举报
多谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马