transistorsoft / react-native-background-geolocation

Sophisticated, battery-conscious background-geolocation with motion-detection
http://shop.transistorsoft.com/pages/react-native-background-geolocation
MIT License
2.64k stars 425 forks source link

Enter/exit geofence is not detected in trackingMode Geofences only (iOS) #2113

Open jakub-oone opened 2 months ago

jakub-oone commented 2 months ago

Hello,

I am using BGGeolocation demo app. In Geofences only tracking mode on iOS - entering geofence won't even trigger in the foreground. Please see attachments. There is no green arrow on map. It is working on Android, but not on iOS. What I have noticed is that "IS MOVING" parameter is always false in that geofence only mode. The configuration parameters are set to default values.

Please help me figure out what I'm missing that polygon geofence entry/exit was not detected in the BGGeolocation demo app?

We want to use geofence only mode in our SmartGuide app to save battery drain when app is on background.

Thank you.

Jakub SmartGuide

Screenshot 2024-08-14 at 13 14 58

https://tracker.transistorsoft.com/SmartGuide

IMG_5078

background-geolocation.log.gz

christocracy commented 2 months ago

The issue template is required, not optional:

Your Environment

Expected Behavior

Actual Behavior

Steps to Reproduce

1. 2. 3. 4.

Context

Debug logs

Logs ``` PASTE_YOUR_LOGS_HERE ```
jakub-oone commented 2 months ago

Your Environment

Plugin version: 4.16.0 Platform: iOS OS version: 17.6.1 Device manufacturer / model: iPhone 12 Pro React Native version (react-native -v): 0.73.0 Plugin config

const state:State = await BackgroundGeolocation.ready({
      // Debug
      reset: false,
      debug: true,
      logLevel: BackgroundGeolocation.LOG_LEVEL_VERBOSE,
      transistorAuthorizationToken: token,
      // Geolocation
      desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_NAVIGATION,
      distanceFilter: 10,
      stopTimeout: 5,
      // Permissions
      locationAuthorizationRequest: 'Always',
      backgroundPermissionRationale: {
        title: "Allow {applicationName} to access this device's location even when closed or not in use.",
        message: "This app collects location data to enable recording your trips to work and calculate distance-travelled.",
        positiveAction: 'Change to "{backgroundPermissionOptionLabel}"',
        negativeAction: 'Cancel'
      },
      // HTTP & Persistence
      autoSync: true,
      maxDaysToPersist: 14,
      // Application
      stopOnTerminate: false,
      startOnBoot: true,
      enableHeadless: true
    });

Expected Behavior

Polygon geofence entry/exit is detected in the BGGeolocation demo app.

Actual Behavior

Polygon geofence entry/exit is not detected in the BGGeolocation demo app.

Steps to Reproduce

  1. run BGGeolocation app - build from https://github.com/transistorsoft/rn-background-geolocation-demo
  2. Advanced App
  3. switch on demo app
  4. Long-press map to add polygone geofences
  5. Walk into geofence polygon zone
  6. no log/no green arrow on map

Debug logs

2024-08-14 11:53:31.341 đŸ”ĩ-[TSLocationManager onHeartbeat] Heartbeat

2024-08-14 11:53:31.347 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:53:31.347 ℹī¸-[TSDBLogger db_delete] maxAge: 604800

2024-08-14 11:53:31.365 ✅-[BackgroundTaskManager createBackgroundTask] 20

2024-08-14 11:53:31.366 đŸ”ĩ-[TSLocationManager getCurrentPosition:]

2024-08-14 11:53:31.366 🎾-[LocationManager startUpdatingLocation] ON

2024-08-14 11:53:31.454 đŸ”ĩ-[TSLocationManager onResume:] enabled? 1

2024-08-14 11:53:31.454 ℹī¸-[LocationDAO purge:] 1

2024-08-14 11:53:31.461 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:29 Central European Summer Time

2024-08-14 11:53:31.461 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 1 of 2 (2368 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.462 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:53:31.462 🔴-[LocationManager stopUpdatingLocation] OFF

2024-08-14 11:53:31.462 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 2 of 2 (70 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.462 ℹī¸-[PolygonGeofencingService setLocation:] Already updating location

2024-08-14 11:53:31.463 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:53:31.463 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 2 / 2 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.466 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:53:31.480 đŸ”ĩ-[TSLocationManager calculateMedianLocationAccuracy:] Median location accuracy: 35.0

2024-08-14 11:53:31.480 ℹī¸-[PolygonGeofencingService setLocation:] Already updating location

2024-08-14 11:53:31.480 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:53:31.480 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 2 / 2 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.488 ✅-[TSLocationManager persistLocation:]_block_invoke INSERT: 6F548517-59D0-4695-BD5B-90294ECF46EC

2024-08-14 11:53:31.503 ℹī¸+[LocationAuthorization run:onCancel:] status: 4

2024-08-14 11:53:31.503 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.504 ✅-[BackgroundTaskManager createBackgroundTask] 21

2024-08-14 11:53:31.505 ✅-[TSHttpService schedulePost] LOCKED: 6F548517-59D0-4695-BD5B-90294ECF46EC

2024-08-14 11:53:31.511 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 20 OF ( 20, 21 )

2024-08-14 11:53:31.511 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:31.511 ⚠ī¸-[TSHttpService flush:] Busy with previous request

2024-08-14 11:53:32.156 đŸ”ĩ-[HttpResponse handleResponse] Response: 200

2024-08-14 11:53:32.158 ✅-[TSHttpService post:]_block_invoke DESTROY: 6F548517-59D0-4695-BD5B-90294ECF46EC

2024-08-14 11:53:32.158 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:32.158 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 21 OF ( 21 )

2024-08-14 11:53:34.462 ✅-[BackgroundTaskManager createBackgroundTask] 24

2024-08-14 11:53:34.462 đŸ”ĩ-[TSLocationManager onSuspend:] enabled? 1)

2024-08-14 11:53:34.477 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:53:36.193 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.144 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.427 đŸ”ĩ-[LocationManager locationManager:didChangeAuthorizationStatus:] 3

2024-08-14 11:53:37.429 đŸ”ĩ-[BackgroundTaskManager locationManager:didChangeAuthorizationStatus:] 3

2024-08-14 11:53:37.429 đŸ”ĩ-[LocationManager locationManager:didChangeAuthorizationStatus:] 3

2024-08-14 11:53:37.429 đŸ”ĩ-[PolygonGeofencingService locationManager:didChangeAuthorizationStatus:] 3

2024-08-14 11:53:37.432 đŸ”ĩ-[LocationManager locationManager:didChangeAuthorizationStatus:] 3

2024-08-14 11:53:37.434 ℹī¸-[TSConfig persist]

2024-08-14 11:53:37.437 đŸ”ĩ-[TSLocationManager locationManager:didChangeAuthorizationStatus:] status 3

2024-08-14 11:53:37.442 đŸ”ĩ-[TSLocationManager setPace:] 0

2024-08-14 11:53:37.451 🎾-[TSLocationManager startUpdatingLocation] Location-services: ON

2024-08-14 11:53:37.455 🎾-[TSLocationManager startUpdatingLocation] Location-services: ON

2024-08-14 11:53:37.489 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:53:37.491 ⚠ī¸-[BackgroundTaskManager stopBackgroundTask:]_block_invoke Failed to find backgroundTask: 10. Ignoring.

2024-08-14 11:53:37.506 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:53:37.506 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:32 Central European Summer Time

2024-08-14 11:53:37.506 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager locationManager:didUpdateLocations:] Enabled: 1 | isMoving: 0 | df: -1.0m | age: 5480 ms ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.506 ℹī¸-[TSLocationManager locationManager:didUpdateLocations:] Received stale motionchange location. Retrying...

