我希望能够在我正在编写的iOS应用中有选择性地阻止来电。这是为个人使用而打算的,不是用于App Store,因此我可以使用私有API来实现这一点。
我最近发现了核心电话框架(Core Telephony framework)。有没有办法使用该框架来阻止来电?如果没有,我可以使用哪些私有API来完成此操作?
我希望能够在我正在编写的iOS应用中有选择性地阻止来电。这是为个人使用而打算的,不是用于App Store,因此我可以使用私有API来实现这一点。
我最近发现了核心电话框架(Core Telephony framework)。有没有办法使用该框架来阻止来电?如果没有,我可以使用哪些私有API来完成此操作?
你确定它不行吗?这里有代码示例展示如何实现此类功能。SDK中的核心电信头文件不完整,这意味着没有应用商店。下面是我根据链接示例编写的代码片段:
if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"])
{
NSDictionary *info = (__bridge NSDictionary *)userInfo;
CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"];
NSString *caller = CTCallCopyAddress(NULL, call);
NSLog(@"Caller %@",caller);
if ([caller isEqualToString:@"+1555665753"])
{
//disconnect this call
CTCallDisconnect(call);
}
需要额外的定义:
typedef struct __CTCall CTCall;
extern NSString *CTCallCopyAddress(void*, CTCall *);
extern void CTCallDisconnect(CTCall*);
你需要监控电话中心的回拨(请参见链接示例)。 我在我的iOS5设备上测试了这个片段。
Core Telephony不支持此功能。据我所知,目前也没有任何已知的私有API可以实现此操作。