Usar GPStracker en Android

Hola aquí les dejo las 2 clases que he usado para hacer funcionar el GPS en Android está sacado de este enlace:

public class GPSTracker extends Service implements LocationListener{

private final Context context;

boolean isGPSEnabled = false;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;

Location location;

double latitude;
double longitude;

private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;
private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1;

protected LocationManager locationManager;

public GPSTracker(Context context) {
this.context = context;
getLocation
();
}

public Location getLocation() {
try {
locationManager
= (LocationManager) context.getSystemService(LOCATION_SERVICE);

isGPSEnabled
= locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

isNetworkEnabled
= locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

if(!isGPSEnabled && !isNetworkEnabled) {

} else {
this.canGetLocation = true;

if (isNetworkEnabled) {

locationManager
.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES
,
MIN_DISTANCE_CHANGE_FOR_UPDATES
, this);

if (locationManager != null) {
location
= locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

if (location != null) {

latitude
= location.getLatitude();
longitude
= location.getLongitude();
}
}

}

if(isGPSEnabled) {
if(location == null) {
locationManager
.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES
,
MIN_DISTANCE_CHANGE_FOR_UPDATES
, this);

if(locationManager != null) {
location
= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if(location != null) {
latitude
= location.getLatitude();
longitude
= location.getLongitude();
}
}
}
}
}

} catch (Exception e) {
e
.printStackTrace();
}

return location;
}


public void stopUsingGPS() {
if(locationManager != null) {
locationManager
.removeUpdates(GPSTracker.this);
}
}

public double getLatitude() {
if(location != null) {
latitude
= location.getLatitude();
}
return latitude;
}

public double getLongitude() {
if(location != null) {
longitude
= location.getLongitude();
}

return longitude;
}

public boolean canGetLocation() {
return this.canGetLocation;
}

public void showSettingsAlert() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);

alertDialog
.setTitle("GPS is settings");

alertDialog
.setMessage("GPS is not enabled. Do you want to go to settings menu?");

alertDialog
.setPositiveButton("Settings", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
context
.startActivity(intent);
}
});

alertDialog
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog
.cancel();
}
});

alertDialog
.show();
}

@Override
public void onLocationChanged(Location arg0) {
// TODO Auto-generated method stub
this.location = location;
getLatitude
();
getLongitude
();
}

@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub

}

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

}

Y esta es la clase principal:

public class MainActivity extends Activity {

GPSTracker gps;



@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

gps
= new GPSTracker(MainActivity.this);

if (gps.canGetLocation()) {
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
Log.v("Your LOCATION is -" + "Lat:", latitude + "Long: " + longitude );
Toast.makeText(
getApplicationContext
(),
"Your LOCATION is -nLat: " + latitude + "nLong: "
+ longitude, Toast.LENGTH_LONG).show();
} else {
gps
.showSettingsAlert();
}





}
}

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Tomas Gonzalez
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
A %d blogueros les gusta esto: