Android获取解析GPS数据
Android获取解析GPS数据
Android获取解析GPS数据:
- package title.navi.Location.Impl;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.util.EntityUtils;
- import android.content.Context;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.location.GpsStatus.NmeaListener;
- import android.location.LocationProvider;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.Toast;
- public class NaviLocation {
- Context m_ctx;
- LocationManager m_locationManager;
- Location m_location;
- private boolean m_nmea_started = false;
- private NaviApp m_naviApp;
- class LocationDebug {
- }
- public NaviLocation(Context ctx, NaviApp naviApp) {
- m_ctx = ctx;
- m_naviApp = naviApp;
- }
- /**
- * 初始化
- *
- * @return
- */
- public int initialize() {
- // 创建LocationManger对象
- m_locationManager = (LocationManager) m_ctx
- .getSystemService(Context.LOCATION_SERVICE);
- // 获取最后一次GPS定位的位置并上传
- m_location = m_locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
- if( null != m_location )
- {
- UploadPos(m_location);
- }
- // 绑定监听,有4个参数
- // 参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种
- // 参数2,位置信息更新周期,单位毫秒
- // 参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息
- // 参数4,监听
- // 备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新
- // 1秒更新一次,或最小位移变化超过1米更新一次;
- // 注意:此处更新准确度非常低,推荐在service里面启动一个Thread
- // 在run中sleep(10000);然后执行handler.sendMessage(),更新位置
- m_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
- 0, mLocationListener);
- return 0;
- }
- /**
- * 释放
- *
- * @return
- */
- public int uninitialize() {
- return 0;
- }
- /**
- * 开始nmea接收标志
- */
- public void start_receive_nmea() {
- m_nmea_started = true;
- }
- // LocationListener,位置监听,监听位置变化,监听设备开关与状态
- LocationListener mLocationListener = new LocationListener() {
- /**
- * 位置信息变化时触发
- */
- @Override
- public void onLocationChanged(Location location) {
- // 上传当前位置
- if (location != null) {
- m_location = location;
- UploadPos(location);
- }
- }
- /**
- * GPS禁用时触发
- */
- @Override
- public void onProviderDisabled(String provider) {
- }
- /**
- * GPS开启时触发
- */
- @Override
- public void onProviderEnabled(String provider) {
- // Location location=lm.getLastKnownLocation(provider);
- }
- /**
- * GPS状态变化时触发
- */
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- switch (status) {
- // GPS状态为可见时
- case LocationProvider.AVAILABLE:
- Log.i("NavJava", "当前GPS状态为可见状态");
- break;
- // GPS状态为服务区外时
- case LocationProvider.OUT_OF_SERVICE:
- Log.i("NavJava", "当前GPS状态为服务区外状态");
- break;
- // GPS状态为暂停服务时
- case LocationProvider.TEMPORARILY_UNAVAILABLE:
- Log.i("NavJava", "当前GPS状态为暂停服务状态");
- break;
- }
- }
- };
- private boolean UploadPos(Location location)
- {
- return true;
- }
- private String getGPSTime(Location location)
- {
- String str = "0";
- Date date = new Date(location.getTime());
- SimpleDateFormat dataFormat = new SimpleDateFormat("yyyyMMddHHmmss");
- str=dataFormat.format(date);
- return str;
- }
- }
评论暂时关闭