package com.example.tracking;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button btnGPS;
TextView tvUbicacion;
TextView tvDistanciaRecorrida;
double distanciaRecorrida = 0;
Location lastLocation = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvUbicacion = (TextView)findViewById(R.id.tvUbicacion);
tvDistanciaRecorrida = (TextView)findViewById(R.id.tvDistanciaRecorrida);
btnGPS = (Button)findViewById(R.id.button);
btnGPS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LocationManager locationManager = (LocationManager) MainActivity.this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
tvUbicacion.setText(""+location.getLatitude()+" "+location.getLongitude());
if (lastLocation != null) {
//Si la distancia recorrida es mayor de 5 metros
if (location.distanceTo(lastLocation) >= 5) {
distanciaRecorrida += location.distanceTo(lastLocation);
}
}
lastLocation = location;
tvDistanciaRecorrida.setText("La distancia recorrida es de:"+distanciaRecorrida);
}
public void onStatusChanged(String provider, int status, Bundle extras){}
public void onProviderEnabled(String provider){}
public void onProviderDisabled(String provider) {}
};
int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
});
int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
if(permissionCheck == PackageManager.PERMISSION_DENIED){
if(ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION)){
}else{
}
}
}
}