iOS - 后台加速计显示位置服务弹出窗口,但我们不需要位置服务

时间:2013-09-25 11:12:32

标签: iphone ios objective-c core-location core-motion

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

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

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

[locationManager startUpdatingLocation] 
-applicationWillResignActive:

中的

问题是,当我致电startUpdatingLocation时,会弹出一个带有文字Turn On Location Services to Allow "app" to Determine Your Location的窗口。

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

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

1 个答案:

答案 0 :(得分:1)

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