具有禁用位置服务的Android Fused Location Provider

时间:2013-11-18 09:47:58

标签: android geolocation google-play-services

我在应用中实现了融合位置提供程序。当我使用已禁用的位置服务启动应用程序时,请根据Google的代码示例正确连接failes并显示相应的错误对话框。当我现在离开应用程序并重新输入时,再次调用connect()。即使仍然禁用了位置服务,也会调用onConnected()回调方法,而不是onConnectionFailed()回调。有没有人看过这个,并找到了解决方案?即使在重新启动时创建新的LocationClient也无济于事。只要应用程序刚刚被发送到后台并且没有真正关闭(使用正在运行的活动的finish()),我就不会再次收到消息。

1 个答案:

答案 0 :(得分:0)

这确实是一种奇怪的行为,我可以建议一种不同的方法来检查粗略的位置可用性,请尝试以下方法:

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。