我正在一個Android應用程序,這個想法是,用戶登錄併發送一個表單到數據庫。該表格還包含使用gps的用戶的實際位置。獲取與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;
}
}
這裏的問題是,它並不總是工作: 例如,我打開表單,我按發送,但onlocationchanged不會被調用,直到我等待20秒,有時更多,有時不會被調用,不關心,如果我移動或不。
我想,讓我打開窗體,並自動獲取當前GPS位置的方法...
有時lastknownlocation是空的,這會導致絕對沒有位置。 – WhiteFloater
使用lastKnownLocation作爲起點,然後使用您現有的代碼來偵聽並獲取更好的位置數據。無論如何,我們無法保證您能夠獲得正確或任何位置數據。你只需要調整你的應用來處理它。 –