2024-08-14 11:53:37.506 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:37 Central European Summer Time

2024-08-14 11:53:37.506 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager locationManager:didUpdateLocations:] Enabled: 1 | isMoving: 0 | df: -1.0m | age: 48 ms ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.506 ✅-[TSLocationManager locationManager:didUpdateLocations:] Acquired motionchange position: <+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:37 Central European Summer Time

2024-08-14 11:53:37.507 đŸ”ĩ-[TSLocationManager startMonitoringStationaryRegion:radius:] Radius: 1000

2024-08-14 11:53:37.508 🔴-[TSLocationManager stopUpdatingLocation]

2024-08-14 11:53:37.508 đŸ”ĩ-[TSLocationManager calculateMedianLocationAccuracy:] Median location accuracy: 35.0

2024-08-14 11:53:37.508 ℹī¸-[PolygonGeofencingService setLocation:] Already updating location

2024-08-14 11:53:37.510 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:37 Central European Summer Time

2024-08-14 11:53:37.510 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 2 / 2 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.522 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:37 Central European Summer Time

2024-08-14 11:53:37.522 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager locationManager:didUpdateLocations:] Enabled: 1 | isMoving: 0 | df: 10.0m | age: 64 ms ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.522 ℹī¸-[TSLocationManager locationManager:didUpdateLocations:] Δt since last: 0.0s

2024-08-14 11:53:37.522 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:37 Central European Summer Time

2024-08-14 11:53:37.522 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager locationManager:didUpdateLocations:] Enabled: 1 | isMoving: 0 | df: 10.0m | age: 64 ms ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:37.522 ℹī¸-[TSLocationManager locationManager:didUpdateLocations:] Δt since last: 0.0s

2024-08-14 11:53:39.344 đŸ”ĩ-[BackgroundTaskManager onResume:] Current preventSuspend tasks: 1

2024-08-14 11:53:39.344 đŸ”ĩ-[TSLocationManager onResume:] enabled? 1

2024-08-14 11:53:39.345 ℹī¸-[LocationDAO purge:] 1

2024-08-14 11:53:39.348 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:53:39.349 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:39.350 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:41.285 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:41.502 ⚠ī¸-[LocationManager onTimeout:] Using last-known location <+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:53:41.503 ✅-[LocationManager onTimeout:] Returning best available location sample

2024-08-14 11:53:41.503 ℹī¸-[PolygonGeofencingService setLocation:] Already updating location

2024-08-14 11:53:41.504 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:53:41.504 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 2 / 2 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:54.334 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:55.923 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:53:58.470 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:01.975 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:04.530 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:05.158 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:12.793 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:15.341 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:19.803 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:22.662 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:27.115 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:32.525 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:39.366 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:54:40.482 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:44.941 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:47.803 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:50.836 ℹī¸-[TSGeofence initWithIdentifier:radius:latitude:longitude:notifyOnEntry:notifyOnExit:notifyOnDwell:loiteringDelay:extras:vertices:] Calculated polygon containing-geofence: 50.082354, 14.430077, radius: 150.0

2024-08-14 11:54:50.847 ℹī¸-[GeofenceDAO doInsert:geofence:] Polygon_A

2024-08-14 11:54:51.058 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:54:51.058 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 3 / 3 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:51.062 🎾-[TSGeofenceManager startMonitoringGeofence:] Polygon_A

2024-08-14 11:54:51.085 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager handleGeofenceEvent:action:] ENTER containing geofence of polygon: Polygon_A ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:51.085 🎾-[PolygonGeofencingService startMonitoring:] Polygon_A

2024-08-14 11:54:51.087 ℹī¸-[PolygonGeofencingService persistMonitoredPolygons] { "Polygon_A" = 0; }

2024-08-14 11:54:51.087 🎾-[PolygonGeofencingService startUpdatingLocation:]

