Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Classe para trabalhar com GPS que faz uso apenas do provider GPS em sua captura de localização.
package com.auad.gps.service;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class GPSService implements LocationListener{
private Context context;
private LocationManager locationManager;
private Location location;
private static final int DINSTANCIA_MINIMA = 0;
private static final int TEMPO_MINIMO = 0;
public GPSService(Context context) {
this.context = context;
locationManager = (LocationManager) context.getSystemService(context.LOCATION_SERVICE);
//Verificando se o GPS está ligado
boolean isGPSEnable = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(isGPSEnable) {
//Transformando essa classe em um listener de eventor relacionados ao GPS
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, TEMPO_MINIMO, DINSTANCIA_MINIMA, this);
//Adquirindo o último location capturado pelo gps
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
}
/**
* Quando o GPS capturar uma nova localização, esse método será executado e receberá
* como parâmetro esse objeto location capturado.
*/
@Override
public void onLocationChanged(Location location) {
Log.i("GPS-"+location.getProvider(), location.getLatitude() + ", " + location.getLongitude());
this.location = location;
}
/**
* Esse método será chamado quando o GPS for desligado pelo usuário.
*/
@Override
public void onProviderDisabled(String provider) {
if(provider.equals(LocationManager.GPS_PROVIDER)) {
Toast.makeText(context, "Você desabilitou o seu GPS!", Toast.LENGTH_LONG).show();
} else if(provider.equals(LocationManager.NETWORK_PROVIDER)) {
Toast.makeText(context, "Você desabilitou a sua internet!", Toast.LENGTH_LONG).show();
}
}
/**
* Esse método será chamado quando o GPS for ligado pelo usuário.
*/
@Override
public void onProviderEnabled(String provider) {
if(provider.equals(LocationManager.GPS_PROVIDER)) {
Toast.makeText(context, "Você habilitou o seu GPS!", Toast.LENGTH_LONG).show();
} else if(provider.equals(LocationManager.NETWORK_PROVIDER)) {
Toast.makeText(context, "Você habilitou a sua internet!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
public double getLatitude() {
return location.getLatitude();
}
public double getLongitude() {
return location.getLongitude();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment