diff --git a/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt b/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt index b85738b1f..5e051d418 100644 --- a/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt +++ b/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt @@ -270,13 +270,19 @@ object LocationService { if (!hasForegroundPermission) { return 1 // 前台权限未授予 } - + // 前台权限已授予,再根据前后台状态检查后台权限 if (!isAppInForeground(context)) { - // 应用在后台:Android 10+ 需要检查后台权限 - return 2 // 后台权限未授予 + // 应用在后台:Android 10+ 需要检查后台权限的实际授予状态 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val hasBackgroundPermission = hasBackgroundLocationPermission(context) + if (!hasBackgroundPermission) { + return 2 // 后台权限未授予 + } + } + // Android 9 及以下或已授予后台权限 } - + // 所有所需权限均已授予 return 0 }