【问题标题】:Android Fused Location Provider with disabled location services带有禁用位置服务的 Android Fused Location Provider
【发布时间】:2013-11-18 09:47:57
【问题描述】:
我在一个应用中实现了融合位置提供程序。当我使用禁用的位置服务启动应用程序时,连接正确失败并显示相应的错误对话框,基于来自 Google 的代码示例。当我现在离开应用程序并重新进入它时,再次调用 connect()。即使定位服务仍处于禁用状态,也会调用 onConnected() 回调方法,而不是 onConnectionFailed() 回调。有没有人也看到了这一点并找到了解决方案?即使在重新启动时创建新的 LocationClient 也无济于事。只要应用程序刚刚被发送到后台并且没有真正关闭(使用正在运行的活动的完成()),我就不会再次收到消息。
【问题讨论】:
标签:
android
geolocation
google-play-services
【解决方案1】:
这确实是一种奇怪的行为,我可以建议一种不同的方法来检查粗略的位置可用性,尝试以下方法:
public boolean isCoarseLocationEnabled(Context context){
if (context() != null)
{
LocationManager manager = (LocationManager) context.getSystemService(android.content.Context.LOCATION_SERVICE);
if ( !manager.isProviderEnabled( LocationManager.NETWORK_PROVIDER ) ) {
return false;
}
return true;
}
}
如果粗略位置可用,则返回 true,否则返回 false。