gpt4 book ai didi

Android FusedLocationProviderClient 突然不再使用 Location 调用回调

转载 作者:行者123 更新时间:2023-12-05 00:03:34 28 4
gpt4 key购买 nike

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

我们的位置包装器代码已经有两年几乎没有被改动过,并且在最近的一次更改(微不足道)后大约一个月内运行良好。换句话说,它已经毫无问题地工作了两年。下面的 fragment 。

现在,在注册接收位置更新后,我们大部分时间不再在回调中获得结果。这是回调和其他相关 fragment :

  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)
}
}
  override fun getUpdatedLocation(request: LocationRequest): Observable<Location> {
try {
client.requestLocationUpdates(request, locationCallback, Looper.getMainLooper())
} catch (e: SecurityException) {
Timber.tag(LOGTAG).d(e, "security exception getting last location")
}

return subject
}
  fun getDefaultLocationRequest(): LocationRequest = LocationRequest()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setNumUpdates(1)
.setFastestInterval(TimeUnit.MILLISECONDS.toMillis(500))

这是我们使用的库/版本:

  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

关于Android FusedLocationProviderClient 突然不再使用 Location 调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66048704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com