diff --git a/gpsrelaysentinel/src/main/AndroidManifest.xml b/gpsrelaysentinel/src/main/AndroidManifest.xml index 4966b18..7e89b56 100644 --- a/gpsrelaysentinel/src/main/AndroidManifest.xml +++ b/gpsrelaysentinel/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + = android.os.Build.VERSION_CODES.Q) { + return checkSelfPermission(android.Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED; + } + return hasBasic; } private void requestLocationPermission() { - String[] permissions = new String[] { - android.Manifest.permission.ACCESS_FINE_LOCATION, - android.Manifest.permission.ACCESS_COARSE_LOCATION - }; - requestPermissions(permissions, REQUEST_LOCATION_PERMISSION); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { + String[] permissions = new String[] { + android.Manifest.permission.ACCESS_FINE_LOCATION, + android.Manifest.permission.ACCESS_COARSE_LOCATION, + android.Manifest.permission.ACCESS_BACKGROUND_LOCATION + }; + requestPermissions(permissions, REQUEST_LOCATION_PERMISSION); + } else { + String[] permissions = new String[] { + android.Manifest.permission.ACCESS_FINE_LOCATION, + android.Manifest.permission.ACCESS_COARSE_LOCATION + }; + requestPermissions(permissions, REQUEST_LOCATION_PERMISSION); + } } private void startService() {