Servicio de Android que no recibe Actualizaciones de ubicación

Intentando obtener LocationUpdates en mi servicio, sin embargo, no parece que se dispare el LocationListener.

Mi servicio comienza un hilo, que entonces los bucles con un Handler.postDelayed () – que usé originalmente el sueño (30000), sin embargo pensé que esto pudo haber estado previniendo el locationUpdates. Todo el servicio hace es lanzar este hilo – y onStartCommand devuelve STICKY para mantenerlo en ejecución:

public class TST extends Thread { final int DefaultNetworkTick = 120000; // 2 minutes final int DefaultLocationTick = 20000; //600000; boolean CustomLocationUpdateTick = false; // If the network requests faster updates int CustomLocationUpdateTickMs = 600000; // Default 10 minutes public boolean kill = false; public Context context; Handler handler = new Handler(); Date nextNetworkReadTick; @Override public void run() { Log.i("TST", "Start run() iteration"); // Set the ticks to the appropriate values // Network gets read every 2 minutes nextNetworkReadTick = new Date(); nextNetworkReadTick.setTime(nextNetworkReadTick.getTime() + DefaultNetworkTick); Log.i("TST", "Set next Network tick to " + nextNetworkReadTick.toString()); Looper.prepare(); Log.i("TST", "Performing location update setup..."); SetupLocationListenerDefault(); handler.postDelayed(runFunc, 2000); Looper.loop(); } // We do our networking and stuff in here public Runnable runFunc = new Runnable(){ public void run() { Log.i("TST", "run() iteration"); if( new Date().after(nextNetworkReadTick) ) { // Set next tick nextNetworkReadTick = new Date(); nextNetworkReadTick.setTime(nextNetworkReadTick.getTime() + DefaultNetworkTick); UpdateNetwork(); } handler.postDelayed(runFunc, 1000); } }; private void UpdateNetwork() { // TODO Auto-generated method stub } LocationManager locMgr; PendingIntent locationUpdateIntentPending; Intent locationUpdateIntent; LocationListener locationListener = new LocationListener() { @Override public void onLocationChanged(Location arg0) { // TODO Auto-generated method stub Log.i("TST", "OnLocationChanged: " + arg0.toString()); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub Log.i("TST", "OnProviderDisabled: " + provider); } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub Log.i("TST", "OnProviderEnabled: " + provider); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub Log.i("TST", "OnStatusChanged"); } }; private void SetupLocationListenerDefault() { // Reset location manager if( locMgr != null ) { locMgr.removeUpdates(locationListener); locMgr = null; } locMgr = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); String provider = locMgr.getBestProvider(criteria, true); locMgr.requestLocationUpdates(provider, DefaultLocationTick, 0, locationListener); } } 

Resulta que el código funciona bien. Reiniciado mi teléfono y comenzó a recibir actualizaciones – parece que Android se había quedado atrapado en alguna parte!

  • Intervalo de actualización en requestLocationUpdates
  • ¿Es posible saber mi ubicación vino de gps o glonass?
  • ¿Cuál es la diferencia para obtener la ubicación utilizando el Administrador de ubicaciones y el Proveedor de ubicaciones fusionadas Api?
  • Uso de GoogleApiClient + LocationServices sin actualizar
  • ¿Cómo burlar la ubicación durante una presentación en un dispositivo real?
  • La API de localización de servicios de Google Play / setSmallestDisplacement no funciona
  • ¿Cómo medir la fuerza de la señal GPS en Android?
  • ¿Recordatorio / evento basado en la ubicación de Android?
  • Incompatibilidad de Google Play Services
  • ¿Cómo puedo decidir qué intervalo usar para requestLocationUpdates?
  • GetLastKnownLocation de NETWORK_PROVIDER en el teléfono devuelve null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.