Skip to content
Support the creatorSupport

Documentation

Long Ping is a React Native plugin that records the device’s location on a fixed clock you set and uploads it to your server. It is built for fleets, deliveries and field teams, where “the phone went quiet for three hours” is not acceptable.

It is completely free and open source: free for personal and commercial use, with no license key, no paid tier and no limits. See License.

Any interval from 1 second

One interval while moving, another while parked. Fixes come from a clock, not from a motion classifier that can get stuck.

Native end to end

Fixes, the upload queue, retries and restarts all run in native code. JavaScript can be frozen or dead.

Your server, your format

Default JSON or your own template. Change device settings from your upload response.

Explains its silences

An on-device log of every state change, restart and upload, readable from JavaScript.

  1. A clock. A fix is due every movingIntervalSec while moving and every parkedIntervalSec while parked.
  2. Moving or parked is decided from the fixes themselves: speed at or above movingSpeedMps, or leaving stopRadiusM, means moving; staying inside stopRadiusM for stopTimeoutSec means parked.
  3. Every recorded fix becomes a JSON location record with a unique uuid, stored in a SQLite queue on the device.
  4. The uploader sends the queue to http.url in batches, with backoff, token refresh and a strict HTTP contract.
  5. Your reply can carry a long_ping object that changes the device’s config or stops tracking.
  6. Recovery is native too: a 60-second watchdog on both platforms; on Android a foreground service, a boot receiver and a 15-minute WorkManager check; on iOS significant-change and region monitoring that relaunch the app.

JavaScript is a control surface: configure(), start(), stop(), tokens, and events for your UI. Nothing depends on JavaScript running in the background.

Minimum
React Native 0.76, New Architecture
iOS 15.1
Android 7.0 (API 24), Google Play Services

Long Ping has no dependencies beyond Google Play Services Location and AndroidX WorkManager on Android, and Apple’s frameworks on iOS.

Battery figures on this site are estimates. Try Long Ping on a few devices from your own fleet before a wide rollout, and read the platform limits for iOS and the Android battery managers guide.

What Long Ping does not include: a geofencing API, an Expo config plugin, web support or a hosted backend.