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();
}





}
}

0 0 votos
Article Rating
Subscribe
Notify of
guest
0 Comments
Comentarios en línea
Ver todos los comentarios