Start Service:onLocationChanged никогда не вызывается, даже после запроса обновлений
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent i = new Intent(this, LocationService.class);
pi = PendingIntent.getService(this, 0, i,
PendingIntent.FLAG_UPDATE_CURRENT);
am.cancel(pi);
am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(), 30*1000, pi);
Услуги:
public class LocationService extends Service implements LocationListener {
public static double curLat = 0.0;
public static double curLng = 0.0;
private LocationManager mgr;
private String best;
private Location location;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mgr = (LocationManager) getSystemService(LOCATION_SERVICE);
best = LocationManager.NETWORK_PROVIDER;
location = mgr.getLastKnownLocation(best);
if (location != null) {
dumpLocation(location);
mgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
5 * 1000, 0, this);
}
return START_NOT_STICKY;
}
}
private void dumpLocation(Location l) {
SimpleDateFormat s = new SimpleDateFormat("dd/MM/yyyy:hh:mm:ss",
Locale.ENGLISH);
String format = s.format(l.getTime());
//The above time is always 21/03/2013:09:53:41 which is more than a week old
curLat = l.getLatitude();
curLng = l.getLongitude();
}
@Override
public void onLocationChanged(Location location) {
//This never seems to be called
dumpLocation(location);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
Каждые 30 секунд служба вызывается, но requestLocationUpdates
никогда не кажется для звонка onLocationChanged
. И когда я проверил время lastKnownLocation
его неделю.
Приложения, такие как foursquare, local, maps etc, отображают текущее местоположение с отключенным GPS.
Что мне не хватает?
На стороне: обновление местоположения может возвращать нулевое местоположение. Обязательно справитесь с этим ... – Warpzit
Вы тестируете устройство или эмулятор? ваш GPS включен? вы проверяете его снаружи, как среда открытого неба? – Lucifer
@Warpzit, да. Но я получаю место. Что я дам и получаю отметку времени. –