我想在应用暂停(不停止)时检测运动活动。 我使用了这段代码,并且如果用户使用应用程序,它将起作用:
let isActivityAvailable = CMMotionActivityManager.isActivityAvailable()
if isActivityAvailable {
CMMotionActivityManager().startActivityUpdates(to: OperationQueue.main) { (motionActivity) in
if (motionActivity!.confidence.rawValue > 0) {
if (motionActivity?.walking)! {
print("User is walking")
}
}
}
}
答案 0 :(得分:2)
应用可以处于几种状态:
仅前两个状态将接收运动更新。引用文档:
...当您的应用暂停时,更新不会被交付。
除非用户要求提供背景时间,否则应用程序在用户换出或锁定手机时仅会停留在状态2(在后台运行)几秒钟。除了少数类型的应用程序(例如音乐播放器和逐行导航应用程序)外,背景时间被限制为很短的间隔(3分钟?)。
由于这些原因,简短的回答是“否”,因为暂停已暂停,所以您的应用“暂停”时您将无法接收运动更新。
您可以将自己的应用(或也许用于企业内部使用)设置为音乐播放器,并使其连续接收动作更新,但此类应用将在应用商店审查中被拒绝。