bgeo_background_geolocation
Reliable background geolocation for Flutter (BGeo engine) — iOS & Android. Motion-aware tracking, offline HTTP queue, geofences, headless events.
What this package is like to depend on
Last release 7 days ago
17 Aug 2026
Ships on a steady schedule
a new release about every 10 days
Nearly every release is documented
notes for 12 of 12 stable releases
Nothing withdrawn
no release was ever pulled
0 months old
12 releases · first in 2026
12 releases in the last 12 months
see the full history below
Release timeline
12 releases · Jul 2026 to Aug 2026Releases
latest 12-
0.2.217 Aug 2026Release notes
Open source →- Engine 0.14.1: parked iOS devices no longer burn 1 Hz GPS while the phone is handled — the delivery stream is paused after the stop settles and resumed in place on departure (no re-subscription, so background delivery restarts within milliseconds). Also: the moving keep-alive retries after a background-budget exhaustion in dead zones, and the missed-stop synthesizer stands down while GPS-denied fixes are still arriving (no more backdated stops in tunnels). No Dart API changes.
-
0.2.112 Aug 2026Release notes
Open source →- Engine 0.14.0: iOS now keeps continuous location delivery after the system relaunches the app in the background (overnight eviction, kill while driving) instead of degrading to significant-change bursts of a few points every 4–6 minutes. The upload queue is also flushed on every background wake, so stop records no longer sit on the device until the next app open. No Dart API changes.
-
0.2.007 Aug 2026Release notes
Open source →- Licensing: the
LICENSEfile is now the plain MIT license covering the bridge sources; the proprietary engine-binary terms moved unchanged toLICENSE-BINARY.md. No functional changes.
- Licensing: the
-
0.1.807 Aug 2026Release notes
Open source →- Engine 0.13.5: fix the iOS license-error banner rendering as an empty red rectangle — the text had zero height. No Dart API changes.
-
0.1.707 Aug 2026Release notes
Open source →- Engine 0.13.4: a release build that fails the license check (
LICENSE_MISSING,LICENSE_INVALID,LICENSE_EXPIRED,LICENSE_APP_MISMATCH) now shows a persistent on-screen banner with the error code and app id. Previously tracking was silently blocked — easy to ship without noticing. Debug builds and the iOS simulator are unaffected. No Dart API changes.
- Engine 0.13.4: a release build that fails the license check (
-
0.1.605 Aug 2026Release notes
Open source →- Engine 0.13.3:
getState()on Android now reports the health fields iOS has always reported —trackingActive,authorization, andlastRawFixAge/lastAcceptedFixAge(seconds,nulluntil a fix arrives). The raw age is stamped before the location filter runs, so the pair tells "the OS stopped delivering fixes" apart from "the filter is rejecting them". Read them offstate.raw; no Dart API changes.
- Engine 0.13.3:
-
0.1.501 Aug 2026Release notes
Open source →- Engine 0.13.2: a stationary device uploads again.
watchPositionno longer drops itspersistoption on the way to the per-tick fix, andgetCurrentPosition(persist: true)waits for a fresh fix instead of resolving with the provider's replay of the last known location, which the old same-timestamp dedup then silently discarded — so heartbeat records never reached the server. Persist dedup is now by record identity (stamp + channel). No Dart API changes.
- Engine 0.13.2: a stationary device uploads again.
-
0.1.429 Jul 2026Release notes
Open source →Location.isMoving is bool? — the probing-window null is no longer collapsed
to false.Release notes
Open source →- Breaking (types):
Location.isMovingis nowbool?instead ofbool. Both engines sendis_moving: nullwhile a cold-started session's first fixes are still in the unconfirmed-MOVING probing window (up tostopTimeoutminutes afterstart()); the decoder used to collapse that tofalse, so an app could not tell "not yet known" from "stationary". If you don't care about the difference, replacelocation.isMovingwithlocation.isMoving ?? false.MotionChangeEvent.isMovingis unchanged (non-nullable) — the engines always send a real verdict there.
- Breaking (types):
-
0.1.329 Jul 2026Release notes
Open source →Engine 0.13.1: geofenceschange.off keeps geofence geometry, providerState
reports accuracyAuthorization.Release notes
Open source →- Engine 0.13.1 fixes two payload defects; no Dart API changes.
onGeofencesChange: geofences in theofflist now carry their realradius/latitude/longitudeagain. Removing an actively monitored geofence used to emit an identifier-only record, whichGeofence.fromMapdecoded as zeroed geometry.providerState/onProviderChange:accuracyAuthorizationis now populated (0= full,1= reduced) instead of always decoding tonull. On Android it reports reduced when onlyACCESS_COARSE_LOCATIONis granted.
-
0.1.229 Jul 2026Release notes
Open source →Engine 0.13.0: production licence signing key, iOS privacy manifest,
Android engine coordinate moved to dev.bgeo:bgeo-android.Release notes
Open source →- Engine 0.13.0 embeds the production licence signing key in place of the development key that previously shipped. Licence tokens issued or re-signed before 2026-07-29 will not verify against this build — copy the current token from your dashboard at https://bgeo.dev before upgrading.
- iOS: the vendored
BGeoCore.xcframeworknow ships an Apple privacy manifest (PrivacyInfo.xcprivacy) declaring precise/coarse location collection for app functionality and theNSUserDefaultsrequired-reason API (CA92.1). - Android: the engine AAR's Maven coordinate moved from
com.bgeo:bgeo-android:0.12.1todev.bgeo:bgeo-android:0.13.0. It's vendored in this package's local Maven repo per the documented setup, so no action is needed unless you hand-wrote the old coordinate directly.
-
0.1.128 Jul 2026Release notes
Open source →- No functional changes. Release-infrastructure housekeeping: first version published through CI (GitHub Actions → pub.dev automated publishing); engine binaries verified current (BGeoCore / bgeo-android 0.12.1).
-
0.1.028 Jul 2026Release notes
Open source →Initial release.
- Full RN/native
react-native-background-geolocationAPI parity ported to Futures/Streams:ready/start/stop/setConfig/getState,changePace,getCurrentPosition/watchPosition, permission + provider-state queries, odometer, upload queue (sync/getLocations/destroyLocation(s)/getCount/insertLocation), auth state, persisted logger (getLog/destroyLog/uploadLog), and geofences (add/remove/getGeofences/geofenceExists). - Event streams:
onLocation,onLocationError,onMotionChange,onHeartbeat,onGeofence,onGeofencesChange,onProviderChange,onPowerSaveChange,onHttp,onConnectivityChange,onAuthorization. - Headless (killed-app) event dispatch on Android via a top-level/static
Dart entrypoint running in a background
FlutterEngine. - iOS (
BGeoCore.xcframework, iOS 15.5+) and Android (bgeo-androidAAR, minSdk 24) closed-source engine binaries vendored with the package. - Offline license evaluation in debug builds and the iOS simulator; license key required for release builds via manifest meta-data / Info.plist.
- Full RN/native