【问题标题】:Location updates limit in background service in Android 8Android 8 后台服务中的位置更新限制
【发布时间】:2018-05-08 08:52:48
【问题描述】:

我有一个后台服务,每 12 分钟更新一次位置。我们希望每 5-6 分钟测试一次位置更新,但在 Android 文档中我们发现:

为了降低功耗,Android 8.0(API 级别 26) 限制后台应用程序检索用户当前的频率 地点。每个应用只能接收几次位置更新 小时。

https://developer.android.com/about/versions/oreo/background-location-limits.html

服务中接收更新的代码:

    mLocationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) {
            Location location = locationResult.getLastLocation();
            //...
        }
    };

    mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

    mLocationRequest = new LocationRequest();

    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    mLocationRequest.setInterval(TIME_TO_CHECK_LOCATION);
    mLocationRequest.setFastestInterval(TIME_TO_CHECK_LOCATION);
    mLocationRequest.setMaxWaitTime(TIME_TO_CHECK_LOCATION);

    mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);

有人在使用 Android 8 的后台服务中测试过位置更新的限制吗?

限制是每小时固定的次数?

【问题讨论】:

  • 运行 Android 8 的设备在一小时内执行 3-4 次
  • @lakshman.pasala 你有这方面的资料吗?

标签: android service location background-service android-8.0-oreo


【解决方案1】:

如果您使用融合位置提供程序,并且如果另一个应用正在前台请求位置,或者它正在使用前台服务请求位置,您的应用将获得与此应用一样多的位置。如果没有其他应用程序请求位置,并且您将应用程序置于后台,根据我的真实设备测试,您可以期望在三星 Galaxy S8(运行 Android 8.0)上每 3 分钟一个新位置,在 Google Pixel(运行 Android 系统)上每 5 分钟8.1)。看起来这不是一个非常稳定的数字。可以使用前台服务采集位置,没有任何限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多