手腕向下,屏幕关闭后,似乎无法在WatchOS上获取实时加速度计数据。从Apple CMTotionManager获取数据将在几秒钟之后停止,以便进行Apple的电池维护。
您可以在后台查询来自HKWorkoutSession的数据,例如:步数,卡路里,心跳率,但它无法查询Accelerometer数据或CMDeviceMotion数据。
我谷歌很多,我用这段代码测试 https://developer.apple.com/videos/play/wwdc2016/713/
由于屏幕关闭问题,它不准确。屏幕关闭时,它不会在XCode中打印CMDeviceMotion数据。
有人说MSensorRecorder可能有效,但延迟时间为3秒。
有办法解决这个问题吗?
答案 0 :(得分:2)
当屏幕关闭时,您的应用程序将被暂停。所以,你的问题不是"当屏幕关闭时,CMMotionManager不提供数据"但是"我的应用程序在屏幕关闭时没有运行"。
作为一种解决方法,您可以开始锻炼:锻炼处于活动状态时,您的应用程序将在后台运行,您可以继续以与现在相同的方式从CMMotionManager请求数据。但要小心:app在后台运行中运行时不能使用超过15%的CPU,否则会被看门狗杀死。
观看此WWDC视频,了解有关锻炼和背景模式的更多详情:Building Great Workout Apps,Keeping Your Watch App Up to Date, Architecting for Performance on watchOS 3