博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios获取sim卡信息以及手机号码
阅读量:6897 次
发布时间:2019-06-27

本文共 2207 字,大约阅读时间需要 7 分钟。

hot3.png

 
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>
 
RootViewController : UITableViewController
 
{
 
    
//声明变量
 
    
CTTelephonyNetworkInfo *networkInfo;
 
}
 
 
@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

转载于:https://my.oschina.net/u/2330410/blog/401866

你可能感兴趣的文章
alter system flush shared_pool;
查看>>
Beetl开源那些事2
查看>>
Linux基础入门第三周作业【Linux微职位】
查看>>
TeaFramework——IOC容器实现(一)
查看>>
windows server 2012 安装 IIS8 并支持 asp
查看>>
数据库Sharding的基本思想和切分策略
查看>>
Freebsd下日志的轮转
查看>>
CMPT4:如何在AD上创建System Management容器以及设置权限
查看>>
macOS Sierra pip install psycopg2 error
查看>>
shell scripts 知识点汇总
查看>>
Kafka知识点汇总
查看>>
db2ckpwd, db2wdog为什么需要root用户运行.
查看>>
运维-常用命令
查看>>
centos6.6安装最新firefox和firefox-flash-plugin
查看>>
phpmyadmin 显式ip
查看>>
C语言类型
查看>>
有关Patent Agreement
查看>>
c 语言多参数
查看>>
php缓存加速插件安装记录
查看>>
python:threading多线程模块-Condition实现复杂的同步
查看>>