Navita TEM应用程序如何获取通话记录信息?

Navita https://itunes.apple.com/us/app/navita-tem-personal/id590228620?mt=8如何设法显示通话记录?

如果我将应用程序从任务管理器中划掉,那么它会错过这些调用,这表明它必须使用CTCallCenter的callEventHandler,并且通过保存响应callEventHandler回调的时间/持续时间来创建自己的通话记录。

但是,如果是这样的话,那么它在后台如何设法做到这一点? 我的印象是callEventHandler只能在前台使用,而不能在后台使用?

该应用程序正在使用位置服务,但即使禁用了该功能,它仍能够获取有关通话的信息​​(只要该应用程序未被暂停)。 我虽然可能使用后台位置更新来保持自己准备接收callEventHandler回调,但显然不是。

Navita应用程序还可以显示通话时间和通话时间。

奖励将被授予一个答案,其中包含足够的,准确的和详细的信息,使我能够模拟Navita应用程序的行为,具体而言,我必须能够编写一个应用程序,可以获取发生的电话的时间和持续时间而应用程序不在前台,而设备的位置服务已关闭,并且应用程序在后台运行后的时间超过了使用beginBackgroundTaskWithExpirationHandler授予的〜3分钟时间:

   Here is what I observe with the Navita app that I want to be able to reproduce:

1) Run app
2) Task away from app
3) Go to device settings, privacy, and turn off Location Services.
4) Go to device settings, privacy, background app refresh and turn off for the app
5) Wait > 10 minutes to make sure the app is not still in the background as a consequence of using beginBackgroundTaskWithExpirationHandler:
6) Call the device from another phone, answer the phone call, then hang up.
7) Launch the app again and display the call time and duration

(这是iOS7和unjailbroken)


以下是我从Navita TEM反汇编中找到的资源。

应用程序使用两种背景模式 - 位置和音频。 你可以在Info.plist文件中看到它。 当您启用电话呼叫记录应用程序时,也将启用“警报”和“实时”开关。 当“警报”启用的应用程序无限循环的背景“bg-sound.mp3”文件没有声音,它只是沉默。 因为它不使用像这样的黑客如何使用CTCallCenter获取呼叫事件:setCallEventHandler:在应用程序被暂停时发生的事件? 。 这与使用位置类似的技巧,以保持应用程序在后台运行并接收电话事件。 不知何故,这并未被AppStore拒绝。


如果您在应用程序处于后台时观察呼叫中心,则会在应用程序返回前台时收到一组更新。 这组数据可能并不像应用程序主要位于前景那样准确,但它确实包含了相当多的信息。

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

上一篇: How does the Navita TEM app get call log information?

下一篇: Invoking app in iOS after every phone call ends