如何从GPS_PROVIDER自动更改为NETWORK_PROVIDER

时间:2013-05-22 08:57:59

标签: android android-location

我是否可以使用任何代码,因此我无需自行实施以自动从GPS_PROVIDER更改为NETWORK_PROVIDER

实际上我使用这段代码:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

但我想做以下事项:
尝试使用GPS,只要它不可用就使用NETWORK_PROVIDER。但是当GPS可用时切换到它。当GPS丢失时,切换回NETWORK_PROVIDER

4 个答案:

答案 0 :(得分:2)

Location loc =locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);    
    if(loc == null)
    {
        loc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

        if(loc != null)
        {
            //do stuff on network provider
        }

    } else {
        // do stuff on gps provider
    }

答案 1 :(得分:1)

您应该查看Google Play服务中新的融合位置提供商。它在Google IO 2013上展示。

它消除了选择某个LocationProvider的麻烦,提供了更好的结果等等。

如需概述,请查看here或观看Video。对于融合位置提供商代码示例,请在16:00收听。

答案 2 :(得分:1)

我会建议一个更好的选择,尝试使用Criteria选择最佳的Provider。它将自动切换为最佳提供商。

String provider = lm.getBestProvider(criteria, true);

查看here了解更多详情。

祝你好运

答案 3 :(得分:0)

使用提到的here的locationmanager.getProviders。 这样,每次输入您的位置监听器时,您都可以从可用的提供商处选择您的位置。