嗨,我想构建一个应用程序,在来电时执行某些操作。但我认为手机需要在 iphone 上越狱才能访问执行该操作的类。我想在手机不越狱的情况下做到这一点。
问问题
3951 次
2 回答
2
不可能。
但是,您可以使用CoreTelephony框架获得呼叫状态(连接/断开等)等信息。
于 2011-04-21T05:47:34.030 回答
0
如果您想在来电或去电时做任何事情,那么您必须使用以下代码:
CTCallCenter *callCenter; //make it ivar if you are using ARC or handler will be auto-released...
callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call) {
NSLog(@"Call id:%@", call.callID);
[self callStateChange:call.callState andId:call.callID];
if (call.callState==CTCallStateDialing) {
NSLog(@"Call state:dialing");
}
if (call.callState==CTCallStateIncoming) {
NSLog(@"Call state:incoming");
//here you lower your speaking volume if you want
}
if (call.callState==CTCallStateConnected) {
NSLog(@"Call state:connected");
}
if (call.callState==CTCallStateDisconnected) {
NSLog(@"Call state:disconnected");
}
};
但这将在您的应用程序处于活动状态或从后台转到前台时起作用。如果应用程序将终止或暂停,那将无法正常工作。首先,您检测呼叫状态,然后立即显示本地通知。当单击查看详细信息时,再次显示您的应用程序。但这没有得到苹果的批准,因为它会在后台发送电话。所以可能有风险。
于 2012-03-16T07:47:28.473 回答