Note that there are some explanatory texts on larger screens.

plurals
  1. POMethod onLocationChanged() is not getting a different location
    primarykey
    data
    text
    <pre><code> package com.example.pointkeeper; import java.util.ArrayList; import android.app.Service; import android.content.Context; import android.content.Intent; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.IBinder; import android.util public class ServicePointKeeper extends Service implements LocationListener{ double latitude; double longitude; private LocationManager lm; ArrayList&lt;Point&gt; pt; Point p; private Context context; private Location loc; private final static long TEMPO_DE_ATUALIZACAO = 1 * 60 * 1000 ; private final static float DISTANCIA_DE_ATUALIZACAO = 1 ; public void setGPS(){ Criteria criteria = new Criteria(); criteria.setAccuracy( Criteria.ACCURACY_FINE ); criteria.setAltitudeRequired(true); String provider = lm.getBestProvider(criteria, true); if ( provider == null ) { Log.d("SistemaGPS.ativar", "Nenhum provedor encontrado."); } else { Log.d("SistemaGPS.ativar", "Provedor utilizado: " + provider); //lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, TEMPO_DE_ATUALIZACAO, DISTANCIA_DE_ATUALIZACAO , this); lm.requestLocationUpdates(provider, TEMPO_DE_ATUALIZACAO, DISTANCIA_DE_ATUALIZACAO , this); } } public void updateList(){ p.setLatitude(loc.getLatitude()); p.setLongitude(loc.getLongitude()); pt.add(p); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub loc = location; Toast.makeText(getApplicationContext(), "Lat: " + loc.getLatitude() + "Long: " + loc.getLongitude(), Toast.LENGTH_LONG).show(); updateList(); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub Toast.makeText(getBaseContext(), "Serviço iniciado", Toast.LENGTH_SHORT).show(); this.loc = null; pt = new ArrayList&lt;Point&gt;(); p = new Point(); lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); setGPS(); Toast.makeText(getBaseContext(), "GPS setado", Toast.LENGTH_SHORT).show(); return START_STICKY; } @Override public void onDestroy() { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Serviço parado", Toast.LENGTH_SHORT).show(); Toast.makeText(getApplicationContext(), "Lat: " + latitude + "Long: " + longitude, Toast.LENGTH_SHORT).show(); Intent it = new Intent(getApplicationContext(), ShowPoints.class); it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Bundle b = new Bundle(); b.putParcelableArrayList("points", pt); it.putExtras(b); startActivity(it); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } } </code></pre> <p>So, in this code, my intention is to save a list of Points in an ArrayList of Points that will be use later. But all the points (latitude and longitude) have the same value, once i have the first value, all the others values are the same, its seems like onLocationChanged is never called. Can someone help me?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload