TecnoAndroid
  • News
  • Android
  • Scienza e Tech
  • Recensioni
  • Gaming
  • Curiosità
  • IA
  • Motori
  • Offerte
  • Telco
  • TV
  • Contatti
TecnoAndroid
  • News
  • Android
  • Scienza e Tech
  • Recensioni
  • Gaming
  • Curiosità
  • IA
  • Motori
  • Offerte
  • Telco
  • TV
TecnoAndroid
TecnoAndroid
  • TecnoAndroid – News e Recensioni Tech
  • Recensioni
  • Scienza e Tecnologia
  • Curiosità
  • Intelligenza Artificiale
  • News
  • Offerte
  • Operatori Telefonici
Copyright 2021 - All Right Reserved
Home Android
AndroidApplicazioni

[Guida] LocationManager: Come ottenere posizione e velocità tramite il GPS Android!

scritto da Redazione 09/09/2013 0 commenti 2 Minuti lettura
Condividi FacebookTwitterLinkedinWhatsappTelegram
25

 

TecnoAndroid · su Google

Seguici su Google e non perdere nulla

Aggiungi TecnoAndroid alle tue fonti preferite su Discover e segui il nostro profilo Google: le notizie tech più importanti arrivano direttamente sul tuo telefono.

Seguici su:DiscoverGoogleGoogle NewsTelegram

Ormai il gps è una parte fondamentale di molte app, dal “dove mi trovo” di Facebook fino alle classiche mappe di Google che ci fanno da navigatore, ma anche per moltissime altre applicazioni che si basano sull’uso del Gps e sulla nostra posizione.

Ma come integrare il tutto in una nostra app?
Su internet girano numerose guide, molte delle quali spesso e volentieri non funzionano perché mancano di funzioni fondamentali, o semplicemente sono poco chiare, quindi abbiamo deciso di fare questa piccola (e semplice) guida che spiega le basi del gps!

Iniziamo col codice:

package com.example.contakm;

import android.app.Activity;
import android.content.Context;
import android.location.GpsStatus;
import android.location.GpsStatus.Listener;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class AndroidGPSTrackingActivity extends Activity {
private LocationManager lm;
private TextView speed,longitude,latitude,averagespeed;
private double averageS;
int count;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

speed=(TextView)findViewById(R.id.textView1);
longitude=(TextView)findViewById(R.id.textView5);
latitude=(TextView)findViewById(R.id.textView4);
averagespeed=(TextView)findViewById(R.id.textView7);

longitude.setText(“”);
latitude.setText(“”);
// …

                           lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

                           // creo il provider gps

                           if ( lm.isProviderEnabled(LocationManager.GPS_PROVIDER) ) {

                                                      startGpsTracking();

                           }else{
//genera l’errore
}

                           }

private void startGpsTracking() {

//mandiamo in listening il tutto

                           lm.addGpsStatusListener(gpsListener);

                           lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 , 5, myLocListener );

}

private Listener gpsListener= new Listener () {
public void onGpsStatusChanged(int status) {

                           switch (status) {

                                                      case GpsStatus.GPS_EVENT_FIRST_FIX:

                                                      Log.d(“tag”, “onGpsStatusChanged First Fix”);

                                                      break;

                                                      case GpsStatus.GPS_EVENT_SATELLITE_STATUS:

                                                      Log.d(“tag”, “onGpsStatusChanged Satellite”);

                                                      break;

                                                      case GpsStatus.GPS_EVENT_STARTED:

                                                      Log.d(“tag”, “onGpsStatusChanged Started”);

                                                      break;

                                                      case GpsStatus.GPS_EVENT_STOPPED:

                                                      Log.d(“tag”, “onGpsStatusChanged Stopped”);

                                                      break;
}
}
};

private LocationListener myLocListener = new LocationListener(){

//questa funzione viene chiamata ogni cambiamento di posizione

                           public void onLocationChanged(Location location) {

                                                      Log.d(“tag”, “onLocationChanged”);
speed.setText(((int)(location.getSpeed()*3.6))+”km/h”);
longitude.setText(location.getLongitude()+””);
latitude.setText(location.getLatitude()+””);
count++;
averageS+=location.getSpeed()*3.6;
averageS/=count;
averagespeed.setText(((int)averageS)+”km/h”);

}
public void onProviderDisabled(String provider) {
Log.d(“tag”, “onProviderDisabled”);
}
public void onProviderEnabled(String provider) {
Log.d(“tag”, “onProviderEnabled”);
}
public void onStatusChanged(String provider, int status, Bundle extras) {

                           Log.d(“tag”, “onStatusChanged”);
}
};

}

 

 

 

