【问题标题】:How can I check missed call in iPhone using Objective-C?如何使用 Objective-C 检查 iPhone 中未接来电?
【发布时间】:2011-01-12 03:28:45
【问题描述】:

如何使用 Objective-C 在 iPhone 中查看未接来电?

【问题讨论】:

    标签: iphone objective-c ipod-touch


    【解决方案1】:

    使用 Core Telephony 框架,检测呼叫状态变化。 收听来电。现在,当有来电时,您的应用程序会收到通知。

    之后,当弹出警报时,调用applicationWillResignActive

    1. 如果用户接受调用,则调用 applicationDidEnterBackground,然后当用户切换回您的应用程序时,将调用 applicationDidBecomeActive
    2. 如果用户拒绝呼叫或呼叫者在接受/拒绝之前结束呼叫,将调用 applicationDidBecomeActive

    第二种情况表示未接电话。

    【讨论】:

    • 这仅适用于您的应用在通话时处于活动状态的情况,对吧?我的意思是,你不能用它来接听所有个未接电话。
    【解决方案2】:

    沙盒会阻止第三方应用访问手机功能。因此,无法检测未接来电。

    【讨论】:

      【解决方案3】:

      当您有来电时,该功能

      - (void)applicationWillResignActive:(UIApplication *)application;
      

      被调用,如果未接来电,应用程序将再次处于活动状态,并且该功能

      - (void)applicationDidBecomeActive:(UIApplication *)application;
      

      被调用。

      这样,您可以检测未接来电。我知道没有其他方法可以做到这一点。

      唯一的缺点是,当您在应用程序处于活动状态时锁定/解锁设备时也会调用这些方法,因此您将无法知道这是未接来电还是用户锁定了设备。

      【讨论】:

      • 解决锁定/解锁问题的简单方法,只需弹出一个对话框询问用户是否错过了电话(按是或否)
      【解决方案4】:

      第三方软件无法访问 iPhone 手机。幸运。

      【讨论】:

      • 不幸的是,这是不可能的。我希望看到用户必须确认应用可以访问手机特定部分的 Android 模型。
      • 这是安全功能。 iPhone 上的所有配置都是为了保护手机的运行,因为手机必须在紧急情况下工作。如果第 3 方应用程序可以获取电话号码或收听电话树代码,也会存在潜在的隐私问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2019-04-09
      • 1970-01-01
      • 2015-07-23
      相关资源
      最近更新 更多