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() {/** * 位置信息变化时触发 */@Overridepublic void onLocationChanged(Location location) {// 上传当前位置if (location != null) {m_location = location;UploadPos(location);}}/** * GPS禁用时触发 */@Overridepublic void onProviderDisabled(String provider) {}/** * GPS开启时触发 */@Overridepublic void onProviderEnabled(String provider) {// Location location=lm.getLastKnownLocation(provider);}/** * GPS状态变化时触发 */@Overridepublic 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;}}

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. Python技巧匿名函数、回调函数和高阶函数
  3. python list.sort()根据多个关键字排序的方法实现
  4. 判断Android的网络状态
  5. android利用ListView滑动刷新
  6. Android简单实现透明状态栏、去除标题
  7. Android(安卓)API中文(42)—— ListView
  8. Android(安卓)自定义Gallery
  9. Android实现点击某个按钮指定位置弹出布局

随机推荐

  1. Android(安卓)使用JNI的相关
  2. vim带你装逼带你飞(一)
  3. 如何入行Android开发
  4. Android(安卓)ListView 自定义背景后 滚
  5. Android(安卓)带你玩转实现游戏2048 其实
  6. Android之本地相册图片选取和拍照以及图
  7. Android广播机制——广播的发送
  8. Android适配解决方案
  9. Android关于Activity知识点总结(二)任务、
  10. MPAndroidChart项目实战(九)——自定义带文