2024-08-14 11:54:51.096 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081476, 14.430569, acy: 23.1m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:51.096 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:54:52.039 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081449, 14.430561, acy: 24.1m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:52.039 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:54:53.043 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081508, 14.430621, acy: 18.6m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:54:53.043 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:54:53.043 🔴-[PolygonGeofencingService stopUpdatingLocation]

2024-08-14 11:54:59.262 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:03.719 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:06.263 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:14.226 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:20.278 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:26.507 ℹī¸-[TSGeofence initWithIdentifier:radius:latitude:longitude:notifyOnEntry:notifyOnExit:notifyOnDwell:loiteringDelay:extras:vertices:] Calculated polygon containing-geofence: 50.083071, 14.429028, radius: 150.0

2024-08-14 11:55:26.516 ℹī¸-[GeofenceDAO doInsert:geofence:] Polygon_2

2024-08-14 11:55:26.726 📍<+50.08201737,+14.43063352> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:53:31 Central European Summer Time

2024-08-14 11:55:26.726 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:26.728 🎾-[TSGeofenceManager startMonitoringGeofence:] Polygon_2

2024-08-14 11:55:26.954 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:31.727 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:35.869 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:37.659 đŸ”ĩ-[BackgroundTaskManager startPreventSuspendTimer:] BG time remaining: 20 | Total tasks: 1

2024-08-14 11:55:37.659 đŸ”ĩ-[TSLocationManager onSuspend:] enabled? 1)

2024-08-14 11:55:37.670 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 11:55:37.778 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:41.598 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:44.782 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:45.417 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:47.743 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 20.123965)

2024-08-14 11:55:47.763 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:55:47.795 🎾-[TSGeofenceManager locationManager:didEnterRegion:] Polygon_2

2024-08-14 11:55:47.797 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager handleGeofenceEvent:action:] ENTER containing geofence of polygon: Polygon_2 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:47.797 🎾-[PolygonGeofencingService startMonitoring:] Polygon_2

2024-08-14 11:55:47.798 ℹī¸-[PolygonGeofencingService persistMonitoredPolygons] { "Polygon_2" = 0; "Polygon_A" = 0; }

2024-08-14 11:55:47.798 🎾-[PolygonGeofencingService startUpdatingLocation:]

2024-08-14 11:55:47.836 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081981, 14.430636, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:47.836 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:55:47.836 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 11:55:47.836 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081994, 14.430636, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:47.836 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:55:47.836 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 11:55:47.838 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081997, 14.430635, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:47.838 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:55:47.838 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 11:55:47.838 🔴-[PolygonGeofencingService stopUpdatingLocation]

2024-08-14 11:55:50.853 đŸ”ĩ-[BackgroundTaskManager startPreventSuspendTimer:] BG time remaining: 27 | Total tasks: 1

2024-08-14 11:55:52.535 đŸ”ĩ-[TSLocationManager onHeartbeat] Heartbeat

2024-08-14 11:55:52.538 ✅-[BackgroundTaskManager createBackgroundTask] 43

2024-08-14 11:55:52.539 đŸ”ĩ-[TSLocationManager getCurrentPosition:]

2024-08-14 11:55:52.539 🎾-[LocationManager startUpdatingLocation] ON

2024-08-14 11:55:52.566 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:55:52.567 📍<+50.08199690,+14.43063549> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:55:47 Central European Summer Time

2024-08-14 11:55:52.567 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 1 of 2 (4764 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.568 đŸ”ĩ-[LocationManager locationManager:didUpdateLocations:] bgTime remaining: 25

2024-08-14 11:55:52.569 📍<+50.08199690,+14.43063549> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:55:52 Central European Summer Time

2024-08-14 11:55:52.569 🔴-[LocationManager stopUpdatingLocation] OFF

2024-08-14 11:55:52.569 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 2 of 2 (24 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.571 đŸ”ĩ-[LocationManager locationManager:didUpdateLocations:] bgTime remaining: 25

2024-08-14 11:55:52.571 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081997, 14.430635, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.571 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:55:52.571 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 11:55:52.574 📍<+50.08199690,+14.43063549> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:55:52 Central European Summer Time

2024-08-14 11:55:52.574 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.577 đŸ”ĩ-[TSLocationManager calculateMedianLocationAccuracy:] Median location accuracy: 35.0

2024-08-14 11:55:52.577 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081997, 14.430635, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.578 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 11:55:52.578 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 11:55:52.578 📍<+50.08199690,+14.43063549> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 11:55:52 Central European Summer Time

2024-08-14 11:55:52.578 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.604 ✅-[TSLocationManager persistLocation:]_block_invoke INSERT: 1B27F49B-7ED1-4C6D-9907-BEFEFE7EE1E0

2024-08-14 11:55:52.604 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:52.605 ✅-[BackgroundTaskManager createBackgroundTask] 44

2024-08-14 11:55:52.610 ✅-[TSHttpService schedulePost] LOCKED: 1B27F49B-7ED1-4C6D-9907-BEFEFE7EE1E0

2024-08-14 11:55:52.651 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 43 OF ( 24, 43, 44 )

2024-08-14 11:55:53.054 đŸ”ĩ-[HttpResponse handleResponse] Response: 200

2024-08-14 11:55:53.065 ✅-[TSHttpService post:]_block_invoke DESTROY: 1B27F49B-7ED1-4C6D-9907-BEFEFE7EE1E0

2024-08-14 11:55:53.065 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 11:55:53.065 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 44 OF ( 24, 44 )

2024-08-14 11:56:07.952 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 9.997566)

2024-08-14 11:56:07.977 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:56:11.002 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 6.946899)

2024-08-14 11:56:11.020 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 11:56:13.918 ⚠ī¸-[BackgroundTaskManager createBackgroundTask]_block_invoke FORCE KILL BACKGROUND TASK: 24, remaining time: 4.031527

2024-08-14 11:56:13.918 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 24 OF ( 24 )

2024-08-14 12:05:18.454 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:05:18.454 ℹī¸-[TSDBLogger db_delete] maxAge: 604800

2024-08-14 12:05:18.487 đŸ”ĩ-[TSLocationManager onResume:] enabled? 1

2024-08-14 12:05:18.491 ℹī¸-[LocationDAO purge:] 1

2024-08-14 12:05:18.493 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:05:18.496 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 12:05:18.496 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:05:25.928 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:05:29.114 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:05:29.750 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:18.506 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:06:38.220 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:41.401 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:42.362 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:44.585 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:45.857 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:47.128 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:06:51.925 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:10.051 🔴-[TSGeofenceManager locationManager:didExitRegion:] Polygon_2

2024-08-14 12:07:10.051 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager handleGeofenceEvent:action:] EXIT containing geofence of polygon: Polygon_2 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:10.051 🔴-[PolygonGeofencingService stopMonitoring:] Polygon_2

2024-08-14 12:07:10.052 ℹī¸-[PolygonGeofencingService persistMonitoredPolygons] { "Polygon_A" = 0; }

2024-08-14 12:07:12.656 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:17.745 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:18.522 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:07:19.339 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:25.065 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:28.054 🎾-[TSGeofenceManager locationManager:didEnterRegion:] Polygon_2

2024-08-14 12:07:28.054 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager handleGeofenceEvent:action:] ENTER containing geofence of polygon: Polygon_2 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:28.054 🎾-[PolygonGeofencingService startMonitoring:] Polygon_2

2024-08-14 12:07:28.055 ℹī¸-[PolygonGeofencingService persistMonitoredPolygons] { "Polygon_2" = 0; "Polygon_A" = 0; }

2024-08-14 12:07:28.055 🎾-[PolygonGeofencingService startUpdatingLocation:]

2024-08-14 12:07:28.068 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081808, 14.430589, acy: 44.1m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:28.068 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:07:28.068 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:07:29.042 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081760, 14.430586, acy: 46.6m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:29.042 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:07:29.042 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:07:30.044 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081747, 14.430593, acy: 50.5m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:30.044 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:07:30.044 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:07:30.044 🔴-[PolygonGeofencingService stopUpdatingLocation]

2024-08-14 12:07:30.477 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:33.658 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:34.301 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:39.276 ℹī¸-[TSDBLogger db_delete] maxAge: 604800

2024-08-14 12:07:49.786 ✅-[BackgroundTaskManager createBackgroundTask] 47

2024-08-14 12:07:49.786 đŸ”ĩ-[TSLocationManager onSuspend:] enabled? 1)

2024-08-14 12:07:49.798 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:07:49.944 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:50.911 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:07:52.987 đŸ”ĩ-[BackgroundTaskManager startPreventSuspendTimer:] BG time remaining: 27 | Total tasks: 1

2024-08-14 12:07:54.086 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:08:10.091 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 9.910190)

2024-08-14 12:08:10.122 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 12:08:13.174 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 6.826696)

2024-08-14 12:08:13.195 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 12:08:15.094 ⚠ī¸-[BackgroundTaskManager createBackgroundTask]_block_invoke FORCE KILL BACKGROUND TASK: 47, remaining time: 4.906895

2024-08-14 12:08:15.095 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 47 OF ( 47 )

2024-08-14 12:11:04.232 đŸ”ĩ-[TSLocationManager onHeartbeat] Heartbeat

2024-08-14 12:11:04.236 ✅-[BackgroundTaskManager createBackgroundTask] 57

2024-08-14 12:11:04.237 đŸ”ĩ-[TSLocationManager getCurrentPosition:]

2024-08-14 12:11:04.237 🎾-[LocationManager startUpdatingLocation] ON

2024-08-14 12:11:04.239 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:11:04.271 đŸ”ĩ-[TSLocationManager onResume:] enabled? 1

2024-08-14 12:11:04.280 ℹī¸-[LocationDAO purge:] 1

2024-08-14 12:11:04.282 📍<+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:02 Central European Summer Time

2024-08-14 12:11:04.282 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 1 of 2 (2027 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.283 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:11:04.287 📍<+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:04 Central European Summer Time

2024-08-14 12:11:04.287 🔴-[LocationManager stopUpdatingLocation] OFF

2024-08-14 12:11:04.287 ╔═══════════════════════════════════════════════════════════ ║ -[LocationManager locationManager:didUpdateLocations:] Sample 2 of 2 (34 ms old) ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.288 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081979, 14.430634, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.288 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:11:04.288 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:11:04.289 📍<+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:04 Central European Summer Time

2024-08-14 12:11:04.289 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.308 đŸ”ĩ-[TSLocationManager calculateMedianLocationAccuracy:] Median location accuracy: 35.0

2024-08-14 12:11:04.308 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081979, 14.430634, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.308 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:11:04.308 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:11:04.308 📍<+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:04 Central European Summer Time

2024-08-14 12:11:04.308 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.311 ✅-[TSLocationManager persistLocation:]_block_invoke INSERT: 18349860-8B40-4C2B-9EE3-94739A371F8E

2024-08-14 12:11:04.312 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 12:11:04.312 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.313 ✅-[BackgroundTaskManager createBackgroundTask] 58

2024-08-14 12:11:04.315 ✅-[TSHttpService schedulePost] LOCKED: 18349860-8B40-4C2B-9EE3-94739A371F8E

2024-08-14 12:11:04.316 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 57 OF ( 57, 58 )

2024-08-14 12:11:04.316 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.316 ⚠ī¸-[TSHttpService flush:] Busy with previous request

2024-08-14 12:11:04.763 đŸ”ĩ-[HttpResponse handleResponse] Response: 200

2024-08-14 12:11:04.772 ✅-[TSHttpService post:]_block_invoke DESTROY: 18349860-8B40-4C2B-9EE3-94739A371F8E

2024-08-14 12:11:04.772 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:04.773 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 58 OF ( 58 )

2024-08-14 12:11:08.717 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:11.585 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:14.310 ⚠ī¸-[LocationManager onTimeout:] Using last-known location <+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:04 Central European Summer Time

2024-08-14 12:11:14.310 ✅-[LocationManager onTimeout:] Returning best available location sample

2024-08-14 12:11:14.310 ╔═══════════════════════════════════════════════════════════ ║ -[PolygonGeofencingService isInPolygon:] 📍 50.081979, 14.430634, acy: 35.0m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:14.311 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_A: 0.0%

2024-08-14 12:11:14.311 ℹī¸-[PolygonGeofencingService isInPolygon:] --> Polygon_2: 0.0%

2024-08-14 12:11:14.312 📍<+50.08197913,+14.43063435> +/- 35.00m (speed -1.00 mps / course -1.00) @ 14.08.2024, 12:11:04 Central European Summer Time

2024-08-14 12:11:14.312 ╔═══════════════════════════════════════════════════════════ ║ -[TSGeofenceManager evaluateProximity:] Found 4 / 4 within 2000 m ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:14.768 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:16.677 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:23.365 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:32.910 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:35.776 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:40.111 ✅-[BackgroundTaskManager createBackgroundTask] 61

2024-08-14 12:11:40.111 đŸ”ĩ-[TSLocationManager onSuspend:] enabled? 1)

