1

新しい位置データが iOS 6 に到着すると、私のアプリは終了後に自動的にウェイクアップしますが、iOS 7 には到着しません。

[[UIApplication sharedApplication] setBackgroundRefreshStatus]ですUIBackgroundRefreshStatusAvailable

値「場所」で設定しますInfo.plistUIBackgroundModes

CLLocationManagerこのように始めました:

- (void) start {
  if (locationManaher == nil) {
    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate        = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
  }

  [locationManager startMonitoringSignificantLocationChanges]
}

- (void) locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

  CLLocationCoordinate2D newCoordinate = newLocation.coordinate;
  CLLocationCoordinate2D oldCoordinate = oldLocation.coordinate;

  if (newCoordinate.latitude == oldCoordinate.latitude && newCoordinate.longitude == oldCoordinate.longitude) return;

  float distance = [newLocation distanceFromLocation:oldLocation];

  if (distance < distanceFilter) {
    //send to server 
  }
}

どこに問題があるか知っている人はいますか?

4

2 に答える 2

4

これは 7.0 の iOS 機能です。ユーザーがアプリを手動で (ホーム ボタンをダブルクリックして) 閉じた場合、場所の変更時にアプリケーションがトリガーされません。

于 2013-11-04T08:43:42.947 に答える
1

このlocationManager:didUpdateToLocation:fromLocation:メソッドは非推奨であり、有効な iOS 6 です。今すぐ使用する必要がありますlocationManager:didUpdateLocations:

于 2013-09-27T11:27:40.163 に答える