iPhone后台应用程序在接到电话时更新屏幕

我们正在编写一个iPhone应用程序(将在后台),在接到来电时会通知您。 该应用程序做了一些后台工作 - 去服务器检索一些数据,而电话会议正在进行,然后通知用户。

搜索后,我发现我可以使用Private Telephony Headers/Framework来真正了解谁在我的应用程序中调用。 但是,我无法使用从服务器检索到的信息更新拨号程序屏幕。 另外我发现应用程序必须在电话到达时运行。 牦牛!

我知道这不会被苹果商店批准,但我正在寻找2件事:

  • 我如何把这个应用程序在后台。
  • 如何在通话过程中显示一些信息。 本地通知很好,但必须立即显示。
  • 即使我们必须越狱,我想知道如何做到这一点。 这个应用程序是执法人员 - 概念验证。


    正如YllierDev所说,你可以看一下MobileSubstrate调整来显示信息。 但是,对于某些对新人来说可能不那么令人畏惧的事情,你可以试试这个:

  • 首先,创建一个启动守护进程 。 这可以在后台运行,并做任何你喜欢的事情。 它将在手机启动时启动,因此用户不需要先运行某个应用程序,然后将其放入后台。 我发现这是构建LaunchDaemon的一个很好的例子

  • 这听起来像你已经知道如何使用核心电话框架的未记录功能来获得新通话的通知。 这将是你的守护进程的责任。 为了完整起见,请参阅此答案,或有关守护程序如何使用Darwin通知来侦听呼叫的其他答案。

  • 当呼叫被拦截时,守护进程可以联系您的服务器。

  • 然后,你可以创建一个如下所示的简单弹出窗口:

  • CFOptionFlags responseFlags = 0;
    CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, 
         CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), 
         NULL, NULL, &responseFlags);
    

    以下是关于CFUserNotifications的一些Apple文档

    您可能必须链接到CoreFoundation框架,并且可能在您的项目中包含此头文件,以使CFUserNotificationDisplayAlert()可用。

    但是,这应该会为您提供动态呼叫数据的弹出窗口。

    链接地址: http://www.djcxy.com/p/10773.html

    上一篇: iPhone background app to update the screen when a phone call is received

    下一篇: Get the first link in a Wikipedia article not inside parentheses