2024-08-14 12:11:40.123 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:11:43.340 đŸ”ĩ-[BackgroundTaskManager startPreventSuspendTimer:] BG time remaining: 26 | Total tasks: 1

2024-08-14 12:11:45.642 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:48.830 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/33 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:11:49.461 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | still/100 | isMoving: 0 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:12:00.412 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 9.915421)

2024-08-14 12:12:00.440 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 12:12:03.472 đŸ”ĩ-[BackgroundTaskManager onPreventSuspendTimer:] Prevent-suspend timer fired! (bg time remaining: 6.855358)

2024-08-14 12:12:03.491 ℹī¸+[LocationAuthorization run:onCancel:] status: 3

2024-08-14 12:12:06.220 ⚠ī¸-[BackgroundTaskManager createBackgroundTask]_block_invoke FORCE KILL BACKGROUND TASK: 61, remaining time: 4.107723

2024-08-14 12:12:06.220 ✅-[BackgroundTaskManager stopBackgroundTask:]_block_invoke 61 OF ( 61 )

2024-08-14 12:14:50.299 ℹī¸-[TSDBLogger db_delete] maxAge: 604800

2024-08-14 12:14:50.301 đŸ”ĩ-[TSHttpService init]_block_invoke Network: Cellular | Flags: WR -t-----

2024-08-14 12:14:50.315 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:14:50.338 đŸ”ĩ-[TSLocationManager onResume:] enabled? 1

2024-08-14 12:14:50.398 ℹī¸-[LocationDAO purge:] 1

2024-08-14 12:14:50.400 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:14:50.403 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 12:14:50.404 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:14:50.404 ╔═══════════════════════════════════════════════════════════ ║ -[TSLocationManager createMotionTypeChangedHandler]_block_invoke | on_foot/100 | isMoving: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:14:50.404 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService flush:] ╚═══════════════════════════════════════════════════════════

2024-08-14 12:14:50.404 ╔═══════════════════════════════════════════════════════════ ║ -[TSHttpService finish:error:] Success: 1 ╚═══════════════════════════════════════════════════════════

2024-08-14 12:15:50.416 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:16:50.429 ℹī¸-[TSDBLogger db_save] Log committed

2024-08-14 12:17:50.444 ℹī¸-[TSDBLogger db_save] Log committed

Buthrakaur commented 2 months ago

Hello @christocracy , did you have a chance to look into this please? We'd like to use geofencing-only (startGeofences) in our app on background to save the battery as we don't need to get a precise location and just listen on geofence enter events (including smaller polygon geofences as supported by the paid add-on) but as @jakub-oone posted this works for us only on Android and not on iOS when we gave it a try in the demo app. Could you please provide instructions how to set the iOS config in the demo app to make this work?