Ora non ci resta che analizzare le funzioni principali, il tutto si basa sulla “onLocationChanged” che è un metodo del listener GPS, cosa fa?
Semplice, quello che gli diciamo noi di fare, in questo caso prendere la velocità con il metodo del locationmanager e stamparla in una textview, ovviamente conoscendo i listener sappiamo che non dobbiamo fare altro, il metodo verrà chiamato ogni quando la posizione del GPS cambierà, questo dipende principalmente dalla precisione del GPS, solitamente un buon sensore, ha precisione al metro, quindi per ogni metro percorso ci sarà questo metodo che verrà chiamato in quanto la posizione cambierà e verrà eseguita l’azione a noi scelta.

Altra parte principale in tutti i programmi GPS è la creazione del provider, che in parole povere, sarebbe la connessione al GPS, ovviamente per quello dovremo affidarci principalmente ad Android e settargli i vari listener per quando la posizione cambia o per lo stato del GPS (lo stato è se il gps si trova gia acceso, se è in attesa del segnale o comunque cosa sta facendo in quel momento).

 

Messi insieme i pezzi, si ottiene questa piccola app, che misura latitudine, longitudine ed eventuale velocità, con relativa media, per integrarla nei vostri progetti ovviamente, basta eliminare tutte le TextView e lasciare il codice intatto!

Ovviamente mai dimenticarci di inserire nel Manifest.xml la seguente stringa di permessi:

 

<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />

Se non inseriamo tale permesso la app crasherà nel momento in cui cercherà di accedere al gps!

Per evitare che vi siano errori nella visualizzazione del codice, posto qui il link della versione identata correttamente
 

[via]

AndroidappGPSguidaposizionesviluppo
Condividi FacebookTwitterLinkedinWhatsappTelegram
Redazione
Redazione

Articolo precedenti
Zapier: un enorme aiuto a chi naviga con i GoogleGlass!
prossimo articolo
Google Facebook e Yahoo unite insieme ancora una volta contro gli USA!

Lascia un commento Cancella Risposta

Salva il mio nome, email e sito web in questo browser per la prossima volta che commento.

Ultime news

  • Intelligenza artificiale e lavoro: sta soddisfacendo davvero le persone?

    14/05/2026
  • Grogu non è un Jedi come gli altri: Jon Favreau svela perché

    13/05/2026
  • The Sound of Magic: perché dopo 4 anni è ancora imperdibile

    13/05/2026
  • SumUp e Bancomat: la partnership amplia la rete dei terminali compatibili

    13/05/2026
  • Windows 11: la nuova pagina che rimpiazza ViveTool per sempre

    13/05/2026

2012 – 2026 Tecnoandroid.it – Gestito dalla STARGATE SRLS – P.Iva: 15525681001 Testata telematica quotidiana registrata al Tribunale di Roma CON DECRETO N° 225/2015, editore STARGATE SRLS. Tutti i marchi riportati appartengono ai legittimi proprietari.

Questo articolo potrebbe includere collegamenti affiliati: eventuali acquisti o ordini realizzati attraverso questi link contribuiranno a fornire una commissione al nostro sito.

  • Privacy e Cookie policy
  • FAQ, Disclaimer e Note legali
  • Contatti

🔥 Non perderti nemmeno un'offerta

Le migliori offerte
direttamente su di te

Smartphone, notebook, gadget tech al prezzo più basso.
Unisciti a migliaia di lettori di TecnoAndroid!

Unisciti su Telegram Gratis Seguici su WhatsApp Nuovo
oppure

Ricevi le offerte via email

Iscriviti alla newsletter per non perdere nessuna offerta!

Puoi disiscriverti in qualsiasi momento. Niente spam, solo offerte vere. 🎯

TecnoAndroid
  • Home