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() {