Android FusedLocationProviderClient突然不再使用位置调用回调

Android FusedLocationProviderClient突然不再使用位置调用回调,android,location,fusedlocationproviderapi,android-fusedlocation,fusedlocationproviderclient,Android,Location,Fusedlocationproviderapi,Android Fusedlocation,Fusedlocationproviderclient,大约两周前,我们的应用程序的几个区域随机停止工作,特别是那些依赖最新位置的区域。这发生在多个设备上,包括真实设备和模拟器。在此之前,它每次都在工作。对我们来说幸运的是,所有停止工作的东西都隐藏在一面旗帜后面,我们能够在生产中禁用它 我们的位置包装器代码两年来几乎没有被触碰过,在最近唯一一次更改(这是微不足道的)后,它在一个月内运行良好。换句话说,两年来它一直在毫无问题地工作。下面是一些片段 现在,在注册接收位置更新后,我们在大部分时间里不再在回调中得到结果。以下是回调和其他相关片段: pri

大约两周前,我们的应用程序的几个区域随机停止工作,特别是那些依赖最新位置的区域。这发生在多个设备上,包括真实设备和模拟器。在此之前,它每次都在工作。对我们来说幸运的是,所有停止工作的东西都隐藏在一面旗帜后面,我们能够在生产中禁用它

我们的位置包装器代码两年来几乎没有被触碰过,在最近唯一一次更改(这是微不足道的)后,它在一个月内运行良好。换句话说,两年来它一直在毫无问题地工作。下面是一些片段

现在,在注册接收位置更新后,我们在大部分时间里不再在回调中得到结果。以下是回调和其他相关片段:

  private val locationCallback = object : LocationCallback() {
    override fun onLocationResult(locationResult: LocationResult?) {
      Timber.tag("DERP").d("LocationProviderImpl.onLocationResult: got location; loc=${locationResult?.lastLocation}; thread=${Thread.currentThread().name}")
      locationResult ?: return
      subject.onNext(locationResult.lastLocation)
    }
  }
以下是我们正在使用的LIB/版本:

  implementation 'com.google.android.gms:play-services-auth:19.0.0'
  implementation 'com.google.android.gms:play-services-base:17.5.0'
  implementation 'com.google.android.gms:play-services-location:17.1.0'
  implementation "com.google.android.gms:play-services-gcm:17.0.0"
还有几件值得注意的事情:

  • 回调间歇性地得到结果(可能是15次尝试中的1次)
  • 没有押韵,也没有理由解释为什么,他尝试了很多不同的方法,但没有成功
  • lastLocation
    每次都能正常工作,但通常会过时
  • 首先调用
    lastLocation
    似乎不会使回调工作得更可靠,正如文档中所示
  • 这个位置提供者(融合客户端的包装器)曾在应用程序的多个领域使用过,但直到最近,我们才开始在最新功能中更多地使用它
是否存在一些我们以前没有达到但现在达到的配额或限制?还有什么可能导致这种情况吗?

请尝试降级版本

implementation 'com.google.android.gms:play-services-location:17.0.0'
我也有同样的想法,我认为这是17.1.0版本中的一个bug

  implementation 'com.google.android.gms:play-services-auth:19.0.0'
  implementation 'com.google.android.gms:play-services-base:17.5.0'
  implementation 'com.google.android.gms:play-services-location:17.1.0'
  implementation "com.google.android.gms:play-services-gcm:17.0.0"
implementation 'com.google.android.gms:play-services-location:17.0.0'