From e2800d4ccf2e0f889d34de85352f528b94e488c7 Mon Sep 17 00:00:00 2001 From: 8bhsolutions <48874658+8bhsolutions@users.noreply.github.com> Date: Sun, 18 Oct 2020 15:40:59 +1100 Subject: [PATCH] Fix SDK 29 require ACCESS_BACKGROUND_LOCATION permission --- .../bgloc/BackgroundGeolocationFacade.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java b/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java index a8c755f7..fed8500d 100644 --- a/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +++ b/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java @@ -52,10 +52,7 @@ public class BackgroundGeolocationFacade { public static final int AUTHORIZATION_AUTHORIZED = 1; public static final int AUTHORIZATION_DENIED = 0; - public static final String[] PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION - }; + public static final String[] PERMISSIONS = getRequiredPermissions(); private boolean mServiceBroadcastReceiverRegistered = false; private boolean mLocationModeChangeReceiverRegistered = false; @@ -70,6 +67,22 @@ public class BackgroundGeolocationFacade { private org.slf4j.Logger logger; + private static String[] getRequiredPermissions() { + if(android.os.Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) { + return new String[]{ + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION + }; + } + else { + return new String[]{ + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + }; + } + } + public BackgroundGeolocationFacade(Context context, PluginDelegate delegate) { mContext = context; mDelegate = delegate;