From 3910837d1aa3308738351c91208fa3b0d7ec1710 Mon Sep 17 00:00:00 2001 From: v_schaefer <{ID}+{username}@users.noreply.github.com> Date: Tue, 8 Aug 2023 10:35:13 +0200 Subject: [PATCH] Fix: GPS Access denied when phone in standby Added ACCESS_BACKGROUND_LOCATION permission to access GPS while phone is in standby. This is necessary for situations where the PublicAPI is triggered to start a record from an external device like a smartwatch. --- README.md | 3 ++- src/main/AndroidManifest.xml | 1 + .../de/dennisguse/opentracks/util/PermissionRequester.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 471620e6f..a0890cf09 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,9 @@ OpenTracks can be used with [Gadgetbridge](https://www.gadgetbridge.org/): * __No in-app analytics__ * __No use of Google Play Services__ -__Only required permission:__ +__Only required permissions:__ * _ACCESS_FINE_LOCATION_: required to use the GPS. +* _ACCESS_BACKGROUND_LOCATION_: required to start recording with GPS while phone is in standby. (e.g. when triggered by Public API from an external device) ### Public API diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 79e391421..07defc13a 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -46,6 +46,7 @@ limitations under the License. + diff --git a/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java b/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java index 031b7ab47..625813732 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java +++ b/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java @@ -57,7 +57,7 @@ public class PermissionRequester { locationPermissionRequest.launch(permissions.toArray(permissions.toArray(new String[0]))); } - private static final List GPS_PERMISSION = List.of(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION); + private static final List GPS_PERMISSION = List.of(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION); private static final List BLUETOOTH_PERMISSIONS;