首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android 8中后台服务中的位置更新限制

Android 8中后台服务中的位置更新限制
EN

Stack Overflow用户
提问于 2017-11-24 10:46:41
回答 1查看 1.2K关注 0票数 4

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

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

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

服务中接收更新的代码:

代码语言:javascript
复制
    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?的后台服务中测试过位置更新的限制。

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

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 21:23:45

如果您使用的是融合位置提供程序,如果另一个应用程序正在请求前台位置,或者使用前台服务请求位置,则您的应用程序将获得与此应用程序相同的位置。如果没有其他应用程序请求定位,并且你把你的应用放在后台,从我真正的设备测试,你可以期待每3分钟在三星银河S8(运行Android8.0),每5分钟运行谷歌像素(运行安卓8.1)的新位置。看起来这不是一个很稳定的数字。您可以使用前台服务收集位置,这是没有限制的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47471600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档