加速度计没有被调用

时间:2012-11-15 03:58:48

标签: gps accelerometer restart cmmotionmanager

我正在做一个有点奇怪的实现。我的应用程序不断使用GPS数据并使用我必须完成的任务。此外,我已经实现了加速度计的功能,以检测设备是静止还是移动。当设备静止时,我会通过拨打stopUpdatingLocation来停止GPS提取,当设备移动时,我会拨打startUpdatingLocation。这在前景和后台都可以正常工作。

但是我想在重启设备时在后台启动我的应用程序。这很好用。我添加了" voip"密钥在plist和applicationDidFinishLaunch中我已经启动了GPS获取代码并启动了加速度计。

但是我发现一旦设备保持静止(stopUpdatingLocation),加速度计就不会被调用。因为我无法检测到设备运动。加速度计回调没有被调用。以下是我使用的代码示例:

    mMotionManager = [[CMMotionManager alloc] init];
    if (mMotionManager.accelerometerAvailable) {
        mMotionManager.accelerometerUpdateInterval = 1.0/10.0;
       mOperationQueue = [[NSOperationQueue alloc] init];
        [mMotionManager startAccelerometerUpdatesToQueue:mOperationQueue withHandler:^(CMAccelerometerData *data, NSError *error){
            dispatch_async(dispatch_get_main_queue(), ^{
                //[self onDeviceMotion];
                [mAccelerometerReadings addObject:  data];
                [self updateViewsWithFilteredAcceleration:data.acceleration];
            });
        }];

有人可以帮我解决这个问题吗?有可能吗?

0 个答案:

没有答案