[英]Not getting user location using GPS_PROVIDER / NETWORK_PROVIDER
[英]Finding the location obtained by GPS_Provider and Network_Provider at the same time stamp
我一直在嘗試每5分鍾查找一次GPS_Provider
和Network_Provider
獲得的位置,並在同一時間戳上查找在任何特定時間獲得的兩個值。
我嘗試使用以下給定的位置策略
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)
但是在這里,如果自上次位置更新以來的時間大於notificationInterval
則位置管理器將調用偵聽器的onLocationChanged()
方法。
這使我每隔5分鍾在GPS_Provider
和Network_Provider
生成的值之間存在一些時間戳差異。有什么辦法可以找到GPS_Provider
和Network_Provider
在同一時間戳下生成的位置。
例:
現在: GPS_Provider
(緯度,經度)在09: GPS_Provider
: GPS_Provider
, Network_Provider
(緯度,經度)在09:35:14
我需要: GPS_Provider
(緯度,經度)在09: GPS_Provider
: GPS_Provider
, Network_Provider
(緯度,經度)在09:35:12
簡而言之,沒有。
位置api不能以同步方式工作,這意味着您無法保證何時確切獲得更新。 您提供的時間范圍說明了兩次更新之間的最大間隔。
話雖這么說,您可以以較低的間隔(例如50ms)開始更新,並獲取大量更新,並按時間戳的第二秒對其進行排序,並獲得具有相同值的更新。
您可以使用getLastKnownLocation方法獲取提供者已知的最后位置,請在此處查看文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.