Sono un nuovo coder Android e ho problemi con la richiesta di aggiornamenti per la mia localizzazione.Come funziona - requestLocationUpdates() + LocationRequest/Listener
Io lavoro con i tutorial da http://developer.android.com/training/location/receive-location-updates.html.
La mia applicazione può gestire le eccezioni, ottenendo correttamente latitudine e longitute, e geocoder può gestire la visualizzazione dell'indirizzo. Ma chiedo la posizione solo una volta o quando la posizione cambia. Mi piacerebbe fare intervalli di tempo. Per ora ho iniziato a implementare il codice dai tutorial e sembra che:
public class MainActivity extends Activity implements
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
LocationListener {
private static final int MILLISECONDS_PER_SECOND = 1000;
public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
private static final long UPDATE_INTERVAL =
MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;
private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
private static final long FASTEST_INTERVAL =
MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;
private TextView tvStatus;
private TextView tvLatitude;
private TextView tvLongitude;
LocationRequest mLocationRequest;
LocationClient mLocationClient;
Location mCurrentLocation;
boolean bNetworkEnabled;
boolean bGPSEnabled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvStatus = (TextView)findViewById(R.id.tvStatus);
tvLatitude = (TextView)findViewById(R.id.tvLatitude);
tvLongitude = (TextView)findViewById(R.id.tvLongitude);
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(UPDATE_INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationClient = new LocationClient(this, this, this);
checkProviders();
}
quindi ci sono già implementate e gli intervalli di richiesta di posizione. Ma nel link che ho dato prima c'è un commento che dovrei usare da qualche parte requestLocationUpdates()
(probabilmente onCreate()
, onStart()
e rimozione di richiesta su onStop()
), ma ho un problema con esso. Quindi, Eclipse mi mostra 3 metodi:
requestLocationUpdates(LocationRequest request, LocationListener listener)
requestLocationUpdates(LocationRequest request, PendingIntent CallbackIntent)
requestLocationUpdates(LocationRequest request, LocationListener listener, Looper looper)
Quindi il primo che penso sia più corretto in questo posto. Cosa devo inserire nello slot LocationListener
? Chiedo aiuto con poche spiegazioni su come funziona.
Esattamente quello che ho incasinato.Grazie. :) –
Quindi so che requestLocationUpdates restituirà la posizione su PendingIntent ma dove posso accedere alla posizione restituita? – geckob
Per chiamare questa richiesta è necessario un corso per implementare LocationUpdates. Questa implementazione ha il metodo OnLocationChanged (Posizione posizione). Qui è dove si accede alla posizione restituita. La classe pubblica MyLocationListener implementa LocationListener {...} – Totalys