我需要在Android上獲取用戶的當前位置,我看過一些方法,但他們都似乎矯枉過正。我已經在應用上實施了Google地圖,有沒有簡單的方法來獲取用戶的當前位置?什麼是最簡單的方式來獲取用戶當前位置Android
-4
A
回答
0
請閱讀谷歌有關位置策略。我有一個應用程序與用戶當前的位置,我也用這樣的方式,它的工作非常好:
杉杉我得到的位置,這個類:
// Acquire a reference to the system Location Manager
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, 0, 0, locationListener);
我創建了兩個方法用於接收位置:第一個是NETWORK_PROVIDER,第二個是GPS。
private static final int TWO_MINUTES = 1000 * 60 * 2;
/** Determines whether one Location reading is better than the current Location fix
* @param location The new Location that you want to evaluate
* @param currentBestLocation The current Location fix, to which you want to compare the new one
*/
protected boolean isBetterLocation(Location location, Location currentBestLocation) {
if (currentBestLocation == null) {
// A new location is always better than no location
return true;
}
// Check whether the new location fix is newer or older
long timeDelta = location.getTime() - currentBestLocation.getTime();
boolean isSignificantlyNewer = timeDelta > TWO_MINUTES;
boolean isSignificantlyOlder = timeDelta < -TWO_MINUTES;
boolean isNewer = timeDelta > 0;
// If it's been more than two minutes since the current location, use the new location
// because the user has likely moved
if (isSignificantlyNewer) {
return true;
// If the new location is more than two minutes older, it must be worse
} else if (isSignificantlyOlder) {
return false;
}
// Check whether the new location fix is more or less accurate
int accuracyDelta = (int) (location.getAccuracy() - currentBestLocation.getAccuracy());
boolean isLessAccurate = accuracyDelta > 0;
boolean isMoreAccurate = accuracyDelta < 0;
boolean isSignificantlyLessAccurate = accuracyDelta > 200;
// Check if the old and new location are from the same provider
boolean isFromSameProvider = isSameProvider(location.getProvider(),
currentBestLocation.getProvider());
// Determine location quality using a combination of timeliness and accuracy
if (isMoreAccurate) {
return true;
} else if (isNewer && !isLessAccurate) {
return true;
} else if (isNewer && !isSignificantlyLessAccurate && isFromSameProvider) {
return true;
}
return false;
}
相關問題
- 1. 獲取iPhone當前位置的最簡單方法是什麼?
- 2. 獲取當前用戶的SID的最佳方式是什麼?
- 3. 在android中獲取當前精確位置的最佳方式是什麼?
- 4. Android的最好的方式來獲得當前位置
- 5. 獲取Android用戶的當前位置
- 6. 獲取當前用戶的UserId的最佳方法是什麼?
- 7. 獲取用戶當前位置android
- 8. 獲取mysql_fetch_assoc循環的數據指針當前位置的最簡單方法是什麼?
- 9. 在.NET中獲取當前總CPU負載的最簡單方法是什麼?
- 10. 應用開發:最簡單的方式獲得手機當前位置
- 11. 獲取當前操作系統的最佳方式是什麼?
- 12. 什麼是獲取當前列表順序的最佳方式?
- 13. 獲取當前位置android
- 14. Android獲取當前位置
- 15. android獲取當前位置
- 16. 什麼是獲取用戶位置服務器端的最佳方式
- 17. 什麼是最簡單的方式來獲取字符串中字符位置的行號?
- 18. PHP什麼是最簡單的創建用戶的方式?
- 19. 什麼是當前設置第三方cookie的最佳方式?
- 20. 獲取線段的方位(角度)的最簡單方法是什麼?
- 21. Android:使WebView顯示位圖的最簡單方法是什麼?
- 22. 獲得前x個字符的最簡單方法是什麼?
- 23. 如何以編程方式獲取android中的當前位置?
- 24. 獲取Android中當前位置方向的位置
- 25. 如何獲取用戶當前位置
- 26. osmdroid獲取當前用戶位置
- 27. 什麼是最簡單的方法來創建Django的形式
- 28. 獲取發送郵件的MessageID最簡單/最乾淨的方式是什麼?
- 29. 什麼是最簡單的方式來製作座標列表?
- 30. JPanel:什麼是最簡單的方式來顯示圖像?
爲 – 2014-10-01 09:21:11
使用的LocationManager類,你可以發佈一個例子請:之後,我用這個類有什麼更好的位置檢查?我試過但沒有成功 – Signo 2014-10-01 09:22:35