アプリがバックグラウンドにあるときに緯度と経度をサーバーに送信する

サント

緯度と経度を取得するための適切な解決策が見つからなかった後でも、私は非常に多くのリンクを通過しました。

iOSのバックグラウンドロケーションの定期的な更新

「ロケーション」バックグラウンドモードを備えたiOSの長時間実行バックグラウンドタイマー

いくつかのリンクやフォーラムから試しましたが、3分間しか機能せず、アプリがユーザーの場所をまったく更新していません。

- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.


//create new uiBackgroundTask
__block UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

//and create new timer with async call:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

    [locationManager startUpdatingLocation];

    NSTimer* t = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(startTrackingBg) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode];
    [[NSRunLoop currentRunLoop] run];
});

}
 -(void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
//  store data
CLLocation *newLocation = [locations lastObject];


//tell the centralManager that you want to deferred this updatedLocation
if (_isBackgroundMode && !_deferringUpdates)
{
    _deferringUpdates = YES;
    [locationManager allowDeferredLocationUpdatesUntilTraveled:CLLocationDistanceMax timeout:10];
}
}
サント

OK。

3日間苦労した後、3分後でもアプリがバックグラウンドにあるときに緯度と経度を送信するために働いています。

私は自分のアプリをチェックし、バックグラウンドで1時間以上latlongを継続的に送信しました。

それは少なくとも誰かを助けることができます。

まず、pListに以下の2つのキーを追加してください。

 1.NSLocationAlwaysUsageDescription
 2.NSLocationWhenInUseUsageDescription

どちらも文字列であり、任意の値を指定できます。

次に、バックグラウンドフェッチをオンにして、プロジェクトセクションの機能で場所の更新を確認してください。

次に、Corelocationフレームワークをインポートし、これを以下のコードに追加します。

locationManagerはグローバル変数です。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
 //create CLLocationManager variable
locationManager = [[CLLocationManager alloc] init];
//set delegate
locationManager.delegate = self;

app = [UIApplication sharedApplication];
// This is the most important property to set for the manager. It ultimately determines how the manager will
// attempt to acquire location and thus, the amount of power that will be consumed.

if ([locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
    [locationManager setAllowsBackgroundLocationUpdates:YES];
}
locationManager.desiredAccuracy = 45;
locationManager.distanceFilter = 100;
// Once configured, the location manager must be "started".
[locationManager startUpdatingLocation];
}

 - (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

[locationManager stopUpdatingLocation];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
locationManager.pausesLocationUpdatesAutomatically = NO;
locationManager.activityType = CLActivityTypeAutomotiveNavigation;
[locationManager startUpdatingLocation];
 }

 - (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.


[locationManager stopUpdatingLocation];

__block UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    bgTask = UIBackgroundTaskInvalid;
}];

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10.0
                                              target:self
                                            selector:@selector(startTrackingBg)
                                            userInfo:nil
                                             repeats:YES];


 }

-(void)startTrackingBg {

[locationManager startUpdatingLocation];
 NSLog(@"App is running in background");
}
 //starts automatically with locationManager
  -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
latitude=newLocation.coordinate.latitude;
longitude=newLocation.coordinate.longitude;
NSLog(@"Location: %f, %f",newLocation.coordinate.longitude, newLocation.coordinate.latitude);
 }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アプリがReactNativeのバックグラウンドである場合にサービスの緯度と経度を更新する方法

分類Dev

Android アプリからサーバーに緯度と経度を送信する

分類Dev

iOS7でアプリがバックグラウンドで実行されているときにサーバーにデータを送信する

分類Dev

Agmgoogleマップ-緯度と経度をHTMLにバインドする方法

分類Dev

アプリがバックグラウンドにあるときのユニバーサルリンク

分類Dev

アプリがバックグラウンドにあるときにリモート通知のループでサウンドを再生する

分類Dev

角度のあるグーグルマップで緯度と経度に双方向でバインドすることは可能ですか?

分類Dev

位置情報(緯度/経度)を含む写真をサーバーにアップロードする

分類Dev

アプリがバックグラウンドになったときにMediaPlayerサービスを停止する

分類Dev

アプリがバックグラウンドになったときにサービスを停止する方法

分類Dev

緯度と経度が円の中にあるかどうかを確認するグーグルマップ

分類Dev

アプリがバックグラウンドにあるときにバックグラウンドサービスからポップアップするアラートメッセージを表示する方法

分類Dev

アプリがバックグラウンドになっているときにWebサーバーからiOSデバイスに通知をプルする

分類Dev

アプリケーションがバックグラウンドにあるときにサービスを停止する

分類Dev

アプリがバックグラウンドにあるときにブロードキャストレシーバーからサービスにインテントを送信する際のNullPointerException

分類Dev

アプリがバックグラウンドにあるときにローカル通知を受け取る

分類Dev

アプリがバックグラウンドにあるときに何かをするためのサービスが必要ですか?

分類Dev

Android-アプリがバックグラウンドにあるときにリサイクラービューのサイズが変更されます

分類Dev

iOSアプリケーションがフォアグラウンドにあるときにバックグラウンドで操作を実行する方法

分類Dev

Android-アプリがバックグラウンドにあるときにハードウェアキープレス(PTTボタン)を傍受する

分類Dev

アプリがバックグラウンドにあるときにSMSを受信するAndroidサービス

分類Dev

マーカーを配置する方法/アンドロイドグーグルマップv2に経度と緯度をプロットする

分類Dev

iOSアプリがバックグラウンドにあるときにPOST-APIを使用して画像をアップロードする

分類Dev

iOSアプリがバックグラウンドにあるときにPOST-APIを使用して画像をアップロードする

分類Dev

バックグラウンドにあるときにアプリケーションの状態をフォアグラウンドに変更する方法

分類Dev

Flutter:アプリがバックグラウンドにあるときにパスプロバイダーを使用する

分類Dev

GoogleApiClient:サービスがバックグラウンドにあるときにステータスバーのGPSアイコンを非表示にする

分類Dev

アプリがバックグラウンドにあるときにBloothtoothLEを使用する

分類Dev

アプリがバックグラウンドにあるときに位置情報の更新を取得する

Related 関連記事

  1. 1

    アプリがReactNativeのバックグラウンドである場合にサービスの緯度と経度を更新する方法

  2. 2

    Android アプリからサーバーに緯度と経度を送信する

  3. 3

    iOS7でアプリがバックグラウンドで実行されているときにサーバーにデータを送信する

  4. 4

    Agmgoogleマップ-緯度と経度をHTMLにバインドする方法

  5. 5

    アプリがバックグラウンドにあるときのユニバーサルリンク

  6. 6

    アプリがバックグラウンドにあるときにリモート通知のループでサウンドを再生する

  7. 7

    角度のあるグーグルマップで緯度と経度に双方向でバインドすることは可能ですか?

  8. 8

    位置情報(緯度/経度)を含む写真をサーバーにアップロードする

  9. 9

    アプリがバックグラウンドになったときにMediaPlayerサービスを停止する

  10. 10

    アプリがバックグラウンドになったときにサービスを停止する方法

  11. 11

    緯度と経度が円の中にあるかどうかを確認するグーグルマップ

  12. 12

    アプリがバックグラウンドにあるときにバックグラウンドサービスからポップアップするアラートメッセージを表示する方法

  13. 13

    アプリがバックグラウンドになっているときにWebサーバーからiOSデバイスに通知をプルする

  14. 14

    アプリケーションがバックグラウンドにあるときにサービスを停止する

  15. 15

    アプリがバックグラウンドにあるときにブロードキャストレシーバーからサービスにインテントを送信する際のNullPointerException

  16. 16

    アプリがバックグラウンドにあるときにローカル通知を受け取る

  17. 17

    アプリがバックグラウンドにあるときに何かをするためのサービスが必要ですか?

  18. 18

    Android-アプリがバックグラウンドにあるときにリサイクラービューのサイズが変更されます

  19. 19

    iOSアプリケーションがフォアグラウンドにあるときにバックグラウンドで操作を実行する方法

  20. 20

    Android-アプリがバックグラウンドにあるときにハードウェアキープレス(PTTボタン)を傍受する

  21. 21

    アプリがバックグラウンドにあるときにSMSを受信するAndroidサービス

  22. 22

    マーカーを配置する方法/アンドロイドグーグルマップv2に経度と緯度をプロットする

  23. 23

    iOSアプリがバックグラウンドにあるときにPOST-APIを使用して画像をアップロードする

  24. 24

    iOSアプリがバックグラウンドにあるときにPOST-APIを使用して画像をアップロードする

  25. 25

    バックグラウンドにあるときにアプリケーションの状態をフォアグラウンドに変更する方法

  26. 26

    Flutter:アプリがバックグラウンドにあるときにパスプロバイダーを使用する

  27. 27

    GoogleApiClient:サービスがバックグラウンドにあるときにステータスバーのGPSアイコンを非表示にする

  28. 28

    アプリがバックグラウンドにあるときにBloothtoothLEを使用する

  29. 29

    アプリがバックグラウンドにあるときに位置情報の更新を取得する

ホットタグ

アーカイブ