【问题标题】:How can I use private APIs to block incoming calls in an iOS application?如何使用私有 API 阻止 iOS 应用程序中的来电?
【发布时间】:2011-11-11 16:25:32
【问题描述】:

我希望能够在我正在编写的 iOS 应用程序中选择性地阻止来电。这是供个人使用的,而不是 App Store,所以我可以使用私有 API 来完成此操作。

我最近遇到了 Core Telephony 框架。有没有办法使用这个框架来阻止调用?如果没有,我可以使用哪些私有 API 来执行此操作?

【问题讨论】:

    标签: iphone ios core-telephony


    【解决方案1】:

    你确定不是吗? http://tech.ruimaninfo.com/?p=83 上的代码示例显示了如何执行此类操作。 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 设备上测试了这个片段

    【讨论】:

    • 不,我不能把它放在 App Store 上,但是我如何使用该链接阻止特定号码?
    • 还没有,我没有看到任何变化:/
    • 尼斯。老实说,我认为您在接下来的几个月中至少获得 10 票赞成,因为该代码非常有用!最后一件事,我将如何保持应用程序运行,以便在我接到电话时调用您发布的代码,即使应用程序已关闭?
    • 严格来说你不能——苹果规则。但是看看stackoverflow.com/questions/4656214/…stackoverflow.com/questions/7610182/… 可以给你一些想法。我遇到的一件事-您最好保持 CoreLocation 处于活动状态,而不是处于重要位置监控模式(即使精度为 3 公里),否则您可能会被终止得太快。当然你必须测量电池使用问题(毕竟你使用CoreLocation)等
    • 你确定吗?我知道 iBlacklist 和 MCaller 就是这样做的,但他们有电话 JB'ed。你确定没有办法吗?
    【解决方案2】:

    Core Telephony 不支持此功能。据我所知,任何已知的私有 API 也无法做到这一点。

    【讨论】:

    • 那iBlackList和MCaller是怎么做的呢?
    • @H2CO3,我在哪里说“不可能”?
    • @GregMartin “据我所知,任何已知的私有 API 也无法做到这一点。”
    • @H2CO3,我不相信这两个陈述是平等的。我还想知道为什么它对一个已有 1.5 年历史且答案已被接受的问题很重要。
    【解决方案3】:

    从 iOS 10.0+ 开始,就有了 CallKit,其中包括一个呼叫阻止和识别 API:https://developer.apple.com/documentation/callkit

    (为 2020 年或未来发现此内容的人提供的信息)

    【讨论】:

      猜你喜欢
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多