0

众所周知,部分安卓手机没有谷歌服务,如华为、中兴、三星等设备,所以在使用android.location.LocationManager,尝试通过NetworkProvider请求当前位置时,总是无响应。GPSProvider(“gps”)工作正常,但在里面需要太多时间。因此,我现在使用的第三方位置提供商可能不够准确,无法作为备份计划。

问题是如果设备没有 Google 服务,我不想等待超时并应用备份,有没有办法在我的应用程序初始化时检测到这一点?

我在谷歌服务响应后设置了一个标志,目前没有任何反应,我想知道是否有替代方案。

谢谢 :)

4

2 回答 2

2

最后我使用以下策略:

  1. 开始使用 Google 和第 3 方提供商进行定位,并等待这两个提供商返回(或超时)。

  2. 检查结果,如果 Google 的服务失败,请在首选项中添加一个布尔标志以指示此设备中不提供 Google 位置服务,如果设置了标志,则切勿尝试使用 Google 的位置服务。

  3. 几天后,再次运行上述步骤以重新检查。

于 2012-08-16T03:32:16.497 回答
0

这是个好问题。我从来没有尝试过。但是LocationManager上有一个方法:

public List<String> getProviders (boolean enabledOnly)

也许你可以使用它?

于 2012-07-27T01:32:37.243 回答