gpt4 book ai didi

iOS PjSip - 后台工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:37 26 4
gpt4 key购买 nike

最近我必须使用 voip 实现后台工作应用程序。为此,我使用 PJSip。现在我已经完成了在应用程序运行时完美运行的注册和处理调用。

当应用进入后台时,前 10 分钟工作正常 -> 新的来电被捕获并作为本地通知发送 - 所以这很好。 10 分钟后,sip 停止工作,来电也没有到达。

你能帮我解决这个问题吗?

我检查了“免费工作 - VoiP”我已经在 siphon2 示例应用程序的 pjsip 中完成了 keep alive。

我还有:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[PjSipService service] setIsInBackground:YES];
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
int KEEP_ALIVE_INTERVAL = 600;

[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
NSLog(@"startingKeepAliveTimeout1");

[application setKeepAliveTimeout:KEEP_ALIVE_INTERVAL handler: ^{
NSLog(@"startingKeepAliveTimeout2");

[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
}];


__block UIBackgroundTaskIdentifier bgTask;

bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];


dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//[self deregis];
[application endBackgroundTask: bgTask]; //End the task so the system knows that you are done with what you need to perform
bgTask = UIBackgroundTaskInvalid; //Invalidate the background_task

NSLog(@"\n\nRunning in the background!\n\n");
});
}

“keepAlive”函数是空的。我读过这个函数 keepAlive 就足够了——但是如果没有后台任务,它甚至不能工作 10 分钟。

应用程序必须在 iOS7 和 iOS6 中运行

最佳答案

应用程序在后台运行,在 IOS 中使用 setKeepAliveTimeout 方法执行。但从以后的版本开始,setKeepAliveTimeout 方法已被弃用。

您想使用远程通知来接听来电。特别是针对VOIP来电,苹果推出了Callkit框架。当您的 VOIP 应用程序处于后台状态时,请遵循该框架来接听来电。

https://www.raywenderlich.com/150015/callkit-tutorial-ios

关于iOS PjSip - 后台工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23364782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com