歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android獲取解析GPS數據

Android獲取解析GPS數據:

  1. package title.navi.Location.Impl;  
  2.   
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Date;  
  5.   
  6. import org.apache.http.HttpResponse;  
  7. import org.apache.http.client.methods.HttpGet;  
  8. import org.apache.http.impl.client.DefaultHttpClient;  
  9. import org.apache.http.util.EntityUtils;  
  10.   
  11.   
  12. import android.content.Context;  
  13. import android.location.Location;  
  14. import android.location.LocationListener;  
  15. import android.location.LocationManager;  
  16. import android.location.GpsStatus.NmeaListener;  
  17. import android.location.LocationProvider;  
  18. import android.os.Bundle;  
  19. import android.util.Log;  
  20. import android.widget.Toast;  
  21.   
  22. public class NaviLocation {  
  23.   
  24.     Context m_ctx;  
  25.     LocationManager m_locationManager;  
  26.     Location m_location;  
  27.     private boolean m_nmea_started = false;  
  28.       
  29.     private NaviApp m_naviApp;  
  30.   
  31.     class LocationDebug {  
  32.   
  33.     }  
  34.   
  35.     public NaviLocation(Context ctx, NaviApp naviApp) {  
  36.         m_ctx = ctx;  
  37.         m_naviApp = naviApp;  
  38.     }  
  39.   
  40.     /** 
  41.      * 初始化 
  42.      *  
  43.      * @return 
  44.      */  
  45.     public int initialize() {  
  46.         // 創建LocationManger對象   
  47.         m_locationManager = (LocationManager) m_ctx  
  48.                 .getSystemService(Context.LOCATION_SERVICE);  
  49.           
  50.         // 獲取最後一次GPS定位的位置並上傳   
  51.         m_location = m_locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);  
  52.           
  53.         ifnull != m_location )  
  54.         {  
  55.             UploadPos(m_location);  
  56.         }  
  57.           
  58.           
  59.         // 綁定監聽,有4個參數   
  60.         // 參數1,設備:有GPS_PROVIDER和NETWORK_PROVIDER兩種   
  61.         // 參數2,位置信息更新周期,單位毫秒   
  62.         // 參數3,位置變化最小距離:當位置距離變化超過此值時,將更新位置信息   
  63.         // 參數4,監聽   
  64.         // 備注:參數2和3,如果參數3不為0,則以參數3為准;參數3為0,則通過時間來定時更新;兩者為0,則隨時刷新   
  65.         // 1秒更新一次,或最小位移變化超過1米更新一次;   
  66.         // 注意:此處更新准確度非常低,推薦在service裡面啟動一個Thread   
  67.         // 在run中sleep(10000);然後執行handler.sendMessage(),更新位置   
  68.         m_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,  
  69.                 0, mLocationListener);  
  70.   
  71.   
  72.         return 0;  
  73.     }  
  74.   
  75.     /** 
  76.      * 釋放 
  77.      *  
  78.      * @return 
  79.      */  
  80.     public int uninitialize() {  
  81.         return 0;  
  82.     }  
  83.   
  84.     /** 
  85.      * 開始nmea接收標志 
  86.      */  
  87.     public void start_receive_nmea() {  
  88.         m_nmea_started = true;  
  89.     }  
  90.   
  91.     // LocationListener,位置監聽,監聽位置變化,監聽設備開關與狀態   
  92.     LocationListener mLocationListener = new LocationListener() {  
  93.   
  94.         /** 
  95.          * 位置信息變化時觸發 
  96.          */  
  97.         @Override  
  98.         public void onLocationChanged(Location location) {  
  99.   
  100.             // 上傳當前位置   
  101.             if (location != null) {  
  102.                 m_location = location;  
  103.                 UploadPos(location);  
  104.             }  
  105.         }  
  106.   
  107.         /** 
  108.          * GPS禁用時觸發 
  109.          */  
  110.         @Override  
  111.         public void onProviderDisabled(String provider) {  
  112.         }  
  113.   
  114.         /** 
  115.          * GPS開啟時觸發 
  116.          */  
  117.         @Override  
  118.         public void onProviderEnabled(String provider) {  
  119.             // Location location=lm.getLastKnownLocation(provider);   
  120.         }  
  121.   
  122.         /** 
  123.          * GPS狀態變化時觸發 
  124.          */  
  125.         @Override  
  126.         public void onStatusChanged(String provider, int status, Bundle extras) {  
  127.             switch (status) {  
  128.             // GPS狀態為可見時   
  129.             case LocationProvider.AVAILABLE:  
  130.                 Log.i("NavJava""當前GPS狀態為可見狀態");  
  131.                 break;  
  132.             // GPS狀態為服務區外時   
  133.             case LocationProvider.OUT_OF_SERVICE:  
  134.                 Log.i("NavJava""當前GPS狀態為服務區外狀態");  
  135.                 break;  
  136.             // GPS狀態為暫停服務時   
  137.             case LocationProvider.TEMPORARILY_UNAVAILABLE:  
  138.                 Log.i("NavJava""當前GPS狀態為暫停服務狀態");  
  139.                 break;  
  140.             }  
  141.         }  
  142.     };  
  143.       
  144.     private boolean UploadPos(Location location)  
  145.     {  
  146.   
  147.         return true;  
  148.     }  
  149.       
  150.     private String getGPSTime(Location location)  
  151.     {  
  152.         String str = "0";  
  153.           
  154.         Date date = new Date(location.getTime());  
  155.         SimpleDateFormat dataFormat = new SimpleDateFormat("yyyyMMddHHmmss");  
  156.         str=dataFormat.format(date);          
  157.         return str;   
  158.     }  
  159.   
  160. }  
Copyright © Linux教程網 All Rights Reserved