2

我们的应用程序想在后台访问加速度计数据。一种可能的实现方法是使用 Core Motion 来读取加速度计 -

CLLocationManager* locationManager;
CMMotionManager* motionManager;
...
[motionManager startAccelerometerUpdatesToQueue: ... withHandler: ...]

在前台工作正常,但我发现在后台接收更新的唯一方法是将应用程序设置为允许在后台使用位置,然后调用

[locationManager startUpdatingLocation] 

-applicationWillResignActive:

问题是,当我调用时startUpdatingLocation会弹出一个带有 text 的窗口Turn On Location Services to Allow "app" to Determine Your Location

但是,当然,无论是否启用位置服务,我都会收到加速度计读数,但弹出窗口很烦人,可能会让用户感到困惑。

在后台获取加速度计数据是否与尝试接收位置更新有关?

4

1 回答 1

1

您可以startAccelerometerUpdatesToQueue在后台使用,这是您唯一需要满足的条件 — 使用任何后台模式让您的应用程序在后台运行(位置更新(您的情况)、播放、VoIP 或 BT4 中央)。

于 2013-11-19T09:58:34.863 回答