From c263af70336f2b03aeb51e993507695f42527ceb Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 10 Aug 2023 18:02:54 +0200 Subject: [PATCH] Bugfix: ACCESS_BACKGROUND_LOCATION is only available/required with Android 10+. Introduced in 3910837d1aa3308738351c91208fa3b0d7ec1710 Fixes #1662. --- .../opentracks/util/PermissionRequester.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java b/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java index 625813732..41c3b2fab 100644 --- a/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java +++ b/src/main/java/de/dennisguse/opentracks/util/PermissionRequester.java @@ -54,10 +54,18 @@ public class PermissionRequester { } ); - locationPermissionRequest.launch(permissions.toArray(permissions.toArray(new String[0]))); + locationPermissionRequest.launch(permissions.toArray(new String[0])); } - 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 GPS_PERMISSION; + + static { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + GPS_PERMISSION = List.of(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION); + } else { + GPS_PERMISSION = List.of(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION); + } + } private static final List BLUETOOTH_PERMISSIONS;