1

我今天遇到了一个特殊的问题:我们需要用户地理定位来提供我们的服务,并且到目前为止它运行良好(在最近的 Android Location API 发布之前实现,尚未更新)。我们这样注册

((LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE))
        .requestLocationUpdates((provider == WPS)? 
        LocationManager.NETWORK_PROVIDER : LocationManager.GPS_PROVIDER,
        minTime, minDist, onChange(ctx, provider)); // onChange create a pending intent

在某些事件上,我们称之为

Location gpsLocation = LocMngr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location wpsLocation = LocMngr.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

在运行 Android 4.0.3 和 HTC Sense 4.0 的 HTC One S 上,我们永远不会收到位置更新,最后一个已知位置对于 gps 返回 null ,对于 wps 返回 2 天前的位置。WIFI、GPS 和移动数据已打开,我试着在外面走来走去,看到该设备试图修复 gps,但显然它没有得到一个。其他设备使用相同的代码从 gps 或 wps 接收位置更新没有问题...

这只发生在这个设备上(它是一个测试设备,所以引导加载程序被锁定,没有植根或任何其他可能破坏它的时髦东西)

我很茫然,有什么想法吗?

更新 由于我们重新启动设备,问题没有再次发生,我仍然想知道是什么导致了问题......

更新 2

我昨天在 Galaxy Nexus 官方 Android 4.2.2 上遇到了同样的问题。所以这似乎是一般Android的问题。

现在显然没有人知道如何解决这个问题,有没有办法检测位置 API 何时不再发送任何修复?除了检查 lastKnownLocation() 的时间戳之外?

4

0 回答 0