summaryrefslogblamecommitdiff
path: root/client/src/com/macaroon/piztor/GPSTracker.java
blob: 7e89d21dd15a4cf4f57834bf6a7da90cd7401915 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                             








                                          
                                   

                           
                               


                                  
                                                                                          



















                                                                                     
                                                                                



                                                   





                                             

                                             
                                  




                                        

                                                                              
                                                                     
                                                                     


                                                       
                                                                                  


                                                           
                                                                                      
 
                                             







                                                                                                


                                                                             

                                                                           
                                                                                                                 


                                                                                             


                                                                                                                             

                                                  
                                                           

                                                                                  
                                                    



                                                                                                        
                                                                             

                                                                                   
                                                                                                                     


                                                                                                     



                                                                                                                                 


                                                          


                                                       

                                             
                                     
                  
          
 
            




                                                                                     
                                                                        
                  
          
 

                                    


                                        

                                                           

                                 
 

                                     


                                        

                                                             

                                  
 

                                              
            
                           
              


                                            




                                                            
            



                                                                                   
                                                                                     



























                                                                                                   



                                                           


                                                                     

















                                                                                  













                                                                                                                 
  
package com.macaroon.piztor;

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.location.GpsStatus;
import android.os.Bundle;
import android.os.IBinder;
import android.os.SystemClock;
import android.provider.Settings;
import android.util.Log;

public class GPSTracker extends Service implements LocationListener, GpsStatus.Listener {

	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; // 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 * 3; // 10 seconds

	// Declaring a Location Manager
	protected LocationManager locationManager;

	// for GPS satellite status listener
	Location mLastLocation;
	long mLastLocationMillis;
	boolean isGPSFix;


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

	public Location getLocation() {
		try {
			Log.d("getLocation", "Start getting location......");

			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) {
				// 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 Updated");

					if (locationManager != null) {
						location = locationMana