All Collections
IoT Projects Tutorials
Connect an Android-powered GPS fleet tracker to Ubidots
Connect an Android-powered GPS fleet tracker to Ubidots

This article explores how to turn an old/unused Android phone into a GPS tracker and send its data to Ubidots.

Sergio M avatar
Written by Sergio M
Updated over a week ago

You’re just 3 steps away from creating your own GPS-tracking application, without writing any code!

GPSLogger Android App


GPSLogger is an Android application that uses the phone's GPS to gather positioning data but, unlike other GPS apps, it offers several approaches on what to do with the data, such as sending the data through custom HTTP requests, enabling a straight-forward integration with Ubidots.

Why build GPS tracking solutions?

Just as for most electronic products, the prices of GPS trackers have been dropping, making them suitable for a growing set of asset monitoring applications that were impossible before. As the price (and size) of GPS trackers continue to drop, more types of assets are being possible to track in real-time, uncovering new business opportunities for IoT entrepreneurs and systems integrators alike.

We hope this guide serves as an entry point to uncover asset-tracking opportunities in your domain.


  • An Android phone supporting GPS.

  • An active Ubidots account.

Table of Contents

1. Download the GPSLogger app

  • Download the GPSLogger app. This app is not available on the Google Play Store. Instead, you have to download it from the official project's GitHub.

  • Launch your preferred web browser on your Android phone, head to the link provided above, download the application's APK file and install it. Make sure to download the latest stable version.

  • You'll be prompted for permission requirements, tap the "OK" button and proceed to grant the requested permissions.

  • Enable the location permission only while using the app in order to optimize battery consumption.

2. Configure the GPSLogger app settings

  • Once finished granting the required permissions, tap on the upper left button as shown below:

  • Tap on the "Custom URL" option:

  • Configure the following settings:

    • Enable the "Log to custom URL" and "Allow auto sending" options.

    • Paste the following line in the URL field

      Note that "%AID" is a variable that stores a unique identifier for your phone, which will be used as the device label according to: How to send data to an Ubidots device.

    • Tap the HTTP Body option and paste:

      {"position":{"lat":%LAT, "lng":%LON}, "speed":%SPD, "altitude":%ALT, "satellites":%SAT, "accuracy":%ACC, "battery": %BATT, "travelled":%DIST, "direction":%DIR}

    • Tap the HTTP Header option and paste the following, taking into account that you have to change "<your-account-token>" for your Ubidots token:

      Content-Type: application/json
      x-auth-token: <your-account-token>

    • Tap the HTTP Method option and write POST

  • At last, it should look like this:

  • Head back to the main menu, press the hamburger button and tap the "Performance" option:

  • Enable both Log GPS/GNSS locations and Log network locations.

  • By default, the app takes the position data every 60 seconds; if you want to change that value, you can do so by changing the Logging interval setting

  • Head back to the main menu and tap the "START LOGGING" button. This will start the position data capturing and its corresponding delivery to your Ubidots account.

3. Visualizing data on Ubidots

  • Go to your Ubidots account Devices Devices. There, you'll be able to see a newly created device with data from different variables, as shown below:

4. Feedback, suggestions and related articles

Feel free to post questions or suggestions in our community portal, or contact us via

Other users also found helpful...

Did this answer your question?