Advertisement
Guest User

eppinator

a guest
Feb 11th, 2010
392
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.98 KB | None | 0 0
  1. public class GetGpsLocation extends Activity {
  2.     private LocationManager lm;
  3.     private TextView tv;
  4.     private long timeStart, timeEnd = 0;
  5.     private int interval = 30000;
  6.     private boolean useGps, useNetwork = false;
  7.  
  8.     /** Called when the activity is first created. */
  9.     @Override
  10.     public void onCreate(Bundle savedInstanceState) {
  11.         super.onCreate(savedInstanceState);
  12.         //Toast.makeText(this,"GetGpsLocation invoked", Toast.LENGTH_LONG).show();
  13.         setContentView(R.layout.main);
  14.         TextView tv = (TextView) findViewById(R.id.gpsView);
  15.         tv.append("\nGetGpsLocation invoked\n");
  16.        
  17.         useGps = true;
  18.         useNetwork = false;
  19.        
  20.         lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  21.         lm.addGpsStatusListener(listener);
  22.  
  23.         }
  24.     public void onDestroy(){
  25.         super.onDestroy();
  26.         lm.removeGpsStatusListener(listener);
  27.         removeListeners();
  28.        
  29.     }
  30.  
  31.     private void addListeners(){
  32.         timeStart = System.currentTimeMillis();
  33.         if(useGps)
  34.             lm.requestLocationUpdates(lm.GPS_PROVIDER, interval, 0, gpsLocationListener);
  35.         if(useNetwork)
  36.             lm.requestLocationUpdates(lm.NETWORK_PROVIDER, interval, 0, networkLocationListener);
  37.         Toast.makeText(this,"Listeners added", Toast.LENGTH_LONG).show();
  38.     }
  39.    
  40.  
  41.     private void removeListeners(){
  42.         if(useGps)
  43.             lm.removeUpdates(gpsLocationListener);
  44.         if(useNetwork)
  45.             lm.removeUpdates(networkLocationListener);
  46.         Toast.makeText(this,"Listeners removed", Toast.LENGTH_LONG).show();
  47.     }
  48.    
  49.     private final LocationListener gpsLocationListener = new LocationListener() {
  50.           public void onLocationChanged(Location l) {
  51.               TextView tv = (TextView)findViewById(R.id.gpsView);
  52.               timeEnd = System.currentTimeMillis();
  53.               tv.append("gpsLocation update (time=" + (timeEnd - timeStart) + ")\n   lat=" + l.getLatitude() + " lon=" + l.getLongitude() + " acc=" + l.getAccuracy() + "\n");
  54.           }
  55.  
  56.           public void onProviderDisabled(String provider){
  57.               TextView tv = (TextView)findViewById(R.id.gpsView);
  58.               tv.append("gpsLocationListener provider disabled\n");
  59.           }
  60.           public void onProviderEnabled(String provider) {
  61.               TextView tv = (TextView)findViewById(R.id.gpsView);
  62.               tv.append("gpsLocationListener provider enabled\n");
  63.           }
  64.           public void onStatusChanged(String provider, int status, Bundle extras) {
  65.               TextView tv = (TextView)findViewById(R.id.gpsView);
  66.               tv.append("gpsLocationListener Status changed: " + status + "\n");
  67.           }
  68.     };
  69.    
  70.     private final LocationListener networkLocationListener = new LocationListener() {
  71.       public void onLocationChanged(Location l) {
  72.           TextView tv = (TextView)findViewById(R.id.gpsView);
  73.           timeEnd = System.currentTimeMillis();
  74.           tv.append("networkLocation update (time=" + (timeEnd - timeStart) + ")\n   lat=" + l.getLatitude() + " lon=" + l.getLongitude() + " acc=" + l.getAccuracy() + "\n");
  75.       }
  76.  
  77.       public void onProviderDisabled(String provider){
  78.           TextView tv = (TextView)findViewById(R.id.gpsView);
  79.           tv.append("networkLocationListener provider disabled\n");
  80.       }
  81.       public void onProviderEnabled(String provider) {
  82.           TextView tv = (TextView)findViewById(R.id.gpsView);
  83.           tv.append("networkLocationListener provider enabled\n");
  84.       }
  85.       public void onStatusChanged(String provider, int status, Bundle extras) {
  86.           TextView tv = (TextView)findViewById(R.id.gpsView);
  87.           tv.append("networkLocationListener Status changed: " + status + "\n");
  88.       }
  89.   };
  90.    
  91.    
  92.     private final GpsStatus.Listener listener = new GpsStatus.Listener() {
  93.         public void onGpsStatusChanged(int event) {
  94.             TextView tv = (TextView)findViewById(R.id.gpsView);
  95. //          tv.append("GPS Status Changed: " + event + "\n");
  96.             if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {
  97.                 GpsStatus status = lm.getGpsStatus(null);
  98.                 tv.append("GPS Status Changed: TTFF = " + status.getTimeToFirstFix() + "\n");
  99.                 // Check number of satellites in list to determine fix state
  100.             }
  101.             else if (event == GpsStatus.GPS_EVENT_STARTED) {
  102.                 tv.append("GPS Status Changed: GPS_EVENT_STARTED (" + event + ")\n");
  103.             }
  104.             else if (event == GpsStatus.GPS_EVENT_STOPPED) {
  105.                 tv.append("GPS Status Changed: GPS_EVENT_STOPPED (" + event + ")\n");
  106.             }
  107.            
  108.         }
  109.     };
  110.    
  111.     @Override
  112.     public boolean onCreateOptionsMenu(Menu menu) {
  113.         super.onCreateOptionsMenu(menu);
  114.        
  115.         menu.add(Menu.NONE, 0, 0, "Start");
  116.         menu.add(Menu.NONE, 1, 1, "Stop");
  117.         return true;
  118.     }
  119.    
  120.     public boolean onOptionsItemSelected(MenuItem item){
  121.         switch (item.getItemId()) {
  122.         case 0:
  123.             addListeners();
  124.             break;
  125.         case 1:
  126.             removeListeners();
  127.         }
  128.         return false;
  129.     }
  130.    
  131.    
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement