[英]get gps location with android - not always working
我正在開發一個android應用程序,其想法是用戶登錄並將表單發送到數據庫。 該表格還包含使用gps的用戶的實際位置。
這是我正在使用的代碼:
Oncreate->
LocationManager locationManager = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, locationListener);
然后上課->
class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
long variance;
variance = age_minutes(loc);
if (variance < 1) {
Log.v("asdf","we are inside" + variance);
posH.longitude = String.valueOf(loc.getLongitude());
Log.v("asdf", posH.longitude);
posH.latitude = String.valueOf(loc.getLatitude());
Log.v("asdf", posH.latitude);
posH.valid = true;
} else {
Log.v("asdf","we are outside" + variance);
posH.valid = false;
}
}
這個問題是,它並不總是有效:例如,我打開表單,按send鍵,但直到我等待20秒才調用onlocationchanged,有時甚至不調用,有時不調用,如果我移動或不。
我想要一個讓我打開表單並自動獲取當前gps位置的方法...
您可以使用從最后一次知道的位置開始,直到獲得更多當前數據為止。
Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
從Android定位策略 :
從移動設備獲取用戶位置可能很復雜。 位置讀數(無論來源如何)可能包含錯誤且不准確,原因有多種。 用戶位置中的一些錯誤源包括:
大量的定位源GPS,Cell-ID和Wi-Fi均可為用戶定位提供線索。 確定要使用和信任的是權衡准確性,速度和電池效率的問題。
用戶移動由於用戶位置發生變化,因此您必須經常重新估算用戶位置來解決移動問題。
變化的准確性來自每個位置來源的位置估計的准確性不一致。 10秒鍾前從一個來源獲得的位置可能比從另一個或相同來源獲得的最新位置更准確。 這些問題可能使得難以獲得可靠的用戶位置讀數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.