Compatibility
| Requirement | Supported |
|---|---|
| Android | minSdk 24, compileSdk 36 |
| Kotlin | ≥ 1.9 (the SDK itself is built with 2.1.20) |
| JVM target | 17 |
| Android Gradle Plugin | ≥ 8.4 (built with 8.13.0) |
| Coroutines | kotlinx-coroutines ≥ 1.8 (comes transitively) |
See Installation for the setup steps.
Android only
This is the native Android SDK. For iOS, use the React Native or Flutter SDK — both wrap the same engine on both platforms — or wait for the native iOS package.
What comes with it
dev.bgeo:background-geolocation this facade, open source└── dev.bgeo:bgeo-android the engine, closed source ├── com.google.android.gms:play-services-location └── com.squareup.okhttp3:okhttp├── org.jetbrains.kotlinx:kotlinx-coroutines-android├── androidx.activity:activity└── androidx.lifecycle:lifecycle-processPlay Services Location, OkHttp and androidx.activity are api dependencies
rather than implementation: their types appear in the surface you call, so
they have to be on your compile classpath. You do not declare any of them
yourself.
Binary distribution
The engine is published to Maven Central as dev.bgeo:bgeo-android, an
R8-obfuscated AAR. Its -sources and -javadoc jars are placeholders — it is
closed source, and Maven Central requires the classifiers to exist. This
facade publishes real sources; you can read every line of what your calls go
through before they reach the engine.
The engine version is pinned by this facade rather than chosen by you, so a facade release is always tested against the engine it ships with.
Kotlin metadata
The AAR is compiled with Kotlin 2.1.20. Kotlin’s metadata is backward-compatible, so an app on an older 1.9/2.0 toolchain consumes it normally. If you hit a metadata error, upgrade the Kotlin plugin or contact support.
Play Services
The engine uses the fused location provider and activity recognition from Play Services. Devices without Google Play Services — some China-market ROMs, AOSP builds — are not supported.