ultima oreo novedades descargar cual actualizar android service gps location

oreo - El servicio Android no recibe actualizaciones de ubicación



cual es la ultima version de android 2018 (1)

Resulta que el código funciona bien. Reinicié mi teléfono y comencé a recibir actualizaciones. ¡Parece que Android se había quedado atascado en alguna parte!

Sin embargo, al tratar de obtener LocationUpdates en mi Servicio, parece que nunca se dispara el LocationListener.

Mi servicio inicia un hilo, que luego realiza un bucles con un Handler.postDelayed () - Originalmente utilicé sleep (30000), sin embargo, pensé que esto podría haber estado impidiendo la ubicaciónUpdates. Todo lo que hace el servicio es iniciar este hilo, y onStartCommand devuelve STICKY para que siga funcionando.

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); } }