【问题标题】:How to change automatically from GPS_PROVIDER to NETWORK_PROVIDER如何从 GPS_PROVIDER 自动更改为 NETWORK_PROVIDER
【发布时间】:2013-05-22 08:57:59
【问题描述】:

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

其实我用的是这段代码:

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

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

【问题讨论】:

    标签: android android-location


    【解决方案1】:
    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
        }
    

    【讨论】:

      【解决方案2】:

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

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

      有关概览,请查看here 或观看Video。对于融合的位置提供程序代码示例,请在 16:00 收看。

      【讨论】:

        【解决方案3】:

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

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

        查看here 了解更多详情。

        祝你好运

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2017-10-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-06-15
            相关资源
            最近更新 更多