如何检查当前的Android设备是否具有Google的位置服务?

时间:2012-07-27 01:10:00

标签: android location locationmanager

众所周知,某些Android手机没有Google服务,例如华为,中兴和三星设备,因此在使用android.location.LocationManager并尝试使用NetworkProvider请求当前位置时,它始终没有响应。 GPSProvider(“gps”)工作正常,但内部需要花费太多时间。所以我现在正在使用第三方位置提供商,这可能不足以作为备份计划。

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

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

谢谢:)

2 个答案:

答案 0 :(得分:2)

最后我使用以下策略:

  1. 开始与Google和第三方提供商定位,并等到提供商返回(或超时)。

  2. 检查结果,如果Google的服务失败,请在偏好设置中添加一个布尔标志,以表明此设备中没有Google位置服务,如果设置了该标志,则绝不会尝试使用Google的位置服务。

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

答案 1 :(得分:0)

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

public List<String> getProviders (boolean enabledOnly)

也许你可以使用它?