Android:请求位置更新

Posted

技术标签:

【中文标题】Android:请求位置更新【英文标题】:Android: requestLocationUpdates 【发布时间】:2014-06-03 06:11:45 【问题描述】:

我已经设法使用以下方法修复了 android 设备的位置(包括网络提供商和 gps 提供商): locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

但我想同时使用 NETWORK_PROVIDER 和 GPS_PROVIDER 计算手机位置,以便我可以比较每个精度。

有谁知道如何使用 NETWORK_PROVIDER 定位设备一次,然后使用 GPS_PROVIDER 定位设备?

【问题讨论】:

【参考方案1】:

使用 2 个位置监听器

public class MainActivity extends Activity 
    private Location networkLocation = null;
    private Location gpsLocation = null;

    private class NetworkLocationListener implements LocationListener 
        @Override
        public void onLocationChanged(Location location) 
            // if you only want one location
            // if (networkLocation == null)
            networkLocation = location;
            if (gpsLocation != null) 
                // do something
            
        

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) 

        @Override
        public void onProviderEnabled(String provider) 

        @Override
        public void onProviderDisabled(String provider) 
    

    private class GpsLocationListener implements LocationListener 
        @Override
        public void onLocationChanged(Location location) 
            // if you only want one location
            // if (gpsLocation == null)
            gpsLocation = location;
            if (networkLocation != null) 
                // do something
            
        

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) 

        @Override
        public void onProviderEnabled(String provider) 

        @Override
        public void onProviderDisabled(String provider) 
    


【讨论】:

以上是关于Android:请求位置更新的主要内容,如果未能解决你的问题,请参考以下文章

Android O 在打盹模式下前台服务未接收位置更新

从服务访问android位置?

Google 地图 (Android) 中的位置更新率

从服务 Android M 请求位置权限

如何在 Kotlin 中请求 GPS 位置更新

请求单个位置更新,AVD 崩溃