バックグラウンドで位置情報を取得してファイルに書き込み

位置情報を取得して表示 の続き

 

Startボタン、Stopボタンを追加して、処理を追加。

  // Startボタンタップ時

  @IBAction func tapStart(_ sender: Any) {

    locationManager.startUpdatingLocation()

  }

  

  // Stopボタンタップ時

  @IBAction func tapStop(_ sender: Any) {

    locationManager.stopUpdatingLocation()

  }

バックグラウンドで位置情報を取得する(CoreLocation::CLLocationManager) - Qiita

 

小さい値を設定すると、一箇所にとどまっている時にも、位置情報が通知され続けます。

動作確認用に1(m)を設定。実際に使う時は100(m)に設定。

    locationManager.distanceFilter = 1  //1m移動したら位置情報を更新する

iOS(CoreLocation) で位置情報の移動ルートをなるべく綺麗に記録する5つの方法(+おまけ) - Qiita

 

    // バックグランドでも位置情報を取得

    locationManager.allowsBackgroundLocationUpdates = true

iOS(CoreLocation) で位置情報の移動ルートをなるべく綺麗に記録する5つの方法(+おまけ) - Qiita

 

プロジェクト設定から、BackgroundModesをON、Location updatesにチェックを入れる。

CoreLocationを使ってバックグラウンドで位置情報を取得する - shobylogy

f:id:fedora9:20200426095651p:plain

 

distanceFilter

CLLocationManager - iPhoneアプリ開発の虎の巻

 

Simulatorで、Features - Location - Freeway Driveを選択すると、車の移動をシミュレート

iOS Simulator での現在位置の設定をすると捗る - Qiita

f:id:fedora9:20200426114959p:plain

 

実機で、アプリを最小化、iPhoneの画面を消しても位置情報を取得する。

アプリの画面を閉じると、位置情報は取得しない。