From dae269ff774cfad167ad4dda5f896d7f1acb4e0c Mon Sep 17 00:00:00 2001 From: LaizyBoy Date: Thu, 7 May 2026 02:26:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(gpsrelaysentinel):=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E4=B8=BA=E5=A7=8B=E7=BB=88=E5=85=81=E8=AE=B8GPS=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E6=9D=83=E9=99=90=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加ACCESS_BACKGROUND_LOCATION权限声明 - 在Android Q及以上版本申请后台位置权限 - 权限检查包含后台位置权限验证 - 权限申请时根据系统版本动态添加后台位置权限 --- gpsrelaysentinel/src/main/AndroidManifest.xml | 1 + .../studio/gpsrelaysentinel/MainActivity.java | 25 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) 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() {