步数计在iOS 13后台模式下无法工作

3
我有一个应用程序,使用CoreMotion CMPedometer在活动状态和后台模式下计步。在ios 12.4.1上运行良好。但是在ios 13中,后台模式下步数计算不起作用,但在活动状态下可以正常工作。我没有收到任何错误,并且在活动状态下,我会得到“在后台走的步数”。我拥有NSLocationsWhenInUseUsageDescription权限。事实上,我没有收到通知(打印在控制台上)表明我正在移动。请帮忙解决此问题。

你在过去的两个月里找到了什么吗?我遇到了相同的问题。 - Guven
同样的问题,使用BGAppRefreshTask也无法解决。 - Ataman
1个回答

1
我稍微调查了一下,发现iOS 13更新了后台处理逻辑。当应用程序进入后台时,我发现我的步数跟踪(CMPedometer)任务几乎立即被终止。
您最有可能在后台使用application(_:performFetchWithCompletionHandler:)来跟踪用户的步数和运动。在iOS 13 SDK中,这已经过时了,您需要使用BGAppRefreshTask来实现相同的功能。
更多详细信息请参见苹果文档此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接