Skip to content

Compatibility

RequirementSupported
AndroidminSdk 24, compileSdk 36
Kotlin≥ 1.9 (the SDK itself is built with 2.1.20)
JVM target17
Android Gradle Plugin≥ 8.4 (built with 8.13.0)
Coroutineskotlinx-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-process

Play 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.