当app在后台时,是否可以获得陀螺仪数据更新

时间:2015-05-11 08:01:21

标签: ios core-motion

我的应用程序使用蓝牙配件,因此我打开相应的背景模式。是否可以在后台连续接收CoreMotion陀螺仪数据?

该方案是在应用程序处于后台时扫描并连接BLE外围设备。并在应用程序处于后台时检测手机旋转,并在检测到某些动作时向BLE设备发送内容。

陀螺仪数据更新使用我创建的NSOperationQueue。它会在加载第一个视图后立即启动。

当我在前台用app测试它时,BLE外围设备连接,然后放入后台。陀螺仪数据更新很快就会停止。当我走出BLE范围时,陀螺仪数据再次开始,然后很快停止。我走进BLE外围范围,陀螺仪数据再次出现。 (我正在带着iPhone连接到笔记本电脑,XCode正在运行并直接从日志中看到它。)

有没有办法可以随时可靠地获取陀螺仪数据,即使应用程序在后台?

2 个答案:

答案 0 :(得分:1)

查看this question

看起来如果没有背景音频或GPS跟踪等其他背景活动,您无法从CoreMotion获取数据。 根据我的经验,这两种模式都允许您在后台执行代码。

修改
使用BLE时,请务必不时通过蓝牙发送数据,以防止iOS暂停您的应用。

答案 1 :(得分:0)

确认并添加到已接受的答案中(在 iOS 上搜索背景动作更新将我带到这里)。是的,需要运行其他一些后台活动才能使 CoreMotion 更新工作。我已经创建了 a simple iOS app,其中包含探索后台 CoreLocation 和 CoreMotion 更新所需的样板。 AppDelegateViewController 在某种程度上被记录在案。在运行 iOS 14.2 的 XS Max 上测试。 希望不言自明,也许对其他开始研究相同领域的人有用。