sirusbaladi commented 2 months ago

Same issue for me. This is related to https://github.com/transistorsoft/react-native-background-geolocation/issues/2015

So here's why this happens, it will help @christocracy releasing an update if he wants to.

startGeofences is not triggering showsBackgroundLocationIndicator even if set to true. If the app doesn't activate the blue IOS icon, that it will simply not work on the background. Starting the plugin with startGeofences instead of start, make the plugin not detect motion change and trigger the showsBackgroundLocationIndicator hence all geofences will be missed unless the app is active.

A simple workaround is to use start instead of startGeofences have very large values for settings like distanceFilter to reduce battery usage.

Ideally @christocracy will release an update to make this work.

Buthrakaur commented 2 months ago

Thanks @sirusbaladi for the workaround suggestion. Could you please provide your point of view @christocracy ? I feel there're at least two options but it should be clear what is the final/accepted one:

  1. it's a known limitation => I think there should be a mention about it in the docs and ideally some warning in the log when the app tries to use startGeofences in background
  2. it's a bug => I think the library may be updated to perform the workaround suggested by @sirusbaladi when the tracking was started using startGeofences and app is switched to background to keep geofencing alive even on background. I'd personally prefer the second option as other features in this library e.g. the polygon geofencing perform similar automagic silently for us.
christocracy commented 2 months ago

So here's why this happens...startGeofences is not triggering showsBackgroundLocationIndicator

@sirusbaladi is wrong. It has nothing to do with showsBackgroundLocationIndicator.

I'm testing this in the iOS simulator and I've found a minor logic bug related to polygon-geofencing and .startGeofences.

A solution will be released this week.

christocracy commented 2 months ago

Since in geofence-only mode, config.isMoving is always false, after entering a polygon, the plugin was taking only 3 samples before turning off location-updates in the PolygonGeofencingService.

christocracy commented 2 months ago

After solving the logic bug, an inexplicable issue was exposed with keeping location-services on in the background in geofences-only mode.

I use multiple instances of CLLocationManager in this SDK, and the Polygon geofence evaluator uses its own distinct instance. For some unknown reason, I could only keep location-services on in the background (witnessed by the blue location-indicator in the statusbar) by also registering that CLLocationManager instance for significant-changes ([[locationManager startMonitoringSignificantLocationChanges]](https://developer.apple.com/documentation/corelocation/cllocationmanager/startmonitoringsignificantlocationchanges()?language=objc)). Mystifying and senseless. That took 4.5 days to figure that out.

Polygon geofence-monitoring in geofences-only mode is working.

I will post to a branch in the private repo for you to test.

christocracy commented 2 months ago

@jakub-oone Try testing version 4.17.0-beta.3 from npm.

jakub-oone commented 1 month ago

@christocracy We did our first quick testing with this version 4.17.0-beta.3 and it looks good on iOS. It works as we expected :-) Thank you!

Buthrakaur commented 1 month ago

Hello @christocracy , we just realized the issue occurs also on Android 14 when using "geofences only" tracking mode on background (even with geofenceModeHighAccuracy). It looks very similar to the iOS issue which you were able to fix already - the isMoving flag stays false (even when I switched the app to foreground) and also there's no notification for a foreground service. When I switch the mode to "Location + Geofences" the notification appears and all starts working on background. After switching back to "geofences only" the background seems to keep working - probably thanks to the notification which stays. I tested again on the demo app but the same issue occurs even in our app which uses the version 4.17.0-beta.3 so this doesn't seem to be fixed in this version. Could you please look into this on Android 14? image image image image image

Buthrakaur commented 1 month ago

Hello @christocracy , any update on the Android 14 issue, please? It's Pixel 7A phone if it makes any difference..

github-actions[bot] commented 4 days ago

This issue is stale because it has been open for 30 days with no activity.