无法在Android设备上获取任何位置,而Google地图可以

时间:2013-11-17 19:05:39

标签: android locationmanager

我正在编写一个需要获得任何新位置的应用。准确性不符合要求。我的应用程序将主要用于建筑物,因此我使用网络位置提供程序作为主要位置源。 我在某些设备上遇到如下问题: 我的代码无法访问任何位置。但是,当我在同一台设备上启动Google地图时,它会显示正确的位置。我切换回我的程序,它再也看不到任何位置。 我的代码大致如下:

  1. 检查网络位置提供商是否可以使用以下代码:

    locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

  2. 如果启用了网络提供商 - 需要单个位置更新:

    locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

  3. 代码也启动Timer 5秒钟。如果代码在5秒内没有获得请求的位置更新,那么计时器正在迭代所有可用的提供商试图获取最后一个已知位置并获得最佳位置:

    位置location = locationManager.getLastKnownLocation(provider);

  4. 所有这些举措的结果是网络提供商处于开启状态,但代码未获得任何更新。计时器启动,遍历所有提供程序,并且所有提供程序都没有任何最后的已知位置。 getLastKnownLocation方法为所有这些方法返回null。最有趣的是,谷歌地图在此前几秒就得到了正确的位置。我重新启动设备没有任何效果。 我查看了获取位置here的最佳做法。他们似乎使用与我目前相同的approch。我缺少任何技巧吗?

1 个答案:

答案 0 :(得分:0)

在某些设备中出现此问题的解决方案是尝试从GPS获取位置,如果失败则从WIFI设备获取位置