Android Open Source - bodyguard G P S Tracker






From Project

Back to project page bodyguard.

License

The source code is released under:

GNU General Public License

If you think the Android project bodyguard listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.bodyguard;
/*from  w w w .j av a  2s . co m*/
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;
import android.widget.Toast;

public class GPSTracker extends Service implements LocationListener {

    private final Context     mContext;

    // flag for GPS status
    boolean       isGPSEnabled        = false;

    // flag for network status
    boolean       isNetworkEnabled    = false;

    // flag for GPS status
    boolean       canGetLocation      = false;

    Location      location      = null;   // location
    double        latitude;               // latitude
    double        longitude;              // longitude

    // The minimum distance to change Updates in meters
    private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10;     // 10
                         // meters

    // The minimum time between updates in milliseconds
    private static final long MIN_TIME_BW_UPDATES       = 1000 * 60 * 1; // 1
                         // minute

    // Declaring a Location Manager
    protected LocationManager locationManager;

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

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

    // getting GPS status
    isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

    // getting network status
    isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

    if (!isGPSEnabled && !isNetworkEnabled) {
        // no network provider is enabled
    } else {
        this.canGetLocation = true;
        if (isNetworkEnabled) {
      locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES,
        MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
      Log.d("Network", "Network Enabled");
      if (locationManager != null) {
          location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
          if (location != null) {
        latitude = location.getLatitude();
        longitude = location.getLongitude();
          }
      }
        }
        // if GPS Enabled get lat/long using GPS Services
        if (isGPSEnabled) {
      if (location == null) {
          locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES,
            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
          Log.d("GPS", "GPS Enabled");
          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;
  }

    /**
     * Stop using GPS listener Calling this function will stop using GPS in your
     * app
     * */
    public void stopUsingGPS()
  {
      if (locationManager != null) {
    locationManager.removeUpdates(GPSTracker.this);
      }
  }

    /**
     * Function to get latitude
     * */
    public double getLatitude()
  {
      if (location != null) {
    latitude = location.getLatitude();
      }

      // return latitude
      return latitude;
  }

    /**
     * Function to get longitude
     * */
    public double getLongitude()
  {
      if (location != null) {
    longitude = location.getLongitude();
      }

      // return longitude
      return longitude;
  }

    /**
     * Function to check GPS/wifi enabled
     * 
     * @return boolean
     * */
    public boolean canGetLocation()
  {
      return this.canGetLocation;
  }

    /**
     * Function to show settings alert dialog On pressing Settings button will
     * lauch Settings Options
     * */
    public void showSettingsAlert()
  {
      AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);

      // Setting Dialog Title
      alertDialog.setTitle("GPS is settings");

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

      // On pressing Settings button
      alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which)
        {
      Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
      mContext.startActivity(intent);
        }
      });

      // on pressing cancel button
      alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which)
        {
      dialog.cancel();
        }
      });

      // Showing Alert Message
      alertDialog.show();
  }

    @Override
    public void onLocationChanged(Location location)
  {
      if (location != null) {
    Toast.makeText(mContext, "Your New Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG);
    this.longitude = location.getLatitude();
    this.latitude = location.getLongitude();


      }
  }

    @Override
    public void onProviderDisabled(String provider)
  {
  }

    @Override
    public void onProviderEnabled(String provider)
  {
  }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras)
  {
  }

    @Override
    public IBinder onBind(Intent arg0)
  {
      return null;
  }
}




Java Source Code List

.BodyGuardActivity.java
com.example.bodyguard.AlertDialogManager.java
com.example.bodyguard.CommonUtilities.java
com.example.bodyguard.ConnectionDetector.java
com.example.bodyguard.CustomGeoCoding.java
com.example.bodyguard.DirectionsJSONParser.java
com.example.bodyguard.GPSTracker.java
com.example.bodyguard.GcmBroadcastReceiver.java
com.example.bodyguard.GcmIntentService.java
com.example.bodyguard.MainActivity.java
com.example.bodyguard.PlaceAutoComplete.java
com.example.bodyguard.PlaceDetails.java
com.example.bodyguard.Place.java
com.example.bodyguard.PlacesAutoCompleteAdapter.java
com.example.bodyguard.PlacesList.java
com.example.bodyguard.PollQRT.java
com.example.bodyguard.ResultActivity.java
com.example.bodyguard.SendLocationActivity.java
com.example.bodyguard.SplashScreen.java
com.example.bodyguard.StartActivity.java
com.example.bodyguard.UserInformation.java
com.example.bodyguard.WakeLocker.java