我们正在编写一个iPhone应用程序(将在后台),当接到来电时会收到通知。该应用程序执行一些后台工作 - 在电话会话正在进行时访问服务器检索一些数据,然后通知用户。
搜索后,我发现我可以使用Private Telephony Headers/Framework
实际知道谁在我的应用中调用。但是,我无法使用从服务器检索到的信息更新拨号程序屏幕。此外,我发现应用程序必须在电话到达时运行。牦牛!
我知道这不会在苹果商店批准,但我正在寻找两件事:
即使我们必须越狱,我也想知道如何完成这项工作。这个应用程序是为执法官员 - 概念证明。
答案 0 :(得分:3)
正如YllierDev所说,您可以查看MobileSubstrate调整以显示信息。但是,对于那些可能对某些新人来说不那么令人生畏的东西,你可以试试这个:
首先,创建一个启动守护程序。这可以在后台运行并做任何你喜欢的事情。它将在手机启动时启动,因此用户无需先运行某个应用程序,然后将其置于后台。我找到了this to be a good example of building a LaunchDaemon
听起来您已经知道如何使用Core Telephony框架的未记录功能来获得新呼叫的通知。这将是你的守护进程的责任。为了完整性,see this answer或this other answer了解守护程序如何使用达尔文通知侦听呼叫。
当拦截电话时,您的守护程序可以与您的服务器联系。
然后,您可以使用something like this创建一个简单的弹出窗口:
CFOptionFlags responseFlags = 0;
CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL,
CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"),
NULL, NULL, &responseFlags);
这是一些Apple docs on CFUserNotifications
您可能需要与 CoreFoundation 框架相关联,并且可能需要include this header项目中的{{3}},以便CFUserNotificationDisplayAlert()
可用。
但是,这应该会为您提供动态调用数据的弹出窗口。