Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 查找GPS_提供商和网络_提供商同时获得的位置_Android_Locationmanager_Location Based Service - Fatal编程技术网

Android 查找GPS_提供商和网络_提供商同时获得的位置

Android 查找GPS_提供商和网络_提供商同时获得的位置,android,locationmanager,location-based-service,Android,Locationmanager,Location Based Service,我一直在尝试查找GPS\u提供商和Network\u提供商每5分钟获取的位置,并在同一时间为在任何特定时间获取的两个值设置时间戳 我尝试使用下面给出的定位策略 LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListe

我一直在尝试查找
GPS\u提供商
Network\u提供商
每5分钟获取的位置,并在同一时间为在任何特定时间获取的两个值设置时间戳

我尝试使用下面给出的定位策略

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 0, locationListener)
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,300000, 0, locationListener)
但是在这里,如果自上次位置更新以来的时间大于
通知间隔
,位置管理器将调用侦听器的
onLocationChanged()
方法

每5分钟后,
GPS\u提供程序
Network\u提供程序
生成的值之间会产生一些时间戳差异。是否有任何方法可以让我找到
GPS\u提供程序
Network\u提供程序
同时生成的位置

例如:

现在:
GPS\u提供者
(纬度,长)在09:35:12,
Network\u提供者
(纬度,长)在09:35:14

我需要:
GPS\u提供商
(lat,long)在09:35:12,
Network\u提供商
(lat,long)在09:35:12

简言之,不需要。
location api不能以同步方式工作,这意味着您无法保证何时才能获得更新。您提供的时间范围表示更新之间的最大间隔。
话虽如此,您可以以较低的时间间隔(例如50ms)启动更新,并获得一组更新,按时间戳的第二个对它们进行排序,然后获得具有相同值的更新。

更新


您可以使用getLastKnownLocation方法获取提供商知道的最后一个位置,检查文档。

我做了一些研究,但也没有运气。只是想知道在android api中是否还有其他类可以让我们手动知道当前位置,而不必考虑位置的变化。