管理显示通话记录?
如果我从任务管理器中滑动应用程序,那么它会丢失呼叫,这表明它可能大概是使用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,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)
解决方法@H_404_19@
这是我从Navita TEM拆卸中找到的,它的资源.
应用程序使用两种背景模式 – 位置和音频.您可以在Info.plist文件中看到它.当您启用电话记录应用程序也将启用“警报”和“实时”开关.当“警报”启用应用程序无限循环在没有声音的背景“bg-sound.mp3”文件中时,它只是沉默.因为它不使用这样的黑客How to get a call event using CTCallCenter:setCallEventHandler: that occurred while the app was suspended?.这是类似的位置使用的技巧,以保持应用程序在后台运行并接收电话活动.不知怎的,这并没有被AppStore拒绝.
应用程序使用两种背景模式 – 位置和音频.您可以在Info.plist文件中看到它.当您启用电话记录应用程序也将启用“警报”和“实时”开关.当“警报”启用应用程序无限循环在没有声音的背景“bg-sound.mp3”文件中时,它只是沉默.因为它不使用这样的黑客How to get a call event using CTCallCenter:setCallEventHandler: that occurred while the app was suspended?.这是类似的位置使用的技巧,以保持应用程序在后台运行并接收电话活动.不知怎的,这并没有被AppStore拒绝.