Bad Elf Flex: Enabling Android Mock Location

Bad Elf Flex: Enabling Android Mock Location

Introduction

Some Android applications do not allow users to select an external GNSS receiver directly. In these cases, Android uses a feature called “mock location” to let one app supply location data to the entire device. This guide explains how to enable Developer Options, set the Bad Elf Flex app as the mock location source, and activate mock location within the app. Once enabled, your Bad Elf Flex will provide location data system-wide to all apps on your Android device.

Info
Apps that allow the user to select an external GNSS location provider like ArcGIS Field Maps do not require a mock location app.  Select your Bad Elf Flex as the location provider from within your chosen 3rd party app settings. See this article for more information: Configuring ArcGIS Field Maps
Notes
Mock location is not required on iOS due to Location Services automatically using the location of the Bad Elf Flex when connected.

What You’ll Learn

  1. How to enable developer options on Android
  2. How to select the Bad Elf Flex app as the mock location provider
  3. Process for using mock location with the Bad Elf Flex

Enabling Developer Options

Warning
Do not adjust any other developer settings other than the ones mentioned in this guide to avoid negatively affecting the functionality of your Android.

1. Download the Bad Elf Flex app from the Google Play Store.
2. On your Android phone or tablet, navigate to Settings > About Phone/Tablet > Software information. 

3. Tap Build number (7 or more times) until your phone or tablet confirms developer options are enabled. 

Configuring Mock Location App

1. Open the Settings app.
2. Go to Developer Options.
3. Tap Select mock location app.
4. Select the Bad Elf Flex app.


Confirming Mock Location Status

Info
These instructions are available in the Bad Elf Flex App on Android under App Settings > Mock location.
1. Open the Bad Elf Flex app.
2. Go to App Settings > Mock location.
3. Enable mock location if necessary.

4. Verify the Bad Elf Flex app is configured as mock provider.
5. Connect your Bad Elf Flex GNSS receiver.
6. Allow the receiver to achieve a fix by placing it in an outdoor location with visibility of the sky.
7. Verify mock location is flowing.


Your Android is now configured to use the Bad Elf Flex as the mock location provider.

Initializing Mock Location

1. Open the Bad Elf Flex app.
2. Connect to the Bad Elf Flex GNSS receiver.
3. Verify Mock location is on notification.
Alert
The Bad Elf Flex app must be opened in the foreground to begin flowing mock location.  We recommend opening the Bad Elf Flex app before connecting to your receiver, and keeping it open until the Bad Elf Flex achieves a GNSS fix.
Idea
Consider implementing the steps listed under Confirming Mock Location Status above as part of your field setup routine to confirm mock location is functional.

Frequently Asked Questions

Q: How do I connect a Bad Elf receiver to my phone or tablet?
A: Pair the receiver via Bluetooth. On iOS devices, Bad Elf GNSS receivers use their MFi certification to automatically take over all location services. On Android devices, the same functionality is available by enabling mock location through the Bad Elf Flex App.

iOS pairing instructions: Bad Elf Flex Pairing with Android →

Q: I followed the steps and my app is still using my integrated GPS for my location, what is going on?
A: Apps that allow the user to select the location provider such as ArcGIS Field Maps require the user to select the Bad Elf Flex as the location provider from within the respective 3rd party app settings.

Q: Do I have to select the Bad Elf Flex app as the mock location provider every time I use the receiver?
A: No. The Bad Elf Flex app remains as the mock location provider until configured otherwise.  However, the Bad Elf Flex app does need to be open to initialize mock location flow. After initializing, the Bad Elf Flex app can be minimized.  If connecting to a new Android, you will have to follow the mock location configuration steps again.  

Q: What is a mock location provider in Android and why do I need it for the Bad Elf Flex?
A: A mock location provider allows an external app, like the Bad Elf Flex app, to override the standard internal GPS location of your Android device. You need to enable the Bad Elf Flex app as the mock location provider so that your Android device and all its location-aware applications will use the high-accuracy GNSS data from the Bad Elf Flex receiver instead of the device's less-accurate internal GPS.

Q: Does enabling the Bad Elf Flex as a mock location provider affect all other apps on my Android?
A: Yes, once the Bad Elf Flex app is successfully configured and running as the mock location provider, all location-aware applications on your Android device (except those that allow their own external GNSS selection, like ArcGIS Field Maps) will exclusively use the high-accuracy location data provided by the Bad Elf Flex receiver.

Q: How do I turn off mock location and return to using my Android's internal GPS?
A: To stop using mock location, you can do one of two things:
Go to Settings > Developer Options > Select mock location app and choose 'None' or 'Nothing', OR, simply close the Bad Elf Flex app and disconnect from the Bad Elf Flex receiver. While the Bad Elf Flex app remains selected as the provider, it must be running to flow mock location data.

Q: Why can't I find 'Developer Options' in my Android settings?
A: Developer Options is hidden by default. You must enable it by navigating to Settings > About Phone/Tablet > Software information and repeatedly tapping the Build number (typically 7 times) until a message confirms, "You are now a developer!"

Q: Mock location is enabled, but my location is inaccurate. What should I check?
A: First, ensure your Bad Elf Flex receiver has a GNSS fix. Place the receiver outside with a clear, unobstructed view of the sky and wait for the fix to be established. Second, confirm that the Bad Elf Flex app itself is showing a stable position and that the mock location is flowing in App Settings>Mock location.

Q: Why do I need to open the Bad Elf Flex app to start mock location?
A: The Bad Elf Flex app acts as the crucial software bridge between the receiver's high-accuracy data and the Android operating system. The app must be open (in the foreground or minimized after initialization) to initialize the flow of mock location data to the Android system. Once initialized and flowing, you can minimize the app.




    • Related Articles

    • Bad Elf Flex: Choosing the Right RTK Network for Your Bad Elf GNSS Receiver

      Introduction This guide explains how to achieve centimeter-level accuracy with your Bad Elf Flex and sub-foot accuracy with your Bad Elf Flex Mini Extreme receiver by connecting to a real-time network (RTN) in the USA. What You’ll Learn What are ...
    • Bad Elf Flex: Bluetooth Pairing with Android

      Connect your Bad Elf GNSS receiver to your Android phone or tablet by following these simple steps: Close the Bad Elf Flex app on Android if you have not already. Power ON your Bad Elf Flex by pressing and holding the power button for 1 second. On ...
    • Bad Elf Flex: Configuring ArcGIS Field Maps for Laser Offsets

      Overview ArcGIS Field Maps added new metadata fields for laser offset workflows in the June 2025 update. Documentation on the Field Maps implementation of field names, data types, and domains can be found here→. To add the laser offset fields to a ...
    • Bad Elf Flex: Logging Features

      Logging Features The Bad Elf Flex produces location data valuable for storage and analysis after field data collection. The logging feature, accessed from the main menu, allows you to store different types of GNSS data. You can also transfer data ...
    • Bad Elf Flex: Updating Firmware

      Ready to upgrade your Flex to the latest firmware? Just follow these steps: On your phone or tablet, install or upgrade to the latest public Bad Elf Flex utility app available on the App Store (iOS) or Google Play Store (Android). Connect your Flex ...