查找当前位置,如谷歌地图

时间:2013-05-29 03:02:23

标签: android google-maps location

我有一个需要用户当前位置的应用。在应用程序中,我已经注册了两个位置提供商来监听位置,另外我也检查了最后的已知位置。但该应用程序始终不会收到该位置。 我今天发现的令人惊讶的事情是,

GPS已关闭

但无线网络的位置已开启。

我打开谷歌地图,我可以看到它如此准确地显示当前位置。但是当我打开我的应用程序时,它无法获得位置。

我很惊讶看到这一点,我认为谷歌地图正在做一些接收位置而不是我做的事情。

以下是我注册位置的方式

locationManager = (LocationManager) this
            .getSystemService(Context.LOCATION_SERVICE);
    Location location = null;
    try {
        locationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 10, 100, this);

        Location location1 = locationManager
                .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        if (location1 != null)
            location = location1;
        Log.v(TAG, "Network listener Enabled");

    } catch (RuntimeException ee) {
        // TODO: handle exception
        Log.e(TAG, "Network Providers Disabled");

    }

    try {
        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 10, 100, this);

        Location location1 = locationManager
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
        Log.v(TAG, "GPS listener enabled");
        if (location1 != null)
            location = location1;
    } catch (RuntimeException e) {
        Log.e(TAG, "GPS not available");

    }

我不知道是否还有其他需要做的事情。请帮帮我。

1 个答案:

答案 0 :(得分:1)

是的,我也在我的应用程序中表明了这一点......但不幸的是我们不知道它们的实现;)。如果您使用网络提供商,我认为通过网络检索位置的整个初始化过程是新的。我确信GoogleMaps会缓存或正在检查后台服务中的位置,以便您立即获得位置。

所以你应该做一个后台服务,它会间隔地检查位置并缓存位置。

顺便说一句,这就是2013年新的定位方式:location api new