# Location Management

> Control location on Android Devices with Applivery — the system-level location service (locationMode) and per-app location permissions, and how each depends on the management mode.

Source: https://docs.applivery.com/en/device-management/android/policies/location-management/  •  Last updated: 2026-07-30

**Key topics:** System-level location control, Per-app location permissions, Management-mode differences, Location reporting, Android, Applivery, Android Management API, COPE, Work Profile

---

**TL;DR:** Applivery controls location at two levels: system-wide (locationMode, any Device) and per-app (Permission Grants). You can pre-grant location silently on Fully Managed and Dedicated Devices, but not on COPE or Work Profile (BYOD), where Android requires the user to approve it.

How much control you have over location on Android isn't the same on every Device: it depends on whether the Device is Fully Managed / Dedicated or has a work profile (COPE or BYOD). Applivery gives you two levels of control — the system location service and per-app location permissions — and the second behaves differently depending on the mode.

## System-level location control

Regardless of the management mode, you can control whether the system location service is active with the **Location Mode** field.

Once in the [**Applivery Dashboard**](https://dashboard.applivery.io/), go to any of your **Policies**. Open **All Properties** and search for the **Location Mode** configuration. It has three possible values:

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Value</p></th><th colspan="1" rowspan="1"><p>What it does</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>LOCATION_USER_CHOICE</code></p></td><td colspan="1" rowspan="1"><p>Location isn't restricted on the Device. Nothing specific is enforced — the user decides.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>LOCATION_ENFORCED</code></p></td><td colspan="1" rowspan="1"><p>Forces location on.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>LOCATION_DISABLED</code></p></td><td colspan="1" rowspan="1"><p>Forces location off.</p></td></tr></tbody></table>

:::warning
On Android 11 and later, work profiles on corporate-owned Devices (COPE) **can't directly force** location on or off at the device level. If you set `LOCATION_ENFORCED` or `LOCATION_DISABLED` in that scenario, Applivery reports a `NonComplianceDetail` with reason `USER_ACTION`, and compliance is only restored once the user changes the location setting manually from the Device's Settings. In practice, on COPE these two values act more as a compliance signal — the Device is flagged non-compliant until the user acts — than as a silent, immediate enforcement.
:::

![location mode](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/684327c1-1309-4627-b585-eeb24fc37cce.png)

A separate field, **Share Location Disabled**, specifically controls whether location sharing is turned off. It's a different setting from Location Mode — closer to what Applivery's Feature List calls _Location sharing management_ (preventing work-profile apps from sharing location) — and shouldn't be confused with the system switch.

## Per-app location permission: Permission Grants

Applivery manages app permissions — location included — from **Policies → Apps**. Once in a Policy, open **Apps** from the left-hand menu and select the app from your installed apps. If the app you want to manage isn't installed yet, install it first through any of Applivery's methods, then select it.

This opens the app's Managed Properties, including a **Permissions** section with two controls:

-   **Default Permission Policy**: a global rule (Prompt / Grant / Deny) for every permission the app requests.
    

![default permission policy](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/d7bba615-df3c-49aa-a55c-2c2387a0b0b0.png)

-   **Permission Grants**: per-permission rules. For location, add an item, choose the **Location** permission in the dropdown, and set its policy to **Grant** (granted automatically), **Deny** (denied automatically), or **Prompt** (the user decides).
    

![permission grant](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/870151dd-85c6-4e54-ba74-ac84e490bb2a.png)

This applies to apps with `targetSdkVersion` 23 or higher, and works the same on AOSP Devices.

### Fully Managed and Dedicated Devices

On fully corporate Devices (no separate personal profile), a Permission Grant set to **Grant** grants the location permission without the user seeing any dialog. It's the usual approach for:

-   Fleet-tracking apps on logistics Devices.
    
-   Field-service apps on dedicated Devices.
    
-   Point-of-sale or delivery Devices that need location to operate.
    

### COPE and Work Profile (BYOD)

:::warning
On COPE and Work Profile (BYOD), `ACCESS_FINE_LOCATION` and `ACCESS_COARSE_LOCATION` **can't be pre-granted or blocked** inside the work profile. This is a technical limitation of the Android platform, not a best-practice recommendation — the user always has to approve the permission manually.
:::

This is part of a wider pattern: on COPE, any permission, restriction, or setting applied by policy only affects the work profile, never the personal profile — and certain sensitive permissions (location, camera, microphone) can't be pre-granted even within the work profile itself. See [COPE permission limits](https://docs.applivery.com/en/device-management/android/cope-permission-limits/) for the full picture.

So, for COPE and BYOD, inform users clearly about which work-profile apps access their location and why, rather than trying to force a silent grant the platform won't allow anyway.

## Location reporting to Applivery

Beyond the app's own permission, Applivery showing a Device's last known location in the console depends on two things: the Applivery agent having the location permission granted, and the system location service not being disabled. This feeds the location tab in the Device detail — useful for locating lost equipment or checking that field Devices are operating in the expected area.

Applivery shows the **last known location**, not continuous real-time tracking. Continuous tracking would require a dedicated tracking app.

## Recommendations by use case

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Use case</p></th><th colspan="1" rowspan="1"><p>Recommendation</p></th></tr><tr><td colspan="1" rowspan="1"><p>Logistics fleets or field workers (Fully Managed / Dedicated)</p></td><td colspan="1" rowspan="1"><p>Grant the location permission via Permission Grants (<strong>Grant</strong>). Enforce the system service with <code>LOCATION_ENFORCED</code> if it must always be on.</p></td></tr><tr><td colspan="1" rowspan="1"><p>BYOD or corporate COPE fleets</p></td><td colspan="1" rowspan="1"><p>Don't try to pre-grant the permission — the platform won't allow it in the work profile. Inform users which apps access their location and why.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Kiosk-mode Devices</p></td><td colspan="1" rowspan="1"><p>If the use case doesn't need location, turn the system service off to save battery.</p></td></tr></tbody></table>
