繁体   English   中英

如何从GPS_PROVIDER自动更改为NETWORK_PROVIDER

[英]How to change automatically from GPS_PROVIDER to NETWORK_PROVIDER

有没有我可以使用的代码,所以我不必自己实现它自动从GPS_PROVIDER更改为NETWORK_PROVIDER

实际上我使用这段代码:

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

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

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
    }

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

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

有关概述,请查看此处或观看视频 对于融合位置提供商代码示例,请在16:00收听。

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

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

在这里查看更多详细信息。

祝好运

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM