我是否可以使用任何代码,因此我无需自行实施以自动从GPS_PROVIDER
更改为NETWORK_PROVIDER
?
实际上我使用这段代码:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
但我想做以下事项:
尝试使用GPS,只要它不可用就使用NETWORK_PROVIDER
。但是当GPS可用时切换到它。当GPS丢失时,切换回NETWORK_PROVIDER
。
答案 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的麻烦,提供了更好的结果等等。
答案 2 :(得分:1)
我会建议一个更好的选择,尝试使用Criteria选择最佳的Provider。它将自动切换为最佳提供商。
String provider = lm.getBestProvider(criteria, true);
查看here了解更多详情。
祝你好运答案 3 :(得分:0)
使用提到的here的locationmanager.getProviders。 这样,每次输入您的位置监听器时,您都可以从可用的提供商处选择您的位置。