IOS 系统打电话事件的监听与状态获取
2016-07-05 15:27
507 查看
我们可以调用iOS提供的接口拨打电话:
NSString *tel = @"telprompt://";
NSString * number = [tel stringByAppendingString:phoneNubmer];
NSURL * telURL = [NSURL URLWithString: number];
[_callView loadRequest:[NSURLRequest requestWithURL:telURL]];
[self.view addSubview:_callView];
调用之后会弹出iOS的alert,询问是否要拨号,那么我们怎么知道用户是点击了哪个选项呢,可以使用电话事件监听的包和方法:
导入CoreTelephony.framework,
@property (nonatomic, strong) CTCallCenter *center;
这个一定要声明为属性,如果在某个函数中做声明的话,ARC就会自动在函数执行结束的时候将其释放掉。
_center = [[CTCallCenter alloc] init];
_center.callEventHandler = ^(CTCall *call) {
if ([call.callState isEqualToString:@"CTCallStateDialing"]) {
。。。
}
};
call.callState 这个属性记录了电话操作的状态,具体都有哪些值可以通过头文件得知。
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
@property (nonatomic, strong) CTCallCenter *callCenter;
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* call) {
if ([call.callState isEqualToString:CTCallStateDisconnected])
{
NSLog(@"挂断了电话咯Call has been disconnected");
}
else if ([call.callState isEqualToString:CTCallStateConnected])
{
NSLog(@"电话通了Call has just been connected");
}
else if([call.callState isEqualToString:CTCallStateIncoming])
{
NSLog(@"来电话了Call is incoming");
}
else if ([call.callState isEqualToString:CTCallStateDialing])
{
NSLog(@"正在播出电话call is dialing");
}
else
{
NSLog(@"嘛都没做Nothing is done");
}
};
NSString *tel = @"telprompt://";
NSString * number = [tel stringByAppendingString:phoneNubmer];
NSURL * telURL = [NSURL URLWithString: number];
[_callView loadRequest:[NSURLRequest requestWithURL:telURL]];
[self.view addSubview:_callView];
调用之后会弹出iOS的alert,询问是否要拨号,那么我们怎么知道用户是点击了哪个选项呢,可以使用电话事件监听的包和方法:
导入CoreTelephony.framework,
@property (nonatomic, strong) CTCallCenter *center;
这个一定要声明为属性,如果在某个函数中做声明的话,ARC就会自动在函数执行结束的时候将其释放掉。
_center = [[CTCallCenter alloc] init];
_center.callEventHandler = ^(CTCall *call) {
if ([call.callState isEqualToString:@"CTCallStateDialing"]) {
。。。
}
};
call.callState 这个属性记录了电话操作的状态,具体都有哪些值可以通过头文件得知。
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
@property (nonatomic, strong) CTCallCenter *callCenter;
CTCallCenter *callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* call) {
if ([call.callState isEqualToString:CTCallStateDisconnected])
{
NSLog(@"挂断了电话咯Call has been disconnected");
}
else if ([call.callState isEqualToString:CTCallStateConnected])
{
NSLog(@"电话通了Call has just been connected");
}
else if([call.callState isEqualToString:CTCallStateIncoming])
{
NSLog(@"来电话了Call is incoming");
}
else if ([call.callState isEqualToString:CTCallStateDialing])
{
NSLog(@"正在播出电话call is dialing");
}
else
{
NSLog(@"嘛都没做Nothing is done");
}
};
相关文章推荐
- Xcode7隐藏、更改状态栏
- AFNetworking 使用说明
- 【IOS】在某个页面第一次启动的时候,显示引导页
- iOS 常用的#define合集
- CoreData轻量级版本迁移
- iOS开发-关闭/收起键盘方法总结
- iOS 启动页后广告Demo
- iOS 时间戳转化为时间(附13位转10位方法)
- iOS-Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be complet
- iOS 中const的使用
- ios 类似于网易的启动页广告
- iOS中处理计算精度要求很高的数据
- iOS之Alcatraz常见插件
- iOS使用第三方管理工具
- TableViewController中的搜索框和mj刷新配合使用
- IOS 如何选择delegate、notification、KVO?
- iOS绘制图形的基本方法
- iOS开发多线程篇—线程间的通信
- iOS正则表达式的应用
- iOS7到iOS8 一个通用的横竖屏幕切换总结