众所周知,某些Android手机没有Google服务,例如华为,中兴和三星设备,因此在使用android.location.LocationManager并尝试使用NetworkProvider请求当前位置时,它始终没有响应。 GPSProvider(“gps”)工作正常,但内部需要花费太多时间。所以我现在正在使用第三方位置提供商,这可能不足以作为备份计划。
问题是我不想等待超时期限并在设备没有Google服务时应用备份,在我的应用程序初始化时有没有办法检测到这一点?
我在谷歌服务响应之后设置了一个标志,我想知道是否有替代方案。
谢谢:)
答案 0 :(得分:2)
最后我使用以下策略:
开始与Google和第三方提供商定位,并等到提供商返回(或超时)。
检查结果,如果Google的服务失败,请在偏好设置中添加一个布尔标志,以表明此设备中没有Google位置服务,如果设置了该标志,则绝不会尝试使用Google的位置服务。
几天后,再次执行上述步骤以重新检查。
答案 1 :(得分:0)
这是一个很好的问题。我从来没有尝试过。但是LocationManager上有一个方法:
public List<String> getProviders (boolean enabledOnly)
也许你可以使用它?