在 Android 11+ 中,使用前台服务(FLP)进行定位时,后台定位请求会受到限制。具体来说,后台定位请求的间隔为 4 分钟,使用的电量也有限制。这些限制的目的是为了保护设备的电池寿命和用户的隐私。
以下是如何在 Android 11+ 上请求后台定位的示例代码:
LocationRequest locationRequest = new LocationRequest(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(4 * 60 * 1000);
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() .addLocationRequest(locationRequest);
SettingsClient settingsClient = LocationServices.getSettingsClient(this);
Task
task.addOnSuccessListener(this, new OnSuccessListener
请注意,上面的代码将在 4 分钟间隔后请求后台定位,并在主线程上获取结果。当设备的电池水平较低时,后台定位请求可能会被 Android 系